new Grid(parent, name)
Classe que permite a construção e manipulação de uma grade.
Atenção: este construtor é de uso interno do WebFramework. Uma grade deve ser construída através dos métodos Process.grid() ou definindo um campo de grade do tipo "grid".
Parameters:
Name | Type | Description |
---|---|---|
parent |
Object | Objeto que irá conter a grade criada. Atualmente, somente são suportados objetos das classes Process ou Field. |
name |
string | Nome único dentro de um processo que irá identificar a grade. |
- See:
-
- Process#grid
- Grid#field
Extends
- Emitter
Members
-
<static, constant> MAX_VISIBLE_RECORD_COUNT :number
-
Quantidade máxima de registros visíveis em uma grade no modo tabela.
Type:
- number
-
<static, constant> MDA_DELETE :MasterDeleteAction
-
Indica que os registros detalhes devem ser excluídos.
Type:
- MasterDeleteAction
- Deprecated:
-
- Utilize MasterDeleteAction.DELETE.
-
<static, constant> MDA_ERROR :MasterDeleteAction
-
Indica que deve ser gerado um erro caso haja registros detalhes no momento da exclusão do registro mestre.
Type:
- MasterDeleteAction
- Deprecated:
-
- Utilize MasterDeleteAction.ERROR.
-
<static> MDA_UNLINK :MasterDeleteAction
-
Indica que os campos que vinculam os registros detalhes, module:@nginstack/web-framework/lib/grid/GridField~GridField#detailFieldNames, devem ser preenchidos com null.
Type:
- MasterDeleteAction
- Deprecated:
-
- Utilize MasterDeleteAction.UNLINK.
-
automaticClearSelectedRecords :boolean
-
Indica se toda vez que for dado um write() na grade, ou seja, caso a grade seja re-escrita, o array da propriedade selectedRecords é limpo, ou seja se deverão ser deletados os bookmarks (marcadores) dos registros que estão selecionados na grade.
O valor padrão é: false.Type:
- boolean
-
automaticClearUnselectableRecords :boolean
-
Indica se toda vez que for dado um write() na grade, ou seja, caso a grade seja re-escrita, o array da propriedade unselectableRecords é limpo, ou seja se deverão ser deletados os bookmarks (marcadores) dos registros que não podem ser selecionados pelo usuário na grade.
O valor padrão é: false.Type:
- boolean
-
autoPersist :boolean
-
Determina se a persistência dos dados ocorrerá automaticamente quando os métodos #del e #post forem chamados.
Type:
- boolean
-
breakLine :boolean
-
Indica se o próximo objeto a ser escrito depois da grade deverá ir para a linha seguinte do gerenciador de layout.
Type:
- boolean
-
canDelete :number
-
Indica se é permitida a exclusão dos registros. Os possíveis valores são:
- Grid.USER_PERMISSION - As permissões do usuário serão
verificadas para decidir se ele pode ou não excluir.
- Grid.NEVER - A operação nunca é permitida.
- Grid.ALWAYS - A operação sempre é permitida.
O valor padrão é Grid.USER_PERMISSION.
Type:
- number
- Grid.USER_PERMISSION - As permissões do usuário serão
verificadas para decidir se ele pode ou não excluir.
-
canDuplicate :boolean
-
Indica se um registro da grade pode ser duplicado.
Type:
- boolean
- Default Value:
-
- true
-
canEdit :number
-
Indica se é permitida a edição dos registros. Os possíveis valores são:
- Grid.USER_PERMISSION - As permissões do usuário serão
verificadas para decidir se ele pode ou não editar.
- Grid.NEVER - A operação nunca é permitida.
- Grid.ALWAYS - A operação sempre é permitida.
O valor padrão é Grid.USER_PERMISSION.
Type:
- number
- Grid.USER_PERMISSION - As permissões do usuário serão
verificadas para decidir se ele pode ou não editar.
-
canExport :number
-
Indica se é permitida a exportação dos dados da grid. Os possíveis valores são:
- Grid.USER_PERMISSION - As permissões do usuário serão
verificadas para decidir se ele pode ou não exportar os dados.
- Grid.NEVER - A operação nunca é permitida.
- Grid.ALWAYS - A operação sempre é permitida.
O valor padrão é Grid.USER_PERMISSION.
Type:
- number
- Grid.USER_PERMISSION - As permissões do usuário serão
verificadas para decidir se ele pode ou não exportar os dados.
-
canInsert :number
-
Indica se é permitida a inserção de novos registros. Os possíveis valores são:
- Grid.USER_PERMISSION - As permissões do usuário serão
verificadas para decidir se ele pode ou não inserir.
- Grid.NEVER - A operação nunca é permitida.
- Grid.ALWAYS - A operação sempre é permitida.
O valor padrão é Grid.USER_PERMISSION.
Type:
- number
- Grid.USER_PERMISSION - As permissões do usuário serão
verificadas para decidir se ele pode ou não inserir.
-
canInvertSelection :boolean
-
Indica se é permitida a inversão da seleção dos registros.
Atenção: Não é possível fazer a inversão da seleção dos registros caso a grade esteja em edição.
O valor padrão é: true.Type:
- boolean
-
canModify :boolean
-
Propriedade de somente leitura. Seu valor não pode ser alterado.
Indica se a grade pode ser modificada, levando em conta as seguintes considerações:- ela é uma grade filha e a grade mãe é somente leitura;
- ela é uma grade filha e o campo que a define é somente leitura;
- usuário não tem permissão de alteração.
Caso seja constatado um dos casos anteriores então a grade não poderá ser modificada.
Type:
- boolean
- ela é uma grade filha e a grade mãe é somente leitura;
-
canPostDataSetOnEvents :boolean
-
Determina se o dataSet da grade pode sofrer modificações que efetivem a edição ou inserção do registro durante os eventos da grade. Por padrão, esse tipo de ação não será permitido, pois normalmente é um erro de desenvolvimento. Por uma questão de compatibilidade com o comportamento da grade de permitir esse tipo gravação antecipada, apenas os listeners registrados por meio do método #on serão afetados por essa configuração.
Type:
- boolean
-
canShowLog :boolean
-
Indica se a grade deve permitir visualização dos logs de alteração.
Se true, então a visualização dos logs será permitida de acordo com as permissões do usuário. Se false, então a visualização dos logs será desabilitada independentemente das permissões do usuário. O valor padrão é: true.Type:
- boolean
-
classDefinition :Object
-
Instância do x-class da classe informada na propriedade classKey.
Type:
- Object
-
classDefManager :ClassDefManager
-
Instância de classDefManager utilizada para construir os x-class utilizados pela grade e pelos campos lookup. Por padrão é utilizada a instância global retornada pelo método ClassDefManager.getInstance();
Type:
- ClassDefManager
-
classKey :number
-
Classe do sistema que define o modelo de dados do DataSet controlado pela grade. As definições dos campos e eventos existentes no x-class da classe informada serão copiados para esta grade.
Também serão executados os defineGrid associados ao nome desta grade.
Estas definições com base no x-class serão executadas antes do evento onDefineGrid(), portanto, caso sejam realizadas outras definições neste evento, estas sobrescreverão as definidas no x-class.Type:
- number
-
classKeyToValidatePermission :number|DBKey
-
Classe alternativa para validar as permissões do usuário. Caso não seja informada, será utilizada a #classKey.
Type:
- number | DBKey
-
collapsed :boolean
-
Determina se a grade será exibida em modo colapse (apenas a barra de título).
Type:
- boolean
-
column :number
-
Permite dispor grades em colunas ao invés da disposição padrão de registros, ou seja, as grades serão exibidas lado-a-lado ao invés de uma abaixo da outra. Pode-se também definir em que ordem elas irão aparecer ao setar o valor da propriedade.
Type:
- number
Example
this.grid1.column = 0 this.grid2.column = 1 this.grid1.write() this.grid2.write() // As grades acima serão exibidas lado-a-lado // ---------- ---------- // | grid1 | | grid2 | // ---------- ----------
-
confirmCancel :boolean
-
Indica se a grade deve pedir confirmação para proceder com o cancelamento das alterações feitas.
Se true, então será exibida uma caixa de diálogo ao usuário para que ele confirme o cancelamento.
O valor padrão é: true.Type:
- boolean
-
confirmChange :boolean
-
Indica se a grade deve pedir confirmação para postar alterações.
Se true, então será exibida uma caixa de diálogo ao usuário para que ele confirme a alteração.
O valor padrão é: false.Type:
- boolean
-
confirmDelete :boolean
-
Indica se a grade deve pedir confirmação para proceder com a deleção solicitada.
Se true, então será exibida uma caixa de diálogo ao usuário para que ele confirme a deleção.
O valor padrão é: true.Type:
- boolean
-
cssClass :string
-
Classe CSS adicional a ser atribuída à grade.
Type:
- string
-
dataExporter :Object
-
Objeto DataExportGrid que é usado para exportação de dados da grade.
Type:
- Object
-
<nullable> definitionClass :number
-
Indica a classe a ser utilizada na carga da configuração desta grade na definição de visão. A definição de grade deve ser declarada por meio do método uwi.classdef.ViewDef#defineGrid. Caso não seja informado, será utilizado #classKey.
Importante: ao informar esta propriedade a grade poderá requerer uma recarga das suas configurações. Para que não haja perda de configurações, as definições de campos necessariamente devem ser realizadas dentro do evento defineFields e as definições das grades detalhes no evento defineGrid.
Type:
- number
- See:
-
<nullable> definitionName :number
-
Indica o nome a ser utilizado na carga da configuração desta grade na definição de visão. A definição de grade deve ser declarada por meio do método uwi.classdef.ViewDef#defineGrid. Caso não seja informado, será utilizado #name.
Importante: ao informar esta propriedade a grade poderá requerer uma recarga das suas configurações. Para que não haja perda de configurações, as definições de campos necessariamente devem ser realizadas dentro do evento defineFields e as definições das grades detalhes no evento defineGrid.
Type:
- number
- See:
-
ds :DataSet
-
DataSet ao qual a grade está associada.
Type:
-
enabledActions :Array.<(Button|string)>
-
Type:
- Array.<(Button|string)>
- Deprecated:
-
- Utilize a propriedade enabledButtons.
- See:
-
- Grid#enabledButtons
-
enabledButtons :Array.<(Button|string)>
-
Array com os nomes ou as instâncias dos botões que devem estar habilitados na grade.
Type:
- Array.<(Button|string)>
- See:
-
- Grid#visibleButtons
-
fields :FieldList
-
Lista que contém as definições dos campos da grade.
Deverá haver uma instância da classe Field para cada campo.Type:
- FieldList
-
formViewFieldNames :string
-
Contém os nomes dos campos que deverão compor o modo formView (modo formulário).
Os nomes devem estar separados por ponto-e-vírgula (";"). Caso esta propriedade não seja definida então todos os campos serão exibidos de acordo com as respectivas propriedades de visão.Type:
- string
Example
grid.formViewFieldNames = "nome;endereço;idade"
-
groups :FieldGroupSet
-
Coleção de agrupamentos da grade.
Type:
- FieldGroupSet
-
hasFormView :boolean
-
Determina se a grade poderá ser vista no modo formulário.
Se o valor for setado para falso, a propriedade viewMode da grade será setada para Grid.TABLEVIEW.Type:
- boolean
-
hasTableView :boolean
-
Determina se a grade poderá ser vista no modo tabela.
Se o valor for setado para falso, a propriedade viewMode da grade será setada para Grid.FORMVIEW. Independente do valor informado, grades de variáveis nunca tem modelo tabela e sempre retornam false.Type:
- boolean
-
help :Object|string
-
Utilizada para especificar a ajuda da grade.
Type:
- Object | string
-
hintFieldNames :string
-
Lista que contém os nomes dos campos da grade que devem ter o conteúdo exibido através de um hint para toda célula da grade.
O hint é uma janela de ajuda exibida quando o mouse permanece um tempo parado sobre uma célula.Type:
- string
-
integerDatabaseType :string
-
Tipo de dado que deve ser utilizado na base de dados para os campos do tipo "integer".
O tipo "integer" é um opção legada que existia antes da criação dos tipos "int64" e "int32".
Type:
- string
-
maxRecordCount :number
-
Número de registros que serão exibidos no modo tabela. No mínimo poderá ser informado o valor 1 e no máximo o valor Grid.MAX_VISIBLE_RECORD_COUNT.
Type:
- number
-
maxSelectedRecords :number
-
Indica a quantidade máxima de registros que podem ser selecionados na grade.
Por padrão não há limite para os registros que podem ser selecionados.Type:
- number
-
name :string
-
Nome da grade.
O nome da grade é definido na construção do componente e não pode ser modificado após a construção da grade.
Type:
- string
-
onAfterCancel :Event
-
Evento que será executado após cancelar a inserção ou edição de um registro, fazendo com que qualquer alteração realizada até o momento no registro seja desfeita e com que a grade retorne ao estado de navegação.
No exemplo abaixo modifica-se o modo de visão da grade para o modo tabela, caso a grade não esteja neste modo, e também é exibido um alerta de que a edição/inserção do registro foi cancelada.
O evento recebe os seguintes parâmetros:- grid: grade a qual pertence o registro cuja edição/inserção foi cancelada;
Type:
- Event
- Deprecated:
-
- Utilize on('afterCancel', listener).
Example
grid.onAfterCancel.set( function ( grid ){ if (grid.viewMode == Grid.FORMVIEW ){ grid.viewMode = Grid.TABLEVIEW } grid.process.alert( "Edição/Inserção cancelada!" ) })
- grid: grade a qual pertence o registro cuja edição/inserção foi cancelada;
-
onAfterDelete :Event
-
Evento que será executado após um registro ser excluído da grade, ou seja após ser excluído do dataSet da grade.
No exemplo abaixo após o registro ser excluído é informada uma mensagem confirmando a exclusão e é realizado um refresh na estrutura da grade. O evento recebe os seguintes parâmetros:- grid: grade em que o registro foi excluído;
Type:
- Event
- Deprecated:
-
- Utilize on('afterDelete', listener).
Example
onAfterDelete.set( function ( grid ) { grid.process.alert( 'Exclusões Efetuadas com Sucesso!' ) })
- grid: grade em que o registro foi excluído;
-
onAfterDuplicate :Event
-
Evento que será executado após um registro ser duplicado. O evento recebe os seguintes parâmetros:
- grid: grade que possui o registro que foi duplicado;
Type:
- Event
- Deprecated:
-
- Utilize on('afterDuplicate', listener).
Example
grid.onAfterDuplicate.set( function (grid) { this.alert('Registro duplicado.'); })
-
onAfterEdit :Event
-
Evento que será executado após um registro entrar em edição. O registro entra em edição ao ser chamado o método grid.edit, que pode ser chamado diretamente pelo programador ou automaticamente quando se altera o valor de um campo;
O exemplo abaixo pega o último horário em que o registro entrou em edição e salva este valor em um campo somente leitura da grade, ficando assim registrado o horário da última edição no registro.
O evento recebe os seguintes parâmetros:- grid: grade que entrou em edição;
Type:
- Event
- Deprecated:
-
- Utilize on('afterEdit', listener).
Example
grid.onAfterEdit.set( function ( grid ){ var hoje = new Date grid.field('data').setValueOnly(ngin.text.toFormattedString(hoje, "DD/MM/YYYY" ) + " " + hoje.getHours() + ":" + hoje.getMinutes() + ":" + hoje.getSeconds() ) })
- grid: grade que entrou em edição;
-
onAfterExpand :Event
-
Evento que será executado após um registro ser expandido pelo usuário.
Utilizado apenas pela TreeGrid.
O evento receberá os seguintes parâmetros:- grid: grade que possui o registro que foi expandido;
- childValue: valor do campo, exibido na árvore, que foi expandido;
- tree: instância da classe Tree que contém a estrutura de nós da árvore de navegação.
Type:
- Event
- Deprecated:
-
- Utilize on('afterExpand', listener).
- grid: grade que possui o registro que foi expandido;
-
onAfterInsert :Event
-
Evento que será executado após ser inserido um novo registro na grade, ou seja, após o registro ser incluso no dataSet da grade e antes que ele entre em edição.
O exemplo abaixo modifica o modo de visão da grade para o modo de formulário caso a grade não esteja neste modo e exibe uma mensagem alertando que o registro foi incluído no dataSet.
O evento recebe os seguintes parâmetros:- grid: grade em que o registro foi inserido;
Type:
- Event
- Deprecated:
-
- Utilize on('afterInsert', listener).
Example
grid.onAfterInsert.set( function ( grid ){ if (grid.viewMode == Grid.TABLEVIEW ){ grid.viewMode = Grid.FORMVIEW } grid.parent.alert("Registro inserido com sucesso!") })
- grid: grade em que o registro foi inserido;
-
onAfterPost :Event
-
Evento que será executado após ser realizada a inserção ou edição um registro. Pode-se definir através deste método uma função a ser executada após o registro ser incluído ou atualizado no dataSet da grade. Pode-se utilizar este evento para criar um log do horário que o registro foi criado ou modificado, ou ainda notificar ao usuário a quantidade de registros que ainda podem ser inseridos no dataSet da grade, como demonstrado no exemplo a seguir.
O evento recebe os seguintes parâmetros:- grid: grade em que foi inserir o registro;
Type:
- Event
- Deprecated:
-
- Utilize on('afterPost', listener).
Example
grid.onAfterPost.set( function ( grid ){ if (grid.ds.recordCount < 5 ){ grid.parent.alert( "Atenção: Ainda poderão ser adicionados " + ( maxRecordNumber - grid.ds.recordCount ) + " registros" ) } else { grid.parent.alert( "Atenção! Não poderão mais adicionar registros: Número máximo de registros atingido!" ) } })
- grid: grade em que foi inserir o registro;
-
onAfterPrepare :Event
-
Evento executado pós a preparação da grade O evento recebe os seguintes parâmetros:
- grid: grade que está sendo preparada.
Type:
- Event
Example
grid.onAfterPrepare.set(function (grid) { })
- grid: grade que está sendo preparada.
-
onAfterScroll :Event
-
Evento que será disparado após a navegação de um registro para um outro em uma grade associada a um DataSet. Também será disparado logo após a grade ser escrita quando se posicionar no primeiro registro da grade.
O evento recebe os seguintes parâmetros:- grid: grade em que se deve aplicar o evento.
Type:
- Event
- Deprecated:
-
- Utilize on('afterScroll', listener).
Example
grid.onAfterScroll.set( function ( grid ){ })
- grid: grade em que se deve aplicar o evento.
-
onAfterSelectRecord :Event
-
Evento que será disparado após um ou mais registros serem selecionados.
Neste evento, é possível manipular a seleção retornando um bookmark ou array de bookmarks. O evento deverá retornar ou um bookmark ou um array de bookmarks que representarão os registros selecionados.Type:
- Event
-
onBeforeCancel :Event
-
Evento que será executado antes de cancelar a inserção ou edição de um registro, fazendo com que qualquer alteração realizada até o momento no registro seja desfeita e com que a grade retorne ao estado de navegação.
No exemplo abaixo é exibido um alerta de que a inserção/edição do registro está sendo cancelada e que a grade irá retornar para o modo de tabela.
O evento recebe os seguintes parâmetros:
- grid: grade em que foi cancelada a inserção/edição do registro.
Type:
- Event
- Deprecated:
-
- Utilize on('beforeCancel', listener).
Example
grid.onBeforeCancel.set( function ( grid ){ grid.process.alert( "Atenção! Cancelando a edição, todas as informações serão perdidas!" ) grid.process.alert( "Grade retornando para o modo de visão em tabela..." ) if (grid.viewMode == Grid.FORMVIEW ){ grid.viewMode = Grid.TABLEVIEW } })
-
onBeforeDelete :Event
-
Evento que será executado antes que um registro seja excluído da grade, ou seja antes que seja excluído do dataSet da grade.
A grade possui o método Grid.canDelete que determina se é possível ou não deletar registros na grade ou se será de acordo com as permissões do usuário logado.
Podemos utilizar o evento onBeforeDelete para solicitar um login e senha de algum usuário cadastrado no sistema para que possa ser validada a deleção do registro, conforme exemplo abaixo, que além de fazer a verificação, bloqueia a grid para deleção de registros caso esta verificação falhe.
O evento recebe os seguintes parâmetros:- grid: grade em que está o registro a ser excluído;
Type:
- Event
- Deprecated:
-
- Utilize on('beforeDelete', listener).
Example
grid.onBeforeDelete.set( function ( grid ){ if (grid.parent.authenticateUser( "Insira as informações de login" ) == -1 ){ grid.canDelete = Grid.NEVER throw new Error( "Nome de Usuário ou senha incorretos! Não pode deletar! Registro bloqueado para deleção!" ) } })
- grid: grade em que está o registro a ser excluído;
-
onBeforeDuplicate :Event
-
Evento que será executado antes que um registro seja duplicado. O evento recebe os seguintes parâmetros:
- grid: grade que possui o registro que será duplicado;
Type:
- Event
- Deprecated:
-
- Utilize on('beforeDuplicate', listener).
Example
grid.onBeforeDuplicate.set( function (grid) { this.alert('Duplicando registro em ' + grid.name + '.'); })
-
onBeforeEdit :Event
-
Evento que será executado antes que um registro entre em edição. O registro entra em edição ao ser chamado o método grid.edit, que pode ser chamado diretamente pelo programador ou automaticamente quando é alterado o valor de um campo;
O exemplo abaixo solicita as informações de login (nome de usuário e senha) para validar se o registro pode ou não ser alterado. Caso não possa validar será exibida uma mensagem de erro e a grade não entra em edição.O evento recebe os seguintes parâmetros:
- grid: grade que irá entrar em edição;
Type:
- Event
- Deprecated:
-
- Utilize on('beforeEdit', listener).
Example
grid.onBeforeEdit.set( function ( grid ){ var result = grid.parent.authenticateUser( "Insira as informações de login" ) if (result == -1 || result == null){ throw new Error( "Nome de Usuário ou senha incorretos! Não pode editar!" ) } })
-
onBeforeExpand :Event
-
Evento executado antes de um registro ser expandido pelo usuário.
Utilizado apenas pela TreeGrid.
O evento receberá os seguintes parâmetros:- grid: grade que possui o registro que foi expandido;
- childValue: valor do campo, exibido na árvore, que foi expandido;
- tree: instância da classe Tree que contém a estrutura de nós da árvore de navegação.
Type:
- Event
- Deprecated:
-
- Utilize on('beforeExpand', listener).
- grid: grade que possui o registro que foi expandido;
-
onBeforeInsert :Event
-
Evento que será executado antes que um novo registro seja inserido na grade, ou seja, antes que o registro seja incluído no dataSet da grade.
Pode ser usado para controlar a quantidade de registros que serão inseridos no dataSet da grade conforme o exemplo abaixo que limita a quantidade de registros inseridos no dataSet à 5 e exibe um erro caso se tente inserir mais que a quantidade máxima de registros permitida.
O evento recebe os seguintes parâmetros:- grid: grade em que irá inserir o registro;
Type:
- Event
- Deprecated:
-
- Utilize on('beforeInsert', listener).
Example
grid.onBeforeInsert.set( function ( grid ){ if (grid.ds.recordCount >= 5 ){ throw new Error ( "Número máximo de registros atingido!" ) } })
- grid: grade em que irá inserir o registro;
-
onBeforePost :Event
-
Evento que será executado antes de realizar a inserção ou edição um registro, permitindo por exemplo que os novos dados no registro possam ser avaliados antes de serem atualizados ou incluídos.
O exemplo abaixo verifica se os valores nos campos "password" e "confirmPassword" são iguais, ou seja, se o usuário digitou uma senha e a confirmou corretamente, em caso negativo exibe um erro, impedindo que o registro seja inserido.
O evento recebe os seguintes parâmetros:- grid: grade em que irá inserir o registro;
Type:
- Event
- Deprecated:
-
- Utilize on('beforePost', listener).
Example
grid.onBeforePost.set( function ( grid ) { if (grid.ds.password != grid.ds.confirmPassword ){ throw new Error( "A nova senha e a confirmação são diferentes. Digite novamente a senha." ) } })
- grid: grade em que irá inserir o registro;
-
onBeforePrepare :Event
-
Evento executado antes da preparação da grade O evento recebe os seguintes parâmetros:
- grid: grade que está sendo preparada.
Type:
- Event
Example
grid.onBeforePrepare.set(function (grid) { })
- grid: grade que está sendo preparada.
-
onBeforeScroll :Event
-
Evento que será disparado antes da navegação de um registro para um outro em uma grade associada a um DataSet. Também será disparado assim que a grade for escrita quando se posicionar no primeiro registro da grade.
No exemplo abaixo é dado um alerta informando o número do registro em que se estava posicionado, caso a grade não esteja vazia.
O evento recebe os seguintes parâmetros:- grid: grade em que se deve aplicar o evento.
Type:
- Event
- Deprecated:
-
- Utilize on('beforeScroll', listener).
Example
grid.onBeforeScroll.set( function ( grid ){ if (grid.ds.recNo > 0 ){ grid.process.alert( "Você estava no registro: " + grid.ds.recNo ) } })
- grid: grade em que se deve aplicar o evento.
-
onBeforeSelectRecord :Event
-
Evento que será disparado antes de um registro ser selecionado ou desmarcado.
Type:
- Event
-
onChangeView :Event
-
Evento que será emitido quando for alterado o modo de visão da grade.
A grade poderá ter seu modo de visão alterado a partir da propriedade viewMode que irá emitir este evento, ao chamar esse evento a propriedade viewMode estará com seu valor anterior à mudança de visão.
A grade também pode ter seu modo de visão alterado quando for chamado o grid.write() que possui um parâmetro que determina em que modo será escrita a grade.
No exemplo abaixo quando o modo de visão da grade é alterado são alterados também os botões visíveis pois algumas delas não fazem sentido em um ou outro modo de visão. Como a modificação deve ser do modo formulário para tabela e vice-versa, é utilizado uma expressão condicional para analisar o valor do viewMode.
O evento recebe os seguintes parâmetros:- grid: grade a qual está sendo modificado o modo de visão;
Type:
- Event
- Deprecated:
-
- Utilize on('changeView', listener).
Example
grid.onChangeView.set( function ( grid ){ if (grid.viewMode === Grid.TABLEVIEW ){ grid.parent.visibleButtons = ['Recarregar grades']; } else { grid.parent.visibleButtons = ['Editar', 'Recarregar grades']; } })
- grid: grade a qual está sendo modificado o modo de visão;
-
onDefineFields :Event
-
Evento que deve ser utilizado para configurar os campos de uma grade. Todas as definições de campo devem ser declaradas através deste evento.
Customizações fora deste evento serão perdidas caso sejam alteradas as propriedades "classKey" ou "ds" da grade, ou seja, após ser executado o método Grid.refresh().
O evento recebe os seguintes parâmetros:- grid: grade em que serão definidos os campos.
Type:
- Event
Example
grid2.onDefineFields.set( function ( grid2 ){ var fld = grid2.field( "matricula", "int32" ) fld.size = 6 fld.readOnly = true fld.label = "Número de matrícula" fld.help = "Número da matrícula do aluno" var fld = grid2.field( "disciplina", "String", 10 ) fld.size = 6 fld.readOnly = true fld.label = "Disciplina" fld.help = "Código das disciplinas cadastradas para esse aluno" })
- grid: grade em que serão definidos os campos.
-
onExport :Event
-
Evento que será executado quando o botão de exportar da grade for acionado. Ele substitui o comportamento padrão da grade.
O exemplo abaixo seleciona o campo "teste" do dataExporter e modifica seu label para "Testing". O evento recebe os seguintes parâmetros:- dataExport: Objeto DataExportGrid que é usado para exportação de dados da grade;
Type:
- Event
- Deprecated:
-
- Utilize on('export', listener).
Example
grid.onExport.set(function ( dataExport ) { dataExport.getField("teste").label = "Testing" });
- dataExport: Objeto DataExportGrid que é usado para exportação de dados da grade;
-
onLocate :Event
-
Evento que será executado quando a grade for localizar algum conteúdo. A grade automaticamente adiciona um evento de pesquisa padrão que pode ser estendido.
O exemplo abaixo personaliza a busca para permitir que sejam buscados apenas números e executa o evento padrão através do "inherited".
O evento deverá retornar um valor booleano, sendo true para indicar que localizou o registro. O dataSet da grid deve ser posicionado no registro localizado. O evento recebe os seguintes parâmetros:- grid: Grade que está sendo pesquisada;
- value: Valor a ser localizado;
- options: Array que contém as opções a serem aplicadas na localização, podem
ser: (opcional)
Grid.LOCATE_ALL_FIELDS: Opção que indica se deverá localizar em todos os campos;
Grid.LOCATE_EXACT: Opção que indica se deverá localizar um valor idêntico;
Grid.LOCATE_NEXT: Opção que indica se deverá localizar da próxima ocorrência;
Type:
- Event
- Deprecated:
-
- Utilize on('locate', listener).
Example
grid.onLocate.set( function ( grid, value ) { if (typeof value == 'number') { var found = inherited( grid, value ) if (found ) { grid.process.setNextInteraction('interactionName') } return found } else { throw new Error('Não é possível localizar valores diferentes de números!') } })
- grid: Grade que está sendo pesquisada;
-
onShowLog :Event
-
A grade possui o botão de log que ao ser acionado exibe o histórico de alterações do registro corrente. Este evento será executado quando o botão de log da grade for acionado. Ele substitui o comportamento padrão da grade.
O exemplo abaixo chama a interação "run" e passa como parâmetros ['chave', key].
O evento recebe os seguintes parâmetros:- grid: grade em que foi acionado o botão de log;
Type:
- Event
- Deprecated:
-
- Utilize on('showLog', listener).
Example
grid.onShowLog = function ( grid ) { var key = grid.ds.ikey grid.process.setNextInteraction('run', ['chave', key], -1898143458) } })
- grid: grade em que foi acionado o botão de log;
-
parent :Object
-
Objeto que contém visualmente a grade. Atualmente a grade pode ser criada apenas pelo Process.grid ou definindo um campo do tipo "grid", logo este objeto poderá ser apenas Process ou Field.
Type:
- Object
-
process :Process
-
Referência ao processo onde a grade foi criada. Atualmente a grade pode ser criada apenas pelo Process.grid ou definindo um campo do tipo "grid".
Type:
- Process
-
readOnly :boolean
-
Indica se a grade será somente para leitura, não permitindo assim que o usuário faça alterações nos seus valores.
Type:
- boolean
-
selectedRecords :Array.<string>
-
Array com os bookmarks (marcadores) dos registros que estão selecionados na grade. Quando o dataset estiver no estado de inserção no modo formulário, será retornado um array vazio.
Type:
- Array.<string>
-
tableViewFieldNames :string
-
Contém os nomes dos campos que irão compor o modo tableView (modo tabela).
Os nomes devem estar separado por ponto-e-vírgula (";"). Caso esta propriedade não seja definida então todos os campos serão exibidos de acordo com as respectivas propriedades de visão.Type:
- string
Example
grid.tableViewFieldNames = "nome; idade; cpf"
-
title :string
-
Título atribuído à grade. Caso não seja definido, então será utilizado o valor contido no parâmetro "name" definido durante a criação da grade.
Type:
- string
- See:
-
- Process#grid
-
toggledViewFieldsVisibility_ :Record.<string, boolean>
-
Campos visualizáveis.
Type:
- Record.<string, boolean>
-
toggleKeyButtonEnabled :boolean
-
Indica se o botão Toggle Key ("Mostrar/Ocultar chaves") está habilitado na grade.
Type:
- boolean
- Default Value:
-
- true
-
toolbar :Object
-
Configurações da barra de ferramentas da grid.
A barra de ferramentas possui controles de navegação, busca, exportação, duplicação e outros botões criados pelo usuário.
Propriedades disponíveis:- visible: indica se a barra de ferramentas será exibida.
Type:
- Object
Example
this.grid('test').toolbar.visible = false; // torna a barra invisível
-
unselectableRecords :Array
-
Array com os bookmarks (marcadores) dos registros que não poderão ser selecionados pelo usuário.
Type:
- Array
-
userCanExport :boolean
-
Indica se o usuário pode exportar dados da grade.
Type:
- boolean
-
userKeyToValidatePermissions :number
-
Chave do usuário que será utilizada para validar o acesso de inserção, alteração e exclusão dos dados da grade. Caso não seja informado, será considerado session.userKey, que seria a chave do usuário que estiver logado no sistema.
Type:
- number
-
<non-null> validateFieldPermissions :boolean
-
Indica se a grade deve validar se o usuário possui permissão de visão e alteração dos campos. Estas permissões são obtidas da tabela iPermission, a partir dos campos iVisibleFieldNames e iChangeableFieldNames.
Type:
- boolean
-
viewMode :number
-
Propriedade que indica o modo de visão da grade. A alteração desta propriedade implica na alteração do modo de visão da grade no navegador.
Por padrão a grade é escrita no modo TABLEVIEW (modo tabela) exceto quando no grid.write() for especificado que deverá ser escrita em modo FORMVIEW (modo formulário).
O exemplo a seguir modifica o modo de visão da grade do modo tabela para o modo formulário.
Pode assumir os seguintes valores:- Grid.FORMVIEW: modo formulário.
- Grid.TABLEVIEW: modo tabela.
Type:
- number
Example
if (grid.viewMode === Grid.TABLEVIEW ){ grid.viewMode = Grid.FORMVIEW }
- Grid.FORMVIEW: modo formulário.
-
visibleActions :Array.<(Button|string)>
-
Type:
- Array.<(Button|string)>
- Deprecated:
-
- Utilize a propriedade visibleButtons.
- See:
-
- Grid#visibleButtons
-
visibleButtons :Array.<(Button|string)>
-
Nomes ou as instâncias dos botões que devem estar visíveis na grade. A ordem dos botões será alterada para refletir a ordem informada nesta propriedade.
Type:
- Array.<(Button|string)>
- See:
-
- Grid#enabledButtons
-
width :string
-
Indica o tamanho que a grade assumirá na tela. Por padrão, a grade se auto redimensionará conforme o seu conteúdo, mas é possível indicar um valor fixo que esta deverá assumir.
Atenção:- O valor não poderá ser menor que o tamanho mínimo de todos os campos
da grade, caso contrário esta irá ter um comportamento estranho.
- O valor informado estará em pixels.
Type:
- string
Example
grid.width = "100" // grade terá 100 pixels grid.width = 1000 // grade terá 1000 pixels
- O valor não poderá ser menor que o tamanho mínimo de todos os campos
da grade, caso contrário esta irá ter um comportamento estranho.
Methods
-
<static> persist(grids)
-
Realiza persistência para DataSets de um conjunto de grades e das suas filhas.
Parameters:
Name Type Description grids
Grid | Array.<Grid> Grades cujos DataSets serão persistidos.
Returns:
Versão das alterações.
- Type
- number
-
action()
-
- Deprecated:
-
- Utilize o método button.
- See:
-
- Grid#button
Returns:
- Type
- Button
-
button(name [, opt_target] [, opt_order] [, opt_processKey] [, opt_newTab])
-
Cria um botão na grade se não existir um com o nome informado. Caso exista, será retornada a instância criada anteriormente.
Parameters:
Name Type Argument Description name
string Nome do botão. O valor informado também será utilizado como o texto do botão, caso a propriedade label do botão não seja informada.
opt_target
string | function <optional>
Poderá ser informado:
- nome de uma interação;
- nome de uma atividade;
- função que será atribuída ao evento onClick do botão. Se "target" for uma string vazia e o parâmetro "processKey" for informado, será considerado como destino a primeira interação do processo destino.
Este parâmetro será opcional apenas quando deseja-se obter a instância de um botão existente.
opt_order
number <optional>
Ordem do botão na barra de botões. Prefira utilizar a propriedade Grid.visibleButtons.
opt_processKey
number <optional>
Indica a chave do processo que contém a atividade ou interação informada no parâmetro "target". Será considerado o processo corrente quando não for informado.
opt_newTab
boolean <optional>
Indica se deve ser criada uma nova aba para exibir a interação ou atividade informada em "target". Considerado "false" quando não for informado.
- See:
-
- Grid#Button
Returns:
Botão existente com o nome informado ou uma nova instância caso não exista um com o nome informado.
- Type
- Button
Example
grid.button("Tornar maiúsculas", function (bt){ var grid = bt.parent var ds = grid.ds var selectedRecords = grid.selectedRecords for (var i = 0; i < selectedRecords.length; ++i){ ds.bookmark = selectedRecords[i]; ds.setField('NOME', ds.str('NOME').toUpperCase()); } })
-
clearButtons()
-
Limpa os botões da grade.
-
colapse(nodeValue)
-
Minimiza o nó solicitado na árvore. Ao se chamar o colapse, a grade garante que a hierarquia de nós será minimizada.
Parameters:
Name Type Description nodeValue
string Nó que deve ser minimizado.
-
del( [handleDetailGrid])
-
Exclui da grade e consequentemente do dataSet o(s) registro(s) selecionado(s) na grade. É executado quando for acionado o botão representado por um "-" na grade.
Parameters:
Name Type Argument Description handleDetailGrid
boolean <optional>
Indica se a deleção está sendo chamada por causa de um tratamento de deleção de uma grade master.
-
duplicateRecord( [opt_bookmark])
-
Duplica um registro da grade.
Parameters:
Name Type Argument Description opt_bookmark
string <optional>
Identificação do registro que será duplicado. Caso não seja informado, será duplicado o registro corrente.
-
edit( [field])
-
Inicia a edição do registro corrente da grade.
Parameters:
Name Type Argument Description field
GridField <optional>
Campo que será modificado e iniciará a edição do registro corrente da grade.
-
expand(nodeValue)
-
Expande o nó solicitado na árvore. Ao se chamar o expand, a grade garante que a hierarquia de nós será expandida.
Parameters:
Name Type Description nodeValue
string Nó que deve ser expandido.
-
field(name [, opt_type] [, opt_size])
-
Método utilizado para criar ou acessar um campo na grade.
Os campos devem ser criados dentro do evento onDefineFields() da grade, caso queira acessar um campo previamente criado, basta informar o primeiro parâmetro "name".Parameters:
Name Type Argument Description name
string Nome que servirá como identificador do campo.
Atenção: Não podem ser definidos nomes que conflitem com propriedades/métodos da grade.opt_type
string <optional>
Tipo do campo.
Tipos existentes:
- "string";
- "int64";
- "int32";
- "integer" (tipo legado mapeado para int64 ou int32 de acordo com o valor retornado pela propriedade #integerDatabaseType.
- "date";
- "number";
- "boolean";
- "combo";
- "memo";
opt_size
number <optional>
Tamanho do campo. Indica o número de caracteres que o campo suportará.
Este valor também servirá de base para obtenção da largura do campo.
É necessário apenas em campos do tipo "string" ou "memo";Returns:
Campo recém criado ou existente que possua o nome informado.
- Type
- Field | ViewDefField
Example
var grid = this.grid("gradeExemplo"); grid.onDefineFields.set(function (grid) { // Cria um campo do tipo string com identificador "nome" e tamanho 20. var fld = grid.field("nome", "string", 20); // Cria um campo do tipo integer com identificador "matricula". fld = grid.field("matricula", "int32"); // cria um campo do tipo date com identificador "data". fld = grid.field("data", "date"); });
-
getFieldsAsStringList()
-
Mantém compatibilidade para quem precisa acessar a lista de fields como um objeto lista de Strings. Esse método seleciona os campos da grade e os coloca em um objeto StringList, retornando-o.
Returns:
Campos da grade.
- Type
- StringList
-
getFieldsByProperty(propertyName)
-
Retorna uma lista de campos cuja propriedades tenham os valores informados.
Parameters:
Name Type Argument Description propertyName
* <repeatable>
Há múltiplas formas de definição dos parâmetros, veja o exemplo abaixo.
Returns:
Lista de campos.
- Type
- Array.<Field>
Example
//Propriedade e valor: //Nessa forma serão obtidos os campos que possuem as propriedades fornecidos //com os respectivos valores. getFieldsByProperty('prop', valor, 'prop2', valor2); //Array de propriedades e de valores: //Nessa forma serão fornecidos dois arrays, o primeiro array é o de propriedades //que se relaciona com o segundo array, que é o de valores, pelo índice. getFieldsByProperty(['prop', 'prop2'], [valor, valor2]); //Através de um callback //Nesta forma são obtidos os campos de acordo com a regra definida no callback. getFieldsByProperty(function (field) { return field.required; });
-
getKeyField()
-
Retorna o campo que contém a chave dos registros, ou nulo caso não o encontre.
Returns:
O campo chave da grade.
- Type
- Field
-
getLookupCallerField()
-
Obtém o campo que disparou a exibição da grade, caso ela seja a grade de Lookup.
Returns:
- Type
- Field
-
getSelectedRecords( [opt_viewMode])
-
Retorna os registros selecionados da visão da grade informada no parâmetro. Caso a visão não seja informada, será utilizada a visão atual. Para a visão formulário, será retornado um array com o bookmark do registro posicionado no momento. Quando o dataset estiver no estado de inserção, o getSelectedRecords() retornará um array vazio.
Parameters:
Name Type Argument Description opt_viewMode
number <optional>
Modo de visão a partir da qual se deseja saber quais os registros selecionados. Os valores possíveis são: Grid.FORMVIEW e Grid.TABLEVIEW.
- Deprecated:
-
- Utilize #selectedRecords ou #getSelectedRecordsAtView.
Returns:
Array com os bookmarks dos registros selecionados.
- Type
- Array
-
getSelectedRecordsAtView( [viewMode])
-
Retorna os registros selecionados da visão da grade informada no parâmetro.
Parameters:
Name Type Argument Description viewMode
number <optional>
Modo de visão a partir da qual se deseja saber quais os registros selecionados. Os valores possíveis são: Grid.FORMVIEW e Grid.TABLEVIEW.
Returns:
Array com os bookmarks dos registros selecionados.
- Type
- Array
-
hasDataSet()
-
Verifica se a grade está associada a um dataSet.
Returns:
True se a grade for associada a um dataSet. False se for uma grade de variáveis ou se for uma grade não inicializada.
- Type
- boolean
-
insert()
-
Inicia a inserção de um registro na grade.
-
lookup(field)
-
Dispara grade lookup em campos da grade que estejam relacionados com registros de uma tabela.
Parameters:
Name Type Description field
GridField Campo que possui a propriedade lookup definida.
-
persist()
-
Realiza persistência para DataSets da grade e de suas filhas. Essa deve ser a forma recomendada de realizar a persistência de uma grade. A exceção é para quando são utilizados objetos de gestão responsáveis por gravar as alterações realizadas no DataSet informado à grade.
Returns:
Versão das alterações.
- Type
- number
-
post( [opt_doParentPost])
-
Efetiva as alteração o registo corrente esteja em estado de edição ou inserção.
Parameters:
Name Type Argument Description opt_doParentPost
boolean <optional>
Indica que deve ser realizada a efetivação do registro mestre caso esta seja uma grade detalhe. Caso não seja informado, será considerado true.
Fires:
- ngin.classdef.Events#event:beforePost
- ngin.classdef.Events#event:validate
- ngin.classdef.Events#event:afterPost
Returns:
True se a edição ou inserção foi efetivada, false caso o registro não estivesse em edição ou inserção, ou se um listener do evento post preveniu a ação padrão.
- Type
- boolean
-
refresh( [opt_force])
-
Reinicia a estrutura da grade tanto no servidor quanto no cliente. Possibilitando assim que as alterações feitas após o grid.write() entrem em vigor.
Sempre que uma alteração é realizada na estrutura da grade (criação de um campo por exemplo) esta entrará em vigor somente após ser feito o grid.refresh() da grade.
Importante: ao executar este método a grade irá requerer uma recarga das suas configurações. Para que não haja perda de configurações, as definições de campos necessariamente devem ser realizadas dentro do evento defineFields e as definições das grades detalhes no evento defineGrid.
Parameters:
Name Type Argument Description opt_force
boolean <optional>
Indica se o refresh deverá ser realizado mesmo para uma grade que acabou de ser escrita, ou seja logo após ser realizado o grid.write(), ou se pode ser realizado refresh múltiplas vezes.
-
resetFields()
-
Redefine os valores de todos os campos do registro que esteja em foco na grade.
Caso seja um campo não-calculável, para o seu valor padrão, onde o valor padrão seria o Field.defaultValue, ou seja, a sugestão de preenchimento do campo. -
scroll(action)
-
Executa um método de navegação do dataset ('first', 'next', 'prior' ou 'last') ou função passada como parâmetro, disparando os eventos de scroll da grade e atualizando os filtros das grades detalhes.
Parameters:
Name Type Description action
string | function Método que deve ser invocado no dataset ou uma função que será executada recebendo o dataset com argumento.
-
setFieldsProperties()
-
Este método cria ou seta as propriedades informadas com os valores informados em cada campo da definido nos parâmetros. Para utilizar esse método existem diversas formas de o invocar, veja os exemplo abaixo.
Example
// Array de campos com callback para setar as propriedades: fl.setFieldsProperties([field1, field2], function (field) { field.prop = valor; field.prop2 = valor2; }); // Array com os nomes dos campos com callback para setar as propriedades: fl.setFieldsProperties(['campo1','campos2'], function (field) { field.prop = valor; field.prop2 = valor2 }); // String com o nomes dos campos separados por virgula ou ponto e virgula como primeiro // parâmetro. // Array com nomes das propriedades a serem definidas como segundo parâmetro. // Array com os valores a serem definidos nas propriedades de mesmo índice como terceiro // parâmetro. fl.setFieldsProperties('campo1,campos2', ['prop', 'prop2'], [valor, valor2]); // Ainda na forma anterior pode ser utilizado o caractere '*' para obter todos os campos. fl.setFieldsProperties('*', ['prop', 'prop2'], [valor, valor2]); // Lista de strings separados por vírgula ou ponto e virgula com os nomes dos campos a // serem alterados como primeiro parâmetro. // Os parâmetros seguintes são os nomes das propriedades com os valores que devem ser // atribuídos. fl.setFieldsProperties('campo1,campos2', 'prop', valor, 'prop2', valor2);
-
toggleFieldVisibility(field)
-
Alterna a visibilidade de um campo da grade nos dois modos de visão.
Parameters:
Name Type Description field
string | Field O campo ou nome do campo a ter a visibilidade chaveada.
-
toggleKeyVisibility()
-
Alterna a visibilidade do campo CHAVE ou iKey, caso o campo esteja presente.
-
write( [opt_showInFormView] [, opt_noWriteInClient])
-
Método utilizado para escrever a grade na tela após serem configurados os eventos e os seus campos.
Qualquer alteração na estrutura da grade após ser realizado o grid.write() só entrará em vigor após ser realizado um grid.refresh(), que atualiza a estrutura de uma grade que já foi escrita.
Por padrão a grade é escrita em modo tabela.
Parameters:
Name Type Argument Description opt_showInFormView
boolean <optional>
Indica se deverá escrever a grade no modo formulário.
opt_noWriteInClient
boolean <optional>
Indica que o write não deve ser efetivado para o browser. É de uso interno da grade e não deve ser utilizado. Este parâmetro será removido no futuro.
Events
-
afterCancel
-
Evento emitido após o cancelamento de uma inserção ou edição de um registro associado a classe de dados. Seu uso é recomendado para registrar que um usuário intencionalmente cancelou uma inserção ou edição. Importante: no momento da emissão deste evento o DataSet já concluiu o cancelamento da edição ou inserção, portanto a propriedade data não terá os dados do registro cancelado.
Type: GridEvent
-
afterDelete
-
Evento que será emitido após a exclusão de um registro associado a classe de dados. Seu uso é recomendado para realizar o registro de informações não essenciais, como logs de alterações.
Importante: este evento normalmente é emitido após a persistência das alterações no banco de dados. Visto que o sistema pode ser abruptamente interrompido, não há garantias de que ele será executado sempre que a classe de dados for alterada. Por esse motivo, não é recomendado o seu uso em regras de negócios.Type: GridEvent
-
afterDuplicate
-
Evento que será emitido após um registro ser duplicado. Seu uso é recomendado para realizar sugestões de valores para o registro novo, recém duplicado.
Type: GridEvent
Example
grid.on('afterDuplicate', function (evt) { evt.grid.process.alert('Registro duplicado.'); });
-
afterEdit
-
Evento emitido depois de uma edição de um registro associado a classe de dados ter sido iniciada. Seu uso é recomendado para atualizar informações que indiquem o momento ou o usuário que está realizando a modificação.
Type: GridEvent
Example
// O exemplo abaixo pega o último horário em que o registro entrou em edição e grava // este valor em um campo somente leitura para o usuário on('afterEdit', function (evt) { evt.data.modificado = new Date(); evt.data.modificador = session.userKey; });
-
afterExpand
-
Evento emitido depois de um registro ser expandido pelo usuário.
Type: TreeExpandEvent
-
afterInsert
-
Evento emitido após a inserção de um registro associado a classe de dados. Seu uso é recomendado para sugerir os valores dos campos do novo registro, simplificando o preenchimento dos dados para o usuário.
Type: GridEvent
-
afterPost
-
Evento emitido depois da execução do método post do DataSet associado a classe de dados. Seu uso é recomendado para realizar o registro de informações não essenciais, como logs de alterações.
Importante: este evento normalmente é emitido após a persistência das alterações no banco de dados. Visto que o sistema pode ser abruptamente interrompido, não há garantias de que ele será executado sempre que a classe de dados for alterada. Por esse motivo, não é recomendado o seu uso em regras de negócios.Type: GridEvent
Example
on('afterPost', function (evt) { if (evt.data.recordCount > 5) { logger.debug('Registrado mais de 5 registros'); } })
-
afterPrepare
-
Evento emitido após a preparação da grade. A preparação da grade ocorre quando ela é escrita pela primeira vez na interface pelo método Grid#write.
Type: GridEvent
- Deprecated:
-
- Prefira utilizar o evento "defineFields".
- See:
-
afterScroll
-
Evento emitido após a navegação de um registro para um outro em uma grade associada a um DataSet. Também será emitido assim que a grade for escrita, momento em que ela se posicionar no registro corrente do DataSet.
Type: GridEvent
-
afterSelectRecord
-
Evento que será emitido após um ou mais registros serem marcados ou desmarcados na grade.
Type: GridEvent
-
beforeCancel
-
Evento emitido antes de cancelar a inserção ou edição de um registro associado a classe de dados. Seu uso é recomendado para registrar que um usuário intencionalmente cancelou uma inserção ou edição, ou para realizar algum tipo de confirmação, no caso deste evento estar sendo emitido em um contexto de interface.
Type: GridEvent
-
beforeDelete
-
Evento emitido antes da exclusão de um registro associado a classe de dados. Seu uso é recomendado para verificar regras de negócio que impeçam a remoção de um registro em uma classe de dados.
Type: GridEvent
Example
on('beforeDelete', function (evt) { if (session.userKey !== ngin.keys.Users.ADMINISTRATOR) { throw new Error('Apenas o usuário "administrator" pode excluir este registro.'); } });
-
beforeDuplicate
-
Evento que será emitido antes de um registro seja duplicado. Seu uso é recomendado para verificar regras de negócio que indiquem se o registro pode ou não ser duplicado.
Type: GridEvent
Example
grid.on('beforeDuplicate', function (evt) { evt.grid.process.alert('Duplicando registro em ' + evt.grid.name + '.'); });
-
beforeEdit
-
Evento emitido antes da edição de um registro da grade de dados. Seu uso é recomendado para verificar regras de negócio que impeçam a edição de um registro da classe de dados.
Importante: no momento da emissão deste evento o DataSet ainda não encontra-se em estado de edição, portanto o registro corrente não deve ser modificado.Type: GridEvent
-
beforeExpand
-
Evento emitido após um registro ser expandido em uma grade em árvore. O conceito de expansão e contração de registros existe apenas quando há campos do tipo "tree" em uma grade.
Type: TreeExpandEvent
-
beforeInsert
-
Evento emitido antes da inserção de um registro associado a classe de dados. Seu uso é recomendado para verificar regras de negócio que impeçam a inserção de um novo registro em uma classe de dados.
Importante: no momento da emissão deste evento o DataSet ainda não possui dados do registro a ser inserido, portanto o registro corrente não deve ser modificado.Type: GridEvent
-
beforePost
-
Evento emitido antes da execução do método post do DataSet associado a classe de dados. Seu uso é recomendado para realizar validações se os dados do registro não ferem regras de negócio.
Type: GridEvent
Example
// O exemplo abaixo verifica se os valores nos campos "password" e "confirmPassword" // são iguais, ou seja, se o usuário digitou uma senha e a confirmou corretamente, // em caso negativo exibe um erro, impedindo que o registro seja inserido.<br> // O evento recebe os seguintes parâmetros:<br> on('beforePost', function (evt) { if (evt.data.password !== evt.data.confirmPassword) { throw new Error('A nova senha e a confirmação são diferentes. Digite novamente a senha.'); } });
-
beforePrepare
-
Evento emitido antes da preparação da grade. A preparação da grade ocorre quando ela é escrita pela primeira vez na interface pelo método Grid#write.
Type: GridEvent
- Deprecated:
-
- Prefira utilizar o evento "defineFields".
- See:
-
beforeScroll
-
Evento que será emitido antes da navegação de um registro para um outro em uma grade associada a um DataSet. Também será emitido assim que a grade for escrita, momento em que ela se posicionar no registro corrente do DataSet.
Type: GridEvent
Example
// No exemplo abaixo é dado um alerta informando o número do registro em que // se estava posicionado, caso a grade não esteja vazia.<br> grid.on('beforeScroll', function (evt) { if (evt.data.recNo > 0) { evt.process.alert('Você estava no registro: ' + evt.data.recNo); }); })
-
beforeSelectRecord
-
Evento emitido quando um registro é marcado ou desmarcado, ou quando o usuário pressiona o botão inverter seleção. Este evento é emitido antes da seleção ocorrer, permitindo que o desenvolvedor possa alterar a seleção do usuário.
Type: BeforeSelectRecordEvent
Example
grid.on('beforeSelectRecord', function (evt) { var selected = createSet(evt.grid.selectedRecords); var alreadySelected = evt.bookmarks.some(function (bmk) { return bmk in selected; }); if (alreadySelected) { evt.process.alert('Não é permitido selecionar o registro mais de uma vez.'); evt.bookmarks = []; } });
-
changeView
-
Evento que será emitido quando for alterado o modo de visão da grade.
A grade poderá ter seu modo de visão alterado a partir da propriedade viewMode que irá disparar este evento, ao chamar esse evento a propriedade viewMode estará com seu valor anterior á mudança de visão.
A grade também pode ter seu modo de visão alterado quando for chamado o grid.write() que possui um parâmetro que determina em que modo será escrita a grade.Type: GridEvent
Example
// No exemplo abaixo quando o modo de visão da grade é alterado são alterados // também os botões visíveis pois algumas delas não fazem sentido em um ou outro // modo de visão. Como a modificação deve ser do modo formulário para tabela e // vice-versa, é utilizado uma expressão condicional para analisar o valor do viewMode.<br> grid.on('changeView', function (evt) { if (evt.grid.viewMode === Grid.TABLEVIEW ){ evt.grid.visibleButtons = ['Redefinir Grade']; } else { evt.grid.visibleButtons = ['Editar', 'Recarregar grades']; } });
-
defineFields
-
Evento que deve ser utilizado para configurar os campos de uma grade. Todas as definições de campo devem ser declaradas através deste evento.
Configurações de campos realizadas fora deste evento serão perdidas caso sejam alteradas as propriedades Grid#classKey ou Grid#ds, ou caso seja executado o método Grid#refresh.Type: GridEvent
Example
grid.on('defineFields', function (evt) { var fld = evt.grid.field('matricula', 'int32'); fld.size = 6; fld.readOnly = true; fld.label = 'Número de matrícula'; fld.help = 'Número da matrícula do aluno.'; fld = evt.grid.field('disciplina', 'string', 256); fld.size = 6; fld.readOnly = true; fld.label = 'Disciplina'; fld.help = 'Código das disciplinas que serão cursadas por este aluno.'; });
-
export
-
Evento que será emitido quando o botão de exportar da grade for acionado.
Type: GridExportEvent
-
locate
-
Evento que será emitido quando a grade for localizar um conteúdo.
O comportamento padrão de localização da grade poderá ser substituído fazendo uso do método ngin.event.Listener#replaceListeners.Type: uwi.classdef.GridLocateEvent
Example
// O exemplo abaixo personaliza a busca para permitir que sejam buscados apenas // números e executa o evento padrão através do "inherited".<br> // O evento deverá retornar um valor booleano, sendo true para indicar que localizou // o registro. O dataSet da grid deve ser posicionado no registro localizado. grid.replaceListeners('locate', function (evt, replacedEmit) { if (typeof evt.value !== 'number') { replacedEmit(evt) if (replacedEmit.locatedField) { grid.process.setNextInteraction('interactionName') } } else { throw new Error('Não é possível localizar valores diferentes de números!') } });
-
showLog
-
A grade possui o botão de "Log" que ao ser acionado exibe o histórico de alterações do registro corrente. Este evento será emitido quando esse botão for acionado.
O processo padrão de histórico de alterações da grade poderá ser substituído fazendo uso do método ngin.event.Listener#replaceListeners.Type: GridEvent
Example
grid.replaceListeners('showLog', function (evt) { evt.grid.process.setNextInteraction('run', ['chave', evt.data.ikey], -1898143458); evt.preventDefault(); });