Class: FormDialogField

@nginstack/web-framework/lib/dialogs/FormDialogField~ FormDialogField


new FormDialogField()

Campo de um FormDialog.

Importante: Apenas as seguintes propriedades de ViewDefField são suportadas pelo FormDialog: name, label, width, height, rows, type, wrap, readOnly, required, decimalPrecision, minDecimalPrecision, maxDecimalPrecision, enterKeyAction, displayFormat, validationType, rangeLimit, defaultValue, showPasswordStrength e options

See:

Extends

Members


aggregate :module:@nginstack/web-framework/lib/field-aggregator/FieldAggregator~FieldAggregator

Totalização que deve ser realizada nos valores do campo e que será exibida na última linha da grade.

Deve ser informada uma instância de uma classe filha de FieldAggregator que implemente a lógica de agregação dos dados. Podem ser utilizadas uma das classes preexistentes, como SumFieldAggregator, AvgFieldAggregator, MaxFieldAggregator, MinFieldAggregator e CountFieldAggregator, ou pode ser criada uma classe customizada que implemente uma lógica de agregação não convencional.

A totalização de campos calculados somente será permitida se a classe de agregação suportar essa funcionalidade. Esse capacidade é indicada pela propriedade supportsCalculatedFields.

Type:
Inherited From:
See:
Example
fld.aggregate = new SumFieldAggregator();

alignment :string

Determina qual será o alinhamento do campo na grade.

Observe na tabela abaixo os valores possíveis e o modo de alinhamento:

  • "left": alinhamento à esquerda (Valor padrão);
  • "right": alinhamento à direita;
  • "center": alinhamento centralizado;
Type:
  • string
Inherited From:

allowMultipleInsert :boolean

Indica que a partir da grade de lookup, será possível fazer múltiplas inserções na grade corrente. Os novos registros serão inseridos com base no registro corrente.
Importante: campos somente para leitura no momento da inserção do novo registro não terão o seu conteúdo sugerido com base no registro corrente.

Type:
  • boolean
Inherited From:

allowSavedValues :boolean

Indica se o valor do campo pode ser gravado nos conjuntos de valores salvos pelo usuário em grades de variáveis. Campos que não permitem a gravação são sinalizados no modo de edição dos valores salvos e não têm o valor gravado ou restaurado. Campos de senha nunca têm o valor gravado, independentemente desta propriedade.

Type:
  • boolean
Inherited From:
See:
  • Grid#showSavedValuesBar

autoSanitize :boolean

Determina se os valores informados no campo, no rótulo e no nome do grupo devem ser tratados para remover tags que possam ser utilizadas com o objetivo de injetar scripts maliciosos em ataques do tipo Cross Site Scripting (XSS).

Ao desativar esta propriedade, é de crítica importância que algum tipo de validação ou sanitização seja realizada com o valor do campo, preferencialmente no evento beforeChange. A validação do rótulo do campo e do grupo também são desativadas, portanto deve-se ter atenção ao seus valores caso eles não sejam textos fixos.

Por padrão, esta propriedade está ativa para todos os campos exceto os do tipo "password".

Importante: a sanitização realizada por esta classe tem o objetivo de prevenir ataques do tipo XSS, mas os valores recebidos devem ainda ser validados para outros tipos de ataque, como o de injeção de SQL. Jamais utilize os valores oriundos dos campos ou de outras fontes, como propriedades de processos, registros da base de dados, arquivos ou dados de uma requisição, sem realizar algum tipo de sanitização desses valores, principalmente na construção de expressões SQL. Para a construção de expressões SQL, é recomendado o uso das funções toSqlString e toSqlIdentifier.

Type:
  • boolean
Inherited From:

autoTrim :boolean

Determina se o campo excluirá automaticamente os espaços encontrados no início e no fim do valor atribuído a ele.

Type:
  • boolean
Inherited From:

breakLine :boolean

Indica se deverá ser forçada a quebra de linha após o campo quando da escrita da grade.

Type:
  • boolean
Inherited From:

caseType :string

Em campos do tipo "string" ou "memo", determina como será tratado o texto informado com relação à caixa das letras (maiúsculas/minúsculas).

Valores suportados:

  • upper: todo o texto será convertido para caixa alta.
  • lower: todo o texto será convertido para caixa baixa.
  • name ou mixed: cada palavra será iniciada com uma letra maiúscula exceto as preposições mais comuns utilizadas em nomes próprios. Atualmente não são capitalizadas as preposições "of", "da", "do", "de", "dos" e "das".
  • title: cada palavra com mais de uma letra será iniciada com maiúscula, exceto as preposições mais comuns em títulos.
  • statement: cada palavra que inicie um parágrafo será iniciada com letra maiúscula.
Type:
  • string
Inherited From:
See:

changed :boolean

Indica se o campo foi alterado.

Type:
  • boolean
Inherited From:

charLength :number|null

Para campos que possuem #databaseType igual a varchar ou char, indica a quantidade de caracteres que serão armazenados na coluna.

A diferença desta propriedade para #size é que tipos que representam máscaras de valores são normalizados para o tipo real utilizado para guardar o dado. Exemplo: um campo com tipo 'hour' possui o charLength igual a 8.

Campos do tipo combo, terão o seu tamanho calculado a partir dos valores do combo. Tipos que não tem representação de tamanho, como number, integer, masterdetail, têm o charLength igual a null.

Type:
  • number| null
Inherited From:

classKey :number

Define que o campo será um lookup para a classe informada.

  • Se o campo for do tipo "int64", "int32" ou "integer" será um lookup simples, permitindo selecionar apenas um registro da classe informada. O valor deste campo será a chave do registro selecionado.
  • Se o campo for do tipo "memo", "string" ou "file" será um lookup múltiplo, permitindo selecionar vários registros da classe informada. O valor deste campo será uma lista separada por "," dos registros selecionados.

A tabela utilizada para realizar o lookup dependerá da propriedade lookupType. Valores possíveis:

  • LookupType.RECORD: será utilizada a tabela configurada na propriedade tableName do x-class da classe informada.
  • LookupType.CLASS: será utilizada a tabela CLASSE. Serão exibidas apenas as classes filhas da classe informada.
  • LookupType.FILE: será utilizada a tabela iVfs. Serão exibidos apenas os arquivos filhos da classe informada ou uma de suas filhas.
Type:
  • number
Inherited From:
See:

column :number

Índice da coluna em que o campo deve ser exibido em modo formulário.

O uso desta propriedade permite dispor campos lado a lado. Quando utilizado em colunas do tipo grade, todas as demais colunas na mesma linha devem ser do tipo grade.

Por motivos de compatibilidade, o valor desta propriedade é baseado em zero, ou seja, a primeira coluna é a coluna 0, a segunda coluna é a coluna 1 e assim por diante.

Type:
  • number
Inherited From:
Example
fld = grid.field('iCode', 'string', 50);
fld.label = 'Code';
fld.order = 1;
fld.column = 0;

fld = grid.field('iName', 'string', 250);
fld.label = 'Name';
fld.order = 2;
fld.classKey = -123;
fld.column = 1;

controlType

Determina qual controle será utilizado no cliente para renderizar e editar o conteúdo do campo.

Os valores permitidos são:

  • "input": O campo será editado através de um input HTML. O valor do campo deve ser textual, sem tags HTML. (valor padrão)
  • "image": O campo exibirá imagens em seu conteúdo. Campos deste tipo de controle utilizarão o valor do campo como URI da imagem a ser exibida.
  • "color": O campo exibirá uma cor em seu conteúdo. Campos deste tipo utilizarão um seletor de cores para que o usuário selecione a cor desejada.
  • "icon": O campo exibirá um ícone em seu conteúdo. Campos deste tipo utilizarão o valor do campo como o nome do ícone a ser exibido.
  • "none": Não será utilizado um controle e o conteúdo do campo será considerado um HTML que deve ser inserido diretamente na célula da grade, sem nenhum tipo de validação ou restrição. Por não existir um controle, o conteúdo exibido não poderá ser editado pelo usuário.

O controlType "none" permite uma grande flexibilidade na exibição de dados, no entanto é recomendado que seja utilizado com moderação. O seu uso delega ao desenvolvedor a responsabilidade de:

  • definir o estilo CSS do campo, em especial em sobrescrever estilos não desejados herdados do tema. Upgrades futuros do WebFramework ou alterações nos temas podem exigir que o CSS do campo seja revisto.
  • garantir que não sejam inseridas tags que possam quebrar o leiaute da grade.

Por padrão, a propriedade autoSanitize é desativada ao utilizar o controlType "none". Portanto, conteúdos informados pelo cliente devem ser sanitizados para não permitir a injeção de códigos maliciosos por usuários mal-intencionados.

Inherited From:

cssStyle :Record.<string, string>

Estilos CSS em linha que serão aplicados no campo. Esse estilo será aplicado para todas as células no modo tabela e para o campo no modo formulário.

Type:
  • Record.<string, string>
Inherited From:
Example
let field = this.field('campo', 'int32');
field.cssStyle['font-weight'] = 'bold';

dataDictionary :Object

Ajuda para o dicionário de dados, quando se aplicar.

Este tipo de ajuda serve de base para o conhecimento técnico sobre a modelagem das tabelas no banco de dados. Deve indicar, entre outras coisas, o relacionamento entre o campo na tabela em que se está documentando e o campo de referência na outra tabela.

Type:
  • Object
Inherited From:
See:

dataSetType :DataSetDataType

Tipo de dados utilizado para armazenar este campo em um DataSet. A diferença desta propriedade para #type é que tipos que representam máscaras de valores são normalizados para o tipo real utilizado para guardar o dado. Exemplo: um campo com tipo 'hour' possui o dataSetType com o tipo 'string'.

Campos do tipo combo, terão o seu tipo de dado calculado a partir dos valores do combo. Tipos que não tem representação direta na tabela, como 'masterdetail', têm o dataSetType igual a null.

Type:
  • DataSetDataType
Inherited From:
See:

databaseType :DatabaseDataType

Tipo de dados utilizado para armazenar este campo no banco de dados. A diferença desta propriedade para #type é que tipos que representam máscaras de valores são normalizados para o tipo real utilizado para guardar o dado. Exemplo: um campo com tipo 'hour' possui o databaseType com o tipo 'varchar'.

Campos do tipo combo, terão o seu tipo de dado calculado a partir dos valores do combo. Tipos que não tem representação direta na tabela, como masterdetail, têm o databaseType igual a null.

Type:
  • DatabaseDataType
Inherited From:
See:

dateFormat :DateFormat

Formato de exibição de campos do tipo "date". Valores possíveis:

Type:
  • DateFormat
Inherited From:
Deprecated:
  • Utilize a propriedade displayFormat.
Example
DateFormat.DDMMYYYY: dia/mês/ano(4 dígitos)
 DateFormat.DDMMYY:   dia/mês/ano(2 dígitos)
 DateFormat.MMYYYY:   mês/ano(4 dígitos)
 DateFormat.WWYYYY:   semana/ano(4 dígitos)

decimalPrecision :number

Determina a quantidade de casas decimais que devem ser exibidas quando o campo for do tipo "number".

Type:
  • number
Inherited From:
Default Value:
  • 2

defaultValue :Object

Sugestão de preenchimento do campo.

Será ignorada caso a propriedade saveInputAsDefault seja true e o usuário já tenha informado um valor para este campo.

Recurso disponível apenas em grades de variáveis.

Type:
  • Object
Inherited From:
See:
  • Field#saveInputAsDefault

detailDescendingIndexFieldNames :string

Indica quais campos da propriedade detailIndexFieldNames devem estar em ordem descendente.
Recurso disponível apenas para campos do tipo "grid".

Type:
  • string
Inherited From:
See:
  • Field#detailIndexFieldNames

detailFieldNames :string

Lista de campos da grade detalhes que devem ser pesquisados com os valores dos campos da mãe definidos em masterFieldNames com o objetivo de criar um relacionamento masterDetail. Recurso disponível apenas para campos do tipo "grid".

Type:
  • string
Inherited From:

detailFilter :string

Filtro que será aplicado ao DataSet da grade detalhe.

Recurso disponível apenas para campos do tipo "grid" e "masterdetail".

Type:
  • string
Inherited From:

detailIndexFieldNames :string

Indica a ordem desejada dos campos na grade detalhe. Os índices do DataSet serão os campos definidos na propriedade detailFieldNames e os campos informados nesta propriedade.
Recurso disponível apenas para campos do tipo "grid".

Type:
  • string
Inherited From:
See:
  • Field#detailFieldNames
  • Field#detailDescendingIndexFieldNames

displayFormat :DateFormat|LatitudeFormat|LongitudeFormat|AngleFormat|NumberFormat

Formato de exibição dos campos com tipo "date", "longitude", "latitude", "angle", "int32", "int64", "number" e "integer".

Valores possíveis:

  • DateFormat.DDMMYYYY: dia/mês/ano(4 dígitos)
  • DateFormat.DDMMYY: dia/mês/ano(2 dígitos)
  • DateFormat.MMYYYY: mês/ano(4 dígitos)
  • DateFormat.WWYYYY: semana/ano(4 dígitos)
  • LatitudeFormat.DDD_DDDDD: graus decimais°
  • LatitudeFormat.DDD_MM_MMM_DIR: graus° minutos' {N|S}
  • LatitudeFormat.DDD_MM_SS_S_DIR: graus° minutos' segundos" {N|S}
  • LongitudeFormat.DDD_DDDDD: graus°
  • LongitudeFormat.DDD_MM_MMM_DIR: graus° minutos' {E|W}
  • LongitudeFormat.DDD_MM_SS_S_DIR: graus° minutos' segundos" {E|W}
  • AngleFormat.DDD: graus°
  • AngleFormat.DDD_DD: graus decimais°
  • NumberFormat.DECIMAL: número com separador de milhar e decimal
  • NumberFormat.INTEGER: número inteiro com separador de milhar
  • NumberFormat.DBKEY: número inteiro sem separador de milhar
  • NumberFormat.FILE_SIZE: tamanho em bytes em potências de 1024, como 1,5K, 20M ou 2G. Utiliza sempre no máximo 2 casas decimais, ignorando a precisão decimal configurada
Type:
  • DateFormat| LatitudeFormat| LongitudeFormat| AngleFormat| NumberFormat
Inherited From:
Example
// Altera a formatação da chave para exibir o número sem separador de milhar

const NumberFormat = require('@nginstack/engine/lib/number/NumberFormat.js');

const fld = this.field('UNIFICADOR', 'int64');
fld.displayFormat = NumberFormat.DBKEY;

duplicateMode :string

Informa o comportamento do campo ao ser duplicado. Por padrão, todos os campos visíveis são duplicados, exceto grades detalhes, que explicitamente devem ser configurados para serem duplicados.

Type:
  • string
Inherited From:
See:
  • DuplicateMode
Example
var fld = this.field('campo1', 'string', 50);
//Indica que não ocorre nada durante a duplicação, o valor será vazio no
//para o registro duplicado
fld.duplicateMode = 'none';

var fld = this.field('campo2', 'string', 50);
//Indica que o valor será copiado para o registro duplicado
fld.duplicateMode = 'copy';

var fld = this.field('campo3', 'string', 50);
//Indica que o valor será a copia com um caractere '+' adicionado
fld.duplicateMode = 'copyAddingSuffix';

duplicationHandling :module:@nginstack/engine/lib/event/DuplicationHandling

Indica como deve ser tratada a tentativa de registrar uma função de listener duplicada neste Emitter. Valores possíveis: DuplicationHandling.IGNORE (padrão), DuplicationHandling.ACCEPT e DuplicationHandling.REMOVE.

Type:
Inherited From:

editable :boolean

Determina se o campo pode ser editado, não leva em consideração a propriedade readOnly.
Apenas campos calculados que não tenham o evento onAfterChange definido serão considerados campos não-editáveis.

Type:
  • boolean
Inherited From:

emptyResultMessage :string

Mensagem personalizada que será exibida ao usuário quando o lookup não encontrar resultados.

Type:
  • string
Inherited From:

enterKeyAction :EnterKeyAction|string

Determina como o campo deve tratar a tecla ENTER durante a edição. O valor padrão será EnterKeyAction.DONE se quantidade de linhas do campo for 1 e EnterKeyAction.NEWLINE se for maior que 1. Se for definida explicitamente a ação EnterKeyAction.NEWLINE em um campo com quantidade de linhas 1, o comportamento será igual ao EnterKeyAction.IGNORE.

Valores possíveis:

  • EnterKeyAction.IGNORE ou ignore: a tecla ENTER é ignorada no conteúdo do campo.
  • EnterKeyAction.NEWLINE ou newline: insere uma quebra de linha no conteúdo do campo.
  • EnterKeyAction.DONE ou done: a tecla ENTER encerra o preenchimento do campo atual.
Type:
  • EnterKeyAction| string
Inherited From:
See:

formViewable :boolean

Determina se o campo é visível no modo formulário.

Type:
  • boolean
Inherited From:
See:
  • Field#tableViewable

group :module:@nginstack/engine/lib/classdef/FieldGroup~FieldGroup

Nome ou instância da classe FieldGroup, que será utilizado para agrupar visualmente os campos na grade. É importante que os campos a serem agrupados sejam vizinhos na ordem de exibição (configuração realizada através da propriedade order).

Type:
Inherited From:
See:
  • Field#order

hasInformedControl :boolean

Indica se o campo deve sinalizar em negrito que o valor foi alterado pelo usuário. Os campos alterados pelo usuário serão gravados no campo especial "iInformedFields".

Type:
  • boolean
Inherited From:

Indica se o campo possui links associados a ele.

Se não explicitamente configurada, ela será true sempre que houver links configurados ou quando a classe lookup do campo tiver ações globais.

Ela pode ser manualmente configurada para false quando não for desejado exibir as ações globais de um determinado campo. Na prática, esta propriedade indica se o botão de exibir os links estará disponível na interface.

Type:
  • boolean
Inherited From:
See:
  • Field#links

height :string|number

Altura visual do campo em pixels, considerada apenas no modo formulário da grade. Por motivos de compatibilidade, caso seja informado um valor numérico, este será atribuído a propriedade rows, que define a quantidade de linhas dos campos de texto em área.

Observação: para fins de compatibilidade, valores textuais numéricos sem a unidade 'px' (ex: '50') são tratados como números e definem o número de linhas exibidas.

Type:
  • string| number
Inherited From:
See:

help :String

Ajuda para o campo a ser utilizada pelas interfaces. Recomenda-se que a ajuda seja a mais intuitiva possível.

Pode-se utilizar alguns caracteres para melhorar a apresentação da ajuda como, por exemplo, "n" para quebrar a linha.

Type:
  • String
Inherited From:
See:
Example
var fld = grid.field("ajuda", number)
fld.help = "isto é uma ajuda e tanto"

integrityCheck :boolean

Determina se a exclusão de um registro na tabela associada à propriedade classKey deve checar neste campo se existe referência à chave excluída.

Propriedade válida apenas para campos que possuam a propriedade classKey preenchida.

ATENÇÃO: Definir esta propriedade como false poderá permitir que este campo tenha referência a chaves que foram excluídas, o que consiste em uma falha de integridade. Deve haver uma validação manual que garanta a integridade do modelo de dados.

Type:
  • boolean
Inherited From:

isCalculated :boolean

Determina se é um campo calculado, ou seja, se possui o evento calculate configurado.

Type:
  • boolean
Inherited From:

isClassLookup :boolean

API desaconselhada, equivalente a definir LookupType.CLASS na propriedade lookupType.

Type:
  • boolean
Inherited From:
Deprecated:
  • Yes
See:

isDataBaseField :boolean

Informa se este campo possui uma representação no banco de dados.

Type:
  • boolean
Inherited From:
Deprecated:
  • Utilize #isDatabaseField.

isDatabaseField :boolean

Informa se este campo possui uma representação no banco de dados. Caso não possua, o valor do campo em uma grade de DataSet não persistirá após o post do registro, precisando ser calculado por eventos ou processos.

Type:
  • boolean
Inherited From:

label :String

Título atribuído ao campo. Por padrão a propriedade "name" do campo é atribuída automaticamente ao título do campo.

Em uma grade de variáveis, os nomes serão atribuídos obedecendo ao critério da primeira letra em caixa baixa e, quando mudar a palavra, a primeira letra da palavra deve ser digitada em caixa alta (mesmo padrão utilizado na nomenclatura das variáveis).

Type:
  • String
Inherited From:
See:
Example
Se a propriedade "name" estiver preenchido com "dataInicial", a propriedade "label"
receberá automaticamente: "Data Inicial".

labelPosition :string

Determina a posição do rótulo do campo no modo de visualização formulário. Possíveis valores: "left" e "top".

Type:
  • string
Inherited From:

Link associado ao campo. API desaconselhada, utilize a propriedade "links".

Type:
Inherited From:
Deprecated:
  • Yes
See:
  • Field#links

linkParametersValuesFieldNames :Array

Nomes dos campos dos quais deverão ser extraídos os parâmetros dos links.

Type:
  • Array
Inherited From:
Deprecated:
  • Yes
See:
  • Field#links

Coleção de atalhos que estão associados ao campo.
Para criar um novo atalho, utilize o método LinkSet#add.

Type:
Inherited From:
See:
Example
// Cria(m)-se o(s) objeto(s) link antes de adicioná-los ao field
 const lnk1 = process.link('Explorador', 'main', -1898145512, false);
 const lnk2 = process.link('Alerta', function (link){
   process.alert('Alerta do meu segundo atalho!');
 });
 fld.links.add(lnk1);
 fld.links.add(lnk2);

listenerCompareFunction :function

Indica como devem ser comparados dois listeners para determinar se eles são iguais. Valores possíveis: ListenerCompareFunctions.STRICT e ListenerCompareFunctions.SOURCE. O tratamento do registro de um listener duplicado é determinada pela propriedade Emitter#DuplicationHandling.

Type:
  • function
Inherited From:
See:

lookupDisplayWidth :number|string

Largura do campo da grade lookup que apresenta os valores de exibição dos registros pesquisados.

Esta propriedade pode ser definida em quantidade de caracteres que devem ser exibidos ou pixels. Caso seja informado um valor numérico, será calculada a quantidade de pixels necessários para exibir a quantidade de caracteres informada. No entanto, a largura das letras variam e este cálculo é aproximado, podendo haver variações na quantidade real de caracteres exibidos.

Caso não seja informado um valor para esta propriedade, o sistema calculará um automaticamente com base na largura deste campo.

Type:
  • number| string
Inherited From:
Example
fld.lookupDisplayWidth = 60;

lookupType :number

Define o tipo de "lookup" do campo. O tipo será interpretado somente se a propriedade "classKey" estiver preenchida.

O "lookup" é um tipo especial de "combo", que aponta para uma tabela de dados.

Observe na tabela abaixo os valores possíveis e a sua aplicação:

Type:
  • number
Inherited From:
See:
Example
TIPO              - APLICAÇÃO

LookupType.NONE   - Sem "lookup". Este é o valor padrão, se a propriedade
                    "classKey" não estiver preenchida.
LookupType.RECORD - "Lookup" para "Registros de Tabelas". Este é o valor padrão,
                    quando a propriedade "classKey" é preenchida.
LookupType.CLASS  - "Lookup" para "Classe de Tabelas", de acordo com a propriedade
                    "classKey".
LookupType.FILE   - "Lookup" para arquivos do Sistema Virtual de Arquivos (VFS)
                    a partir da classe definida na propriedade "classKey".

lowerName :string

Nome do campo em caixa baixa.

Type:
  • string
Inherited From:

masterDeleteAction :MasterDeleteAction

Para campos do tipo "masterDetail", indica como os registros detalhes devem ser tratados quando ocorrer a exclusão do registro mestre.

Valores possíveis: MasterDeleteAction.ERROR, MasterDeleteAction.DELETE e MasterDeleteAction.UNLINK.

Type:
  • MasterDeleteAction
Inherited From:

masterDetailMaxRecordCount :number

Quantidade máxima de registros que serão exibidos na grade detalhe.
Recurso disponível apenas para campos do tipo "grid".

Type:
  • number
Inherited From:
Deprecated:

masterFieldNames :string

Lista de campos da grade mãe que devem ser utilizados para pesquisar nos campos detailFieldNames da grade detalhe, criando um relacionamento masterDetail.

Recurso disponível apenas para campos do tipo "grid".

Type:
  • string
Inherited From:

max :number|Date

Valor máximo permitido de digitação no campo. Válido para todos os caracteres (letras, número e caracteres especiais).

Type:
  • number| Date
Inherited From:
See:
  • Field#min
Example
var gr = this.grid('vars');
gr.title = 'Variáveis';
gr.onDefineFields.set(function(grid) {
   var fld = grid.field('fator', 'integer');
   fld.max = 10;
})

// Neste exemplo, caso o usuário digite um valor superior a 10, será apresentada a mensagem:
// 'O valor digitado deve ser menor ou igual a 10.'

maxDecimalPrecision :number

Determina a quantidade máxima de casas decimais que devem ser exibidas quando o campo for do tipo "number".

Type:
  • number
Inherited From:

min :number|Date

Valor mínimo permitido de digitação no campo. Válido para todos os caracteres (letras, número e caracteres especiais).

Type:
  • number| Date
Inherited From:
See:
  • Field#max
Example
var gr = this.grid('vars');
gr.title = 'Variáveis';
gr.onDefineFields.set(function(grid) {
   var fld = grid.field('fator', 'int32');
   fld.min = 10;
})

// Neste Exemplo, caso o usuário digite um valor inferior a 10, será apresentada a mensagem:
// 'O valor digitado deve ser maior ou igual a 10.'

minDecimalPrecision :number

Determina a quantidade mínima de casas decimais que devem ser exibidas quando o campo for do tipo "number". Caso a quantidade mínima não seja atingida então o restante dos valores será preenchido com zero.

Type:
  • number
Inherited From:
Default Value:
  • 2

multiple :boolean

Determina, para campos de texto ("string" e "memo") com lookup ou combo, se o campo aceita valores múltiplos.

Esta propriedade somente pode ser setada se o campo possuir uma classKey ou for combo.

Caso esta propriedade não seja setada explicitamente, será utilizado o comportamento padrão, que é a aceitação de valores múltiplos para lookup e um único valor para combo.

Type:
  • boolean
Inherited From:

name :string

Nome único que identifica o campo na base de dados.

Type:
  • string
Inherited From:

negativeInRed :boolean

Determina se os valores negativos de campos do tipo "number", "int64", "int32" ou "integer" devem ser destacados com a cor vermelha.

Type:
  • boolean
Inherited From:

onAfterChange :module:@nginstack/engine/lib/event/Event~Event

Corresponde ao evento que será executado após ser alterado o valor do campo.

O exemplo abaixo escreve no log a mudança de valores que ocorreu no campo:

Type:
Inherited From:
Deprecated:
  • Utilize on('afterChange', listener).
Example
field.onAfterChange.set(function (field, beforeValue) {
   log.write('Valor alterado de ' + beforeValue + ' para ' + field.value);
})

onAfterLookupAddResult :module:@nginstack/engine/lib/event/Event~Event

Evento emitido após o filtro dos resultados de uma pesquisa de um campo lookup. Esse evento será emitido uma vez, independente da quantidade de registros filtrados pelo evento lookupAddResult. Seu uso é recomendado quando há necessidade de limpar eventuais recursos que foram alocados em listeners do evento beforeLookupAddResult.

Type:
Inherited From:
Deprecated:
  • Utilize on('afterLookupAddResult', listener).
Example
field.onAfterLookupAddResult.set(function (field) {
   var process = field.parent.process;
   // Por exemplo, saldo é um DataSet que foi utilizado dentro do
   // onLookupAddResult
   process.saldo.empty()
 });

onBeforeChange :module:@nginstack/engine/lib/event/Event~Event

Evento que será emitido antes de um campo ser alterado. O exemplo abaixo verifica o valor que se quer atribuir ao campo e caso ele seja maior que 10, então é disparado um erro.

Type:
Inherited From:
Deprecated:
  • Utilize on('beforeChange', listener).
Example
field.onBeforeChange.set(function (field, value) {
   if (value > 10)
     throw new Error('Valor não pode ser maior que 10');
 });

onBeforeLookupAddResult :module:@nginstack/engine/lib/event/Event~Event

Evento emitido antes do filtro dos resultados de uma pesquisa de um campo lookup. Esse evento será emitido uma vez, independente da quantidade de registros filtrados pelo evento lookupAddResult. É recomendado o seu uso para alocar recursos que serão utilizados pelos listeners do evento lookupAddResult, evitando alocar esses recursos a cada avaliação do filtro.

Type:
Inherited From:
Deprecated:
  • Utilize on('beforeLookupAddResult', listener).
Example
field.onBeforeLookupAddResult.set(function (field) {
   var process = field.parent.process;
   // Por exemplo, saldo é um DataSet utilizado dentro do onLookupAddResult
   process.saldo = objetoSaldo.consulta();
   process.saldo.indexFieldNames = 'LOTE';
 });

onCalculate :module:@nginstack/engine/lib/event/Event~Event

Evento que será emitido para obter o valor do campo calculado.

Type:
Inherited From:
Deprecated:
  • Utilize on('calculate', function (listener).
Example
// O exemplo abaixo retorna o registro do DataSet em que o cursor está
 // posicionado e atribui esse valor ao campo.
 field.onCalculate.set(function (field) {
   return field.parent.ds.recNo;
 });

onDefineGrid :module:@nginstack/engine/lib/event/Event~Event

Evento emitido em campos do tipo "masterDetail" ou "grid" com o objetivo de permitir a configuração da grade detalhe.

Type:
Inherited From:
Deprecated:
  • Utilize on('defineGrid', listener).
Example
// O exemplo abaixo cria uma grade detalhe e seta o título como "Grade personalizada".
 grid.field('campo', 'grid').onDefineGrid.set(function (field) {
   var grid = field.grid;
   grid.title = 'Grade detalhe';
 });

onFocus :module:@nginstack/engine/lib/event/Event~Event

Evento emitido quando o campo recebe o foco. O uso deste evento não é recomendado, pois ele prejudica a usabilidade da grade ao torná-la mais lenta. Com o uso deste evento passa a ser necessária uma interação a mais com o servidor durante a navegação de campos.

Type:
Inherited From:
Deprecated:
  • Utilize on('focus', listener).
Example
// O exemplo abaixo exibe o help do campo no label "helpMessages" existente no
 // processo.
 field.onFocus.set(function (field) {
   var label = field.parent.process.helpMessages;
   label.text = field.help;
 });

onGetOptions :module:@nginstack/engine/lib/event/Event~Event

Evento emitido para obter as opções de valores aceitos no preenchimento deste campo.

Ao configurar o evento onGetOptions de um campo, ele passa a ser comportar como um campo do tipo "combo", independentemente do tipo de dado informado na construção do campo.

Este evento deve ser configurado apenas se as opções não forem informadas diretamente por meio da propriedade #options do campo.

Type:
Inherited From:
Deprecated:
  • Utilize on('getOptions', listener).

onGetTreeIcon :module:@nginstack/engine/lib/event/Event~Event

Evento emitido na apresentação de uma grade em árvore para obter o ícone de um nó.
Emitido apenas quando o field é do tipo "tree". O sender do evento é o nó corrente da árvore. Deve retornar a chave ou URL de uma imagem da virtual file system (VFS).

Type:
Inherited From:
Deprecated:
  • Utilize on('getTreeIcon', listener).
Example
field.onGetTreeIcon.set(function(field) {
   if (!field.level) {
     return '/treeImages/root.png';
   }
 });

onLookupAddResult :module:@nginstack/engine/lib/event/Event~Event

Evento emitido durante a pesquisa de um campo lookup, permitindo que o desenvolvedor filtre as opções possíveis de serem informadas neste campo.

Type:
Inherited From:
Deprecated:
  • Utilize on('lookupAddResult', listener).
Example
field.onLookupAddResult.set(function(field, findResult) {
   return !field.parent.ds.uf || findResult.key.uf == field.parent.ds.uf;
 })

onLookupDisplay :module:@nginstack/engine/lib/event/Event~Event

Evento emitido quando o sistema precisa obter o valor de exibição de uma chave desta classe de dados.

No exemplo abaixo quando o campo perder o foco será exibido o valor do nome e do codigo da UF:

Type:
Inherited From:
Deprecated:
  • Utilize on('lookupDisplay').
Example
field.onLookupDisplay.set(function (field, value) {
  if (value) {
    const key = DBKey.from(value);
    return key.str('NOME') + ' - ' + key.str('UF.CODIGO');
  } else {
    return '';
  }
})

onLookupMultipleInsert :module:@nginstack/engine/lib/event/Event~Event

Evento emitido quando ocorrer uma inserção múltipla de registros a partir da grade Lookup.

A inserção múltipla de registros fica habilitada na grade Lookup por meio do botão 'Inserir como Novos' quando a propriedade 'allowMultipleInsert' do campo é definida como true.

O comportamento padrão é inserir automaticamente múltiplos registros de acordo com a seleção que ocorreu na grade Lookup, no entanto esse comportamento pode ser alterado por este evento.

Type:
Inherited From:
Deprecated:
  • Utilize on('lookupMultipleInsert', listener).
Example
// O exemplo abaixo, mostra a possibilidade de estender esse comportamento
 // herdando ou não o procedimento padrão.
 var field = grid.field('CAMPO', 'int64');
 field.classKey = -1898187808; // Tipos de Arquivo
 field.allowMultipleInsert = true;
 field.onLookupMultipleInsert.set(function (sender, grdLookup) {
   inherited(sender, grdLookup); // herda o comportamento padrão (opcional)
   var grid = sender.parent;
   for (var i = 0; i < grdLookup.selectedRecords.length; ++i) {
     grdLookup.ds.bookmark = grdLookup.selectedRecords[i];
     grid.ds.append();
     grid.ds.campo = grdLookup.ds.ikey;
     grid.ds.obs = 'Registro inserido manualmente';
     grid.ds.post();
   }
 });

onOpenKey :module:@nginstack/engine/lib/event/Event~Event

Evento emitido quando o usuário deseja abrir detalhes sobre um registro de um campo lookup ou deseja uma interface mais rica para auxiliar o seu preenchimento.

Type:
Inherited From:
Deprecated:
  • Utilize on('openKey', listener);

onValidate :module:@nginstack/engine/lib/event/Event~Event

Corresponde ao evento que será executado para validar o conteúdo informado para o campo. Neste evento não deve existir nenhuma dependência com o process, pois poderá ser disparado de dentro de qualquer ambiente.

O exemplo abaixo verifica se o campo do dataset é null se for, seta valor 0 para o campo da grade.

Type:
Inherited From:
Deprecated:
  • Utilize on('validate', listener).
Example
var f = grid.field('valor', 'int32')
 f.onValidate.set(function (field, ds) {
   if (ds.valor === null) {
     field.setValue(0);
   }
 });

options :Array.<Array>

Lista das opções de valores aceitos no preenchimento deste campo.

Ao configurar a propriedade options de um campo, ele passa a ser comportar como um campo do tipo "combo", independentemente do tipo de dado informado na construção do campo. Alternativamente, pode ser utilizado o evento getOptions para configurar as opções de preenchimento do campo.

Deve ser informado um array de arrays de 2 itens:

  • nome da opção
  • valor atribuído à opção
Type:
  • Array.<Array>
Inherited From:
Example
var fld = this.field('weekDay', 'combo')
fld.label = 'Dia da Semana'
fld.options = [
  ['Domingo', 0], ['Segunda-feira', 1], ['Terça-feira', 2],
  ['Quarta-feira', 3], ['Quinta-feira', 4], ['Sexta-feira', 5],
  ['Sábado', 6], ['Domingo', 7]
];
fld.help = 'Informe um dia da semana.';

order :number

Ordem na qual o campo deverá ser exibido.

Type:
  • number
Inherited From:

parent :module:@nginstack/web-framework/lib/grid/Grid~Grid|module:@nginstack/web-framework/lib/classdef/ViewDef~ViewDef

Grade ou definição de classe a qual este campo está associado.

Type:
Inherited From:

permissionFilterFieldName :string

Determina se este campo deve ser utilizado como filtro extra para validar o poder de inserção, alteração e exclusão de um registro.

O nome do campo informado será o do campo da iPermission, que deve ser filtrado com o valor deste campo.

O uso deste recurso em uma inserção gera uma expressão equivalente a:

Type:
  • string
Inherited From:
See:
  • module:@nginstack/engine/lib/classdef/ModelDef#getExtraFilterFields
  • module:@nginstack/engine/lib/classdef/ModelDef#getExtraFilterExpression
Example
connection.getPermission(
   Grid.classKey, 'iInsert', Grid.userKeyToValidatePermissions,
   'withoutInheritance', [ Field.permissionFilterFieldName, Field.value ]
)

rangeLimit :Limit

Indica se o campo representa início ou fim de um intervalo, atualmente rangeLimit só é suportado para campos do tipo data.

Type:
  • Limit
Inherited From:

readOnly :ReadOnlyMode|boolean

Determina quando o campo deve ser somente para leitura. Valores possíveis:

  • ReadOnlyMode.NEVER ou false: o campo pode ser alterado;
  • ReadOnlyMode.ALWAYS ou true: o campo é somente leitura;
  • ReadOnlyMode.AFTER_INSERT: o campo pode ser modificado apenas durante a inserção. Após a inserção, o campo não poderá ser mais modificado.
  • ReadOnlyMode.FILLED: campo é somente leitura apenas se estiver preenchido, impedindo a modificação do primeiro valor informado.
Type:
  • ReadOnlyMode| boolean
Inherited From:

required :boolean

Indica se o campo é de preenchimento obrigatório.

Type:
  • boolean
Inherited From:

requiredDataSetFields :string

Lista dos campos que devem existir no dataset da grade para que este campo possa ser exibido.
Por padrão: É necessário no mínimo existir um campo no dataset com o mesmo nome que este campo.

Type:
  • string
Inherited From:

resyncPending :boolean

Indica se o campo deve ter seu valor sincronizado entre o cliente e o servidor. Esta propriedade é de uso interno.

Type:
  • boolean
Inherited From:

rows :number

Quantidade de linhas visíveis para campos de área de texto dos tipos "string" e "memo" no modo formulário da grade.

Type:
  • number
Inherited From:
See:

saveInputAsDefault :boolean

Indica se o valor informado pelo usuário deve ser armazenado e sugerido como valor padrão nos próximo usos.
Recurso disponível apenas em grades de variáveis.

Type:
  • boolean
Inherited From:
See:
  • Field#defaultValue

showGlobalActions :boolean

Define se este campo deve apresentar ações globais.

Type:
  • boolean
Inherited From:

showLookupClass :boolean

Determina se o campo "Classe" deve ser exibido na grade lookup.

Caso não seja informado um valor para esta propriedade, o sistema exibirá a classe dos registros lookup sempre que classKey referenciar uma classe que possua filhas, ou seja, classes que não sejam folhas na árvore de classes.

Type:
  • boolean
Inherited From:
Example
fld.showLookupClass = false;

showPasswordStrength :boolean

Indica se campos do tipo "password" devem exibir a força da senha digitada. Seu uso é apenas informativo e não impede a escrita de senhas fracas.

Type:
  • boolean
Inherited From:
Example
const fld = grid.field('newPassword', 'password', 256);
fld.showPasswordStrength = true;

size :number

Tamanho do campo em caracteres. Utilizado apenas para campos do tipo "string" ou do tipo "password".

Type:
  • number
Inherited From:

stringIfTrue :String

Texto que representará o campo do tipo "boolean" quando o mesmo estiver marcado ("true").

Type:
  • String
Inherited From:
Default Value:
  • "T"

tableViewLabel :string

Versão reduzida do rótulo do campo. Esta propriedade é utilizada em casos em que é necessário exibir o rótulo de um campo e economizar espaço, como quando é utilizada como cabeçalho de uma coluna em uma grade. Caso esta propriedade esteja nula ou indefinida será considerado o valor normal do rótulo.

Type:
  • string
Inherited From:
See:
  • Field#label

tableViewWidth :string|number

Largura visual do campo que deve ser aplicada apenas no modo tabela da grade. Esta propriedade se sobrepõe a propriedade #width quando o campo é exibido em modo tabela.

Pode ser definida em quantidade de caracteres que devem ser exibidos ou pixels. Caso seja informado um valor numérico será calculada a quantidade de pixels necessários para exibir a quantidade de caracteres informada. No entanto, a largura das letras variam e este cálculo é aproximado, podendo haver variações na quantidade real de caracteres exibidos.

Observação: para fins de compatibilidade, valores textuais numéricos sem a unidade 'px' (ex: '50') são tratados como números e definem a quantidade de caracteres exibidos.

Type:
  • string| number
Inherited From:
See:

tableViewable :boolean

Determina se o campo é visível no modo tabela.

Type:
  • boolean
Inherited From:
See:
  • Field#formViewable

thumbnail :module:@nginstack/web-framework/lib/classdef/CellThumbnail~CellThumbnail

Configuração do thumbnail das imagens do cadastro indicado por este campo. O thumbnail das imagens do cadastro é exibido apenas em campos com classKey informado.

Type:
Inherited From:

treeChildFieldName :string

Nome do campo que deve ser utilizado para pesquisar os nós filhos a partir do valor do campo treeParentFieldName do nó mãe.
Utilizado apenas em campos do tipo "tree".

Type:
  • string
Inherited From:
See:
  • Field#treeParentFieldName
  • Field#treeRootValues
Example
Exemplo na documentação da propriedade treeParentFieldName.

treeParentFieldName :string

Nome do campo que relaciona os registros em uma estrutura em árvore. O valor deste campo no registros filhos é igual ao campo treeChildFieldName do registro mãe. Utilizado apenas em campos do tipo "tree".
Exemplo:

Type:
  • string
Inherited From:
See:
  • Field#treeChildFieldName
  • Field#treeRootValues
Example
this.interaction('main', function () {
    var classe = connection.cloneLocalCache('CLASSE');
    this.classesTree = this.grid('classesTree', classe);
    this.classesTree.title = 'Árvore de Classes';
    this.classesTree.tableViewFieldNames = 'NOME';
    this.classesTree.onDefineFields.set(function (grid) {
        var fld = grid.field('NOME', 'tree')
        fld.order = 10;
        fld.label = 'Nome';
        fld.treeParentFieldName = 'MAE';
        fld.treeChildFieldName = 'CHAVE';
        fld.treeRootValues = [-1898146248]; // data
    });
    this.classesTree.write();
});

treeRootValues :Object

Valor ou array de valores que devem ser utilizados para encontrar a raiz da uma árvore. Os valores informados serão pesquisados no campo informado na propriedade treeChildFieldName.
Utilizado apenas em campos do tipo "tree".

Type:
  • Object
Inherited From:
See:
  • Field#treeParentFieldName
  • Field#treeChildFieldName
Example
Exemplo na documentação da propriedade treeParentFieldName.

type :string

Tipo do campo. Observe na tabela abaixo os valores permitidos e sua utilização:

  • "string" - Tipo utilizado para campos que conterão texto;

  • "password" - Tipo utilizado para campos que conterão senhas;

  • "masterDetail" - Tipo utilizado para criar uma relação de 1 para N entre duas classes. Para utilizar esse tipo de campo é obrigatório o preenchimento das seguintes propriedades:

    • classKey: indica a classe de dados que contém os registros detalhes da relação. A classe de dados que definiu o campo do tipo "masterDetail" é a classe considerada mestre da relação;
    • masterFieldNames: indica os campos da classe de dados mestre que devem ser utilizados para filtrar os registros da classe de dados detalhe.
    • detailFieldNames: indica os campos da classe de dados detalhe que serão filtrados com os valores dos campos masterFieldNames da classe mestre.

    Pseudo-código para obtenção dos registros detalhes:

       var tabelaDetalhe = classes.getCachedDataSet(field.classKey);
       var camposMestre = getFieldValues(field.masterFieldNames);
       tabelaDetalhe.indexFieldNames = field.detailFieldNames;
       detail.setRange(camposMestre, camposMestre);
    
  • "grid" - Tipo utilizado para indicar que o campo deve ser visualizado como uma grade detalhe da classe de dados que o definiu. O seu propósito é similar ao tipo "masterdetail", no entanto, ele permite a exibição de dados detalhes cuja relação não pode ser estabelecida apenas pelas propriedades classKey, masterFieldNames e detailFieldNames. Sempre que for possível, é recomendado o uso do tipo "masterdetail". Campos do tipo "grid" não podem ser utilizados em definição de modelo de dados (x-model), sendo o seu uso restrito em definições de visão (x-view) e em processos. Campos do tipo "grid" podem ser definidos em grades de variáveis, sem DataSet associado. Nesse caso, o evento createDataSet da grade detalhe deve ser configurado e as propriedades masterFieldNames, detailFieldNames e classKey não devem ser informadas.

  • "int64" - Tipo utilizado para campos que conterão números inteiros de 64 bits. Campos que armazenem chaves ou versões do sistema devem utilizar este tipo.

  • "int32" - Tipo utilizado para campos que conterão números inteiros de 32 bits. Deve ser utilizado para valores contidos na faixa de [-Math.pow(2, 31) ~ Math.pow(2, 31) - 1] e que não sejam chaves e versões do sistema. Para esses últimos, deve ser utilizado o tipo "int64".

  • "integer" - Tipo legado que existia antes da criação dos tipos "int64" e "int32". O tipo "integer" será mapeado para um desses dois tipos de acordo com o valor retornado pela função DataSet.getIntegerDataType().

  • "number"- Tipo utilizado para campos que conterão números decimais. Por padrão terão duas casas decimais.

  • "latitude" - Tipo utilizado para campos que conterão números decimais para representar latitudes. Por padrão terão até cinco casas decimais e a parte inteira conterá até três casas.

  • "longitude" - Tipo utilizado para campos que conterão números decimais para representar longitudes. Por padrão terão até cinco casas decimais e a parte inteira conterá até três casas.

  • "angle" - Tipo utilizado para campos que conterão números decimais para representar ângulos. Por padrão terão duas casas decimais e a parte inteira conterá até três casas.

  • "memo" - Tipo utilizado para campos que conterão textos longos (mais de 4000 caracteres).

  • "date" - Tipo utilizado para campos que conterão datas.

  • "combo" - Tipo utilizado para campos que conterão listas de opções ou combinação de outros tipos. Devido ao tipo do dado e tamanho serem dinamicamente calculados com base nas opções do combo, ele deve ser evitado nas definições das classes de dados (arquivos x-model e x-class). Em seu lugar, deve ser dada preferência aos campos com tipos reais e que tenham a propriedade #options ou o evento getOptions definidos.

  • "time" - Tipo utilizado para campos que conterão horas. Utilizado para trabalhar com tempo.

  • "boolean" - Tipo utilizado para campos que conterão valores lógicos ou booleanos.

  • "file" - Tipo utilizado para campos que conterão arquivos.

  • "tree" - Tipo utilizado para campos que conterão grades do tipo treeGrid (árvore).

Para testar se o campo é de um determinado tipo, utilize as funções de teste de tipo: isString, isNumber, isMasterDetail, isGrid, etc.

Type:
  • string
Inherited From:

upperName :string

Nome do campo em caixa alta.

Type:
  • string
Inherited From:

userCanChangeNegativeKey :boolean

Indica se o usuário pode ou não alterar o conteúdo do campo, caso o registro seja de chave negativa (licenciado para o produto).

Type:
  • boolean
Inherited From:

validationType :ValidationType

Tipo de validação que o campo irá realizar em relação ao seu conteúdo. O tipo de validação é definido automaticamente com base no tipo do campo para os seguintes tipos: 'string', 'int64', 'int32', 'number', 'date', 'latitude', 'longitude', 'angle' ou 'boolean'.

Também pode ser sugerido com base no nome do campo, considerando regras legadas existentes no sistema os seguintes nomes de campo são tratados: 'email', 'cep', 'celular', 'fone', qualquer nome que termine com 'h' ou contenha 'hora' e seja uma string com tamanho 5, 'pis', 'pispasep', 'sacadocgc' e 'cgccpf'.

Caso seja necessário alterar o tipo de validação padrão, esta propriedade pode ser redefinida. Os seguintes valores são aceitos: 'string', 'int64', 'int32', 'number', 'date', 'email', 'cep', 'time', 'phone', 'pis', 'cpf', 'cnpj', 'cpfcnpj', 'latitude', 'longitude', 'boolean' ou 'angle'.

Type:
  • ValidationType
Inherited From:
See:
  • module:@nginstack/engine/lib/classdef/ValidationType~ValidationType

viewMode :number

Modo de visão dos campos do tipo "file". Valores permitidos: Field.VM_THUMBNAIL ou Field.VM_LIST.

Type:
  • number
Inherited From:
Deprecated:
  • Campos do tipo file não são mais suportados. Utilize as classes Relações entre cadastros e arquivos.
See:
  • Field#VM_THUMBNAIL
  • Field#VM_LIST

visible :boolean

Indica se o campo deverá ser visível no modelo. Para o valor false no modelo implica dizer que o campo nunca será utilizado. Ou seja nenhum Framework será capaz de obter a informação do campo. Contudo caso o campo não seja utilizado no Web Framework, o desenvolvedor deve utilizar o valor false na camada de visão.

Type:
  • boolean
Inherited From:
See:

width :string|number

Largura visual do campo.

Pode ser definida em quantidade de caracteres que devem ser exibidos ou pixels. Caso seja informado um valor numérico será calculada a quantidade de pixels necessários para exibir a quantidade de caracteres informada. No entanto, a largura das letras variam e este cálculo é aproximado, podendo haver variações na quantidade real de caracteres exibidos.

Para definir o tamanho de campos do tipo "string", utilize a propriedade "size".

Para campos do tipo "boolean" esta propriedade irá alterar apenas a largura no modo tabela, sendo preferível utilizar a propriedade #tableViewWidth. No modo formulário o campo do tipo "boolean" terá largura fixa, independente do valor desta propriedade.

Observação: para fins de compatibilidade, valores textuais numéricos sem a unidade 'px' (ex: '50') são tratados como números e definem a quantidade de caracteres exibidos.

Type:
  • string| number
Inherited From:
See:

wrap :boolean

Indica se o texto contido no field deve quebrar as linhas, não tendo assim uma barra de rolagem horizontal. Só faz sentido usar esta propriedade em campo do tipo "memo".

Type:
  • boolean
Inherited From:

zoomMaxHeight :number|string

Altura máxima em pixels que a imagem terá ao ser dado zoom. Aplicado para campos com o controlType igual a "image".

Type:
  • number| string
Inherited From:
See:

zoomMaxWidth :number|string

Largura máxima em pixels que a imagem terá ao ser dado zoom. Aplicado para campos com o controlType igual a "image".

Type:
  • number| string
Inherited From:
See:

Methods


addListenersFromEmitter(emitter [, opt_type])

Adiciona neste emitter os listeners do emitter informado.

Parameters:
Name Type Argument Description
emitter module:@nginstack/engine/lib/event/Emitter~Emitter

Emitter que terá os eventos copiados.

opt_type string <optional>

Tipo do evento a ser copiado. Caso não seja informado, serão copiados os listeners de todos os tipos de evento.

Inherited From:

assign(field)

Copia as propriedades de um campo informado.

Parameters:
Name Type Description
field module:@nginstack/engine/lib/classdef/Field~Field

Campo de onde as propriedades devem ser copiadas

Inherited From:

assignListeners()

Método não suportado em campos de um formulário.

Overrides:

assignObjectsTo(field)

Copia as propriedades que são objetos para um campo.

Este método é uma versão alternativa do #assignTo utilizado no método #clone quando é criada uma cópia do campo utilizando uma cadeia de protótipos. Nesse caso, as propriedades que contém valores primitivos não são copiadas, pois serão herdadas do protótipo.

Parameters:
Name Type Description
field

Campo para onde as propriedades devem ser copiadas.

Inherited From:

assignTo(field)

Copia as propriedades de um campo para outro.

Parameters:
Name Type Description
field module:@nginstack/engine/lib/classdef/Field~Field

Campo para onde as propriedades devem ser copiadas

Inherited From:

canHaveGlobalActions()

Checa se este campo possui estrutura de ter ações globais.

Inherited From:
Returns:

Indica se é possível ter ações globais neste campo.

Type
boolean

clone(NewClass)

Cria uma cópia do campo.

Parameters:
Name Type Description
NewClass function

Classe em que o campo que será criado. Este parâmetro é opcional e deve ser utilizado apenas quando se deseja alterar a classe do campo que será clonado.

Inherited From:
Returns:

Cópia do campo na classe informada.

Type
module:@nginstack/engine/lib/classdef/Field~Field

emit(event)

Emite o evento informado, executando todas as funções de listeners previamente registradas para o tipo do evento emitido.

Parameters:
Name Type Description
event module:@nginstack/engine/lib/event/Event~Event

Evento a ser emitido.

Inherited From:
Throws:

Erro que dispara caso não exista um tipo registrado para manipulação do evento. Eventos aptos a serem manipulados devem ser registrados com o método #registerEventType.

Type
EventTypeException
Returns:

Retorna a indicação que o evento foi emitido para todos os listeners e não foi solicitado o cancelamento da ação padrão associada ao evento, por meio da execução do método Event#preventDefault. Caso o evento não possa ser cancelado (@link Event#cancelable}), será retornado sempre true.

Type
boolean

filterListeners(filterFn [, opt_type])

Elimina os listeners que não satisfaçam a função de filtro.

Parameters:
Name Type Argument Description
filterFn function

Função que indicará quais filtros devem ser mantidos neste emitter. Deverá ser retornado true para indicar que o filtro deve ser preservado.

opt_type string <optional>

Tipo de evento que terá os listeners filtrados. Caso não seja informado, os listeners de todos os tipos de eventos serão filtrados.

Inherited From:

getGlobalActionClassKey( [opt_key])

Pega a chave da classe para ser usada como base de cálculo das ações globais levando em consideração o estado atual deste campo.

Parameters:
Name Type Argument Description
opt_key number <optional>

Caso esta chave seja passada significa que este campo sabe exatamente aonde está posicionado e quer calcular a classe mais próxima a dada chave.

Inherited From:
Returns:

Chave da classe calculada para uso nas ações globais.

Type
number

getGlobalActionRegisterKey( [opt_key])

Pega a chave do registro para ser usado como base de cálculo das ações globais levando em consideração o estado atual deste campo.

Parameters:
Name Type Argument Description
opt_key number <optional>

Força que o resultado seja esta chave.

Inherited From:
Returns:

Chave do registro posicionado caso seja possível pegá-lo.

Type
number

hasEvent(eventName)

Verifica se foi adicionada uma função ou método ao evento informado.

Parameters:
Name Type Description
eventName string

Nome do evento

Inherited From:
Deprecated:
  • Utilize #hasListeners.
Returns:

True se houver pelo menos uma função ou método adicionado ao evento.

Type
boolean

hasListeners(type)

Verifica se há listeners registrados para o tipo de evento informado.

Parameters:
Name Type Description
type string| Array.<string>

Tipo do evento a ser verificado. Também pode ser informado um array de tipos. Neste caso, será retornado true se houver ao menos um listener registrado para um dos tipos informados.

Inherited From:
Returns:

True se houver listeners registrados para o tipo de evento informado.

Type
boolean

hasLookupDisplayEvent()

Indica se há um evento onLookupDisplay configurado nesse campo ou na definição da classe (x-class) a qual este campo está associado.

Inherited From:
Returns:
Type
boolean

hasVisibleThumbnail()

Verifica se o thumbnail do campo está visível.

Este método é equivalente a thumbnail.visible, no entanto ele evita que o getter da propriedade thumbnail crie uma instância de CellThumbnail sem que tenha ocorrido uma definição de fato da propriedade.

Inherited From:
Returns:
Type
boolean

isBoolean()

Indica se o campo é do tipo boolean.

Inherited From:
Returns:

True se o campo é do tipo boolean, false caso contrário.

Type
boolean

isCombo()

Indica se o campo é do tipo "combo" ou se as opções de preenchimento foram configuradas pela propriedade #options ou pelo evento getOptions.

Inherited From:
Returns:

True se o campo é do tipo combo, false caso contrário.

Type
boolean

isDate()

Indica se o campo é do tipo date.

Inherited From:
Returns:

True se o campo é do tipo date, false caso contrário.

Type
boolean

isFile()

Indica se o conteúdo do campo são arquivos armazenados na VFS.

Inherited From:
Returns:

True se o campo é do tipo file, false caso contrário.

Type
boolean

isGrid()

Indica se o tipo do campo é grid ou masterdetail.

Inherited From:
Returns:

True se o campo for uma grade detalhe, false caso contrário.

Type
boolean

isInt32()

Indica se o campo é do tipo inteiro 32 bits.

Inherited From:
Returns:

True se o campo é do tipo 'int32', false caso contrário.

Type
boolean

isInt64()

Indica se o campo é do tipo inteiro 64 bits.

Inherited From:
Returns:

True se o campo é do tipo 'int64', false caso contrário.

Type
boolean

isInteger()

Indica se o campo é do tipo inteiro, independente da sua precisão ('int64' ou 'int32').

O tipo 'integer' sem precisão é mapeado para o tipo retornado pela função DataSet.getIntegerDataType().

Inherited From:
Returns:

True se o campo é do tipo integer, false caso contrário.

Type
boolean

isKey()

Indica se o conteúdo do campo é uma chave.

Inherited From:
Returns:

True se o campo armazena chave de uma outra tabela

Type
boolean

isMasterDetail()

Verifica se o campo é do tipo masterdetail ou se é uma grade que estabelece uma relação mestre-detalhe por meio das propriedades #classKey, #masterFieldNames e #detailFieldNames.

Inherited From:
Returns:

True se o campo estabelecer uma relação mestre-detalhe.

Type
boolean

isMemo()

Indica se o campo é do tipo memo.

Inherited From:
Returns:

True se o campo é do tipo memo, false caso contrário.

Type
boolean

isNumber()

Indica se o campo é do tipo number.

Inherited From:
Returns:

True se o campo é do tipo number, false caso contrário.

Type
boolean

isPassword()

Indica se o campo armazena uma senha.

Inherited From:
Returns:

True se o campo é do tipo password, false caso contrário.

Type
boolean

isString()

Indica se o campo é do tipo string.

Inherited From:
Returns:

True se o campo é do tipo string, false caso contrário.

Type
boolean

isTime()

Indica se o conteúdo do campo é do tipo 'time'.

Para fins de compatibilidade, campos do tipo 'string' de tamanho 5 ou 8 com as palavras 'Hour' e 'Hora' no seu nome, ou com o sufixo H, são considerados do tipo 'time'. Esse comportamento tem o objetivo de suportar códigos legados de uma época onde não existia o tipo específico 'time'. Essa lógica é falha, pois pode considerar campos do tipo 'string' como do tipo 'time' indevidamente. Novas definições de campo sempre devem definir o tipo 'time' de forma explícita, pois em algum momento esse suporte aos códigos legados poderá ser removido.

Inherited From:
Returns:

True se o campo é do tipo 'time', false caso contrário.

Type
boolean

isTree()

Indica se o conteúdo do campo deve ser exibido em árvore.

Inherited From:
Returns:

True se o campo é do tipo tree, false caso contrário.

Type
boolean

listenerHandlers(type)

Obtém todas as funções de listeners registradas para o tipo de evento informado. O array retornado é uma cópia dos listeners registrados e sua manipulação não alterará a instância desta classe. Para adicionar ou remover uma nova função de listener, utilize os métodos #on ou #off.

Parameters:
Name Type Description
type string

Tipo de evento ao qual serão obtidos os EventListeners registrados.

Inherited From:
See:
Throws:

Será disparado um erro caso o tipo informado não tenha sido registrado previamente pelo método #registerEventType.

Type
EventTypeException
Returns:

Todas as funções de listeners registradas neste emitter para o tipo informado.

Type
Array.<function(module:@nginstack/engine/lib/event/Event~Event)>

listeners( [opt_type])

Obtém todos os listeners registrados para o tipo de evento informado. O array retornado é uma cópia dos listeners registrados e sua manipulação não alterará a instância desta classe. Para adicionar ou remover uma nova função de listener, utilize os métodos #on ou #off.

Parameters:
Name Type Argument Description
opt_type string <optional>

Tipo de evento ao qual serão obtidos os EventListeners registrados.

Inherited From:
See:
Throws:

Será disparado um erro caso o tipo informado não tenha sido registrado previamente pelo método #registerEventType.

Type
EventTypeException
Returns:

Todos os listeners registrados neste emitter para o tipo informado. Sempre serão retornadas instâncias de Listener, por mais que tenham sido registradas funções de listeners nos métodos #on ou #replaceListeners. Para obter as funções, acesse a propriedade Listener#handler dos elementos retornados ou utilize o método #listenerHandlers para obter a relação de funções. Caso não seja informado, serão retornados todos os listeners.

Type
Array.<module:@nginstack/engine/lib/event/Listener~Listener>

off(type, listener)

Remove uma função de listener previamente adicionada por meio do método #on.

Se uma função de listener for removida durante a emissão de um evento, ela será executada por mais que tenha sido removida. Ou seja, a remoção valerá para as emissões seguintes.

Parameters:
Name Type Description
type string

Tipo do evento que será removido.

listener module:@nginstack/engine/lib/event/Listener~Listener| function

Indica a função de listener a ser removida.

Inherited From:
See:
Returns:

Esta instância de Emitter, permitindo encadeamento de chamadas.

Type
module:@nginstack/engine/lib/event/Emitter~Emitter

offAll( [opt_type])

Remove todas as funções de listener associadas ao tipo informado. Caso o tipo não seja informado, serão removidas todas as funções de listeners de todos os tipos de eventos.

Parameters:
Name Type Argument Description
opt_type string <optional>

Tipo de evento que deverá ter os listeners removidos.

Inherited From:
Returns:

Esta instância de Emitter, permitindo encadeamento de chamadas.

Type
module:@nginstack/engine/lib/event/Emitter~Emitter

on()

Método não suportado em campos de um formulário.

Overrides:

registerEventType(type)

Registra um novo tipo de evento, permitindo que ele possa ser utilizado por esta instância de Emitter. A tentativa de emitir um evento ou listener de um tipo não registrado provocará um erro.

Parameters:
Name Type Description
type string| Array.<string>

Tipo do evento a ser registrado. Também pode ser informado um array de tipos.

Inherited From:

replaceListeners(type, listener)

Registra uma função de listener que irá substituir todos os listeners registrados para o tipo de evento indicado por type. A função informada receberá, além do parâmetro event, um segundo parâmetro que será uma função, que ao ser invocada, emitirá o o evento informado para os listeners que foram substituídos.

O comportamento deste emitter ao tentar registrar uma função de listener mais de uma vez é determinado pela propriedade #duplicationHandling.

Importante: o uso deste método não é recomendado. Ignorar os listeners registrados previamente por outros desenvolvedores é uma má prática de desenvolvimento e pode gerar inconsistências de dados. Seu uso deve ser restrito à compatibilização de eventos antigos que dependem deste comportamento, que antes eram declarados pelo método "set" da antiga API de Eventos do Engine (classe global Event).

Parameters:
Name Type Description
type string

Tipo de evento que será registrado.

listener module:@nginstack/engine/lib/event/Listener~Listener| function

Função que será executada quando ocorrer a emissão do evento.

Inherited From:
See:
Example
this.replaceListeners('beforePost', function (event, emit) {
   event.data.codigo = 'Novo cliente';
   emit(event);
 });

saveValuesToCache(entry)

Salva os valores do campo no cache. Isso para carregar os dados quando o formulário for carregado novamente.

Parameters:
Name Type Description
entry Entry

Objeto contendo os valores que devem ser gravados no cache.


unregisterEventType(type)

Remove o registro de um tipo de evento, bloqueando a utilização nesta instância de Emitter. A tentativa de emitir um evento ou listener de um tipo não registrado provocará um erro.

Parameters:
Name Type Description
type string| Array.<string>

Tipo do evento a ser bloqueado. Também pode ser informado um array de tipos.

Inherited From:

validateValue(value)

Valida o valor informado para um campo.

No caso dos campos do tipo legado "combo", o valor informado será considerado o índice da opção (1-indexado) e o valor zero indica que o campo deve ser limpo. Caso o valor informado não seja numérico ou seja maior que a quantidade de opções, ele será comparado com os valores das opções do combo. Esse comportamento especial do combo é mantido apenas para preservar os códigos existentes que usam o tipo "combo". Para evitá-lo, defina a propriedade options em campos com tipos reais de dados.

Parameters:
Name Type Description
value string| number| boolean| Date

O valor a ser validado.

Inherited From:

Events


afterChange

Evento que será emitido após um campo ter sido alterado, permitindo que o desenvolvedor modifique outros campos com base no valor informado.

Type: module:@nginstack/engine/lib/classdef/FieldChangeEvent~FieldChangeEvent
Inherited From:
See:
Example
field('uf').on('afterChange', function (evt) {
   if (evt.newValue) {
     evt.data.localidade = null;
   }
 });

afterLookupAddResult

Evento emitido após o filtro dos resultados de uma pesquisa de um campo lookup. Esse evento será emitido uma vez, independente da quantidade de registros filtrados pelo evento lookupAddResult. Seu uso é recomendado quando há necessidade de limpar eventuais recursos que foram alocados em listeners do evento beforeLookupAddResult.

Type: module:@nginstack/engine/lib/classdef/FieldEvent~FieldEvent
Inherited From:
See:
Example
field.on('afterLookupAddResult', function (evt) {
   evt.field.saldo_.empty();
 });

beforeChange

Evento que será emitido antes de um campo ser alterado, permitindo que o desenvolvedor impeça a alteração do campo, lançando um erro, ou altere o valor a ser informado no campo, modificando a propriedade FieldChangeEvent#newValue.

Type: module:@nginstack/engine/lib/classdef/FieldChangeEvent~FieldChangeEvent
Inherited From:
See:
Example
field.on('beforeChange', function (evt) {
   if (evt.newValue > 10)
     throw new Error('Valor não pode ser maior que 10');
 });

beforeLookupAddResult

Evento emitido antes do filtro dos resultados de uma pesquisa de um campo lookup. Esse evento será emitido uma vez, independente da quantidade de registros filtrados pelo evento lookupAddResult. É recomendado o seu uso para alocar recursos que serão utilizados pelos listeners do evento lookupAddResult, evitando alocar esses recursos a cada avaliação do filtro.

Type: module:@nginstack/engine/lib/classdef/FieldEvent~FieldEvent
Inherited From:
See:
Example
field.on('beforeLookupAddResult', function (evt) {
   var process = evt.field.parent.process;
   // Saldo é um DataSet que será utilizado no evento lookupAddResult
   evt.field.saldo_ = saldo.consulta();
   evt.field.saldo_.indexFieldNames = 'LOTE';
 });

calculate

Evento que será emitido para obter o valor do campo calculado.

Type: module:@nginstack/web-framework/lib/classdef/FieldCalculateEvent~FieldCalculateEvent| module:@nginstack/web-framework/lib/classdef/GridFieldEvent~GridFieldEvent
Inherited From:
Example
// O exemplo abaixo retorna o registro do DataSet em que o cursor está
 // posicionado e atribui esse valor ao campo.
 field.on('calculate', function (evt) {
   evt.value = evt.data.recNo;
 });

defineGrid

Evento emitido em campos do tipo "masterDetail" ou "grid" com o objetivo de permitir a configuração da grade detalhe.

Type: module:@nginstack/web-framework/lib/classdef/GridFieldEvent~GridFieldEvent
Inherited From:
Example
// O exemplo abaixo cria uma grade detalhe e seta o título como "Grade personalizada".
 grid.field('campo_detail_grid').on('defineGrid', function (evt) {
   var grid = evt.field.grid;
   grid.title = 'Grade detalhe';
 });

focus

Evento emitido quando o campo recebe o foco. O uso deste evento não é recomendado, pois ele prejudica a usabilidade da grade ao torná-la mais lenta. Com o uso deste evento passa a ser necessária uma interação a mais com o servidor durante a navegação de campos.

Type: module:@nginstack/web-framework/lib/classdef/GridFieldEvent~GridFieldEvent
Inherited From:
Example
// O exemplo abaixo exibe o help do campo no label "helpMessages" existente no
 // processo.
 field.on('focus', function (evt) {
   var label = evt.field.parent.process.helpMessages;
   label.text = evt.field.help;
 });

getCellStyle

Evento emitido para obter uma estilização específica e condicional para uma célula do campo. Este evento é disparado individualmente para cada célula de um campo (coluna) no modo tabela e no modo formulário.

O seu uso é recomendado quando há necessidade de alterar o estilo visual do campo de acordo com o seu valor, por exemplo, alterar a cor do texto utilizando uma faixa de valores. Para casos em que o estilo é o mesmo para todas as células, utilize a propriedade cssStyle.

Type: module:@nginstack/web-framework/lib/classdef/CellStyleEvent~CellStyleEvent
Inherited From:
See:
  • ViewDefField#cssStyle
Example
fld.on('getCellStyle', function (evt) {
   const field = evt.field;
   const value = evt.data.value;
   if (value > 75) {
     evt.cssStyle['color'] = 'cyan';
   } else if (value > 50) {
     evt.cssStyle['fontWeight'] = 'bold';
   } else if (value > 0) {
     evt.cssStyle['textAlign'] = 'left';
   } else {
     evt.cssStyle['textDecoration'] = 'dashed';
   }
 });

getOptions

Evento emitido para obter as opções de valores aceitos no preenchimento deste campo.

Ao configurar o evento getOptions de um campo, ele passa a ser comportar como um campo do tipo "combo", independentemente do tipo de dado informado na construção do campo.

Este evento deve ser configurado apenas se as opções não forem informadas diretamente por meio da propriedade #options do campo.

Type: module:@nginstack/engine/lib/classdef/FieldOptionsEvent~FieldOptionsEvent
Inherited From:
See:
Example
field.on('getOptions', function (evt) {
   evt.options = [['Opção A', 1], ['Opção B', 2]];
 });

getTreeIconEvent

Evento emitido na apresentação de uma grade em árvore para obter o ícone de um nó.
Emitido apenas quando o field é do tipo "tree". O sender do evento é o nó corrente da árvore. Deve retornar o identificador de um dos ícones da biblioteca de ícones do Web Framework.

Type: module:@nginstack/web-framework/lib/classdef/GetTreeIconEvent~GetTreeIconEvent| module:@nginstack/web-framework/lib/classdef/GridFieldEvent~GridFieldEvent
Inherited From:
Example
field.on('getTreeIcon', function (evt) {
   if (!evt.node.level) {
     evt.icon = 'robot';
   }
 });

lookupAddResult

Evento emitido durante a pesquisa de um campo lookup, permitindo que o desenvolvedor filtre as opções possíveis de serem informadas neste campo. Deve ser retornado um booleano para indicar se o registro indicado por LookupAddResultEvent#key pode ser utilizado como valor deste campo.

Type: module:@nginstack/engine/lib/classdef/FieldEvent~FieldEvent
Inherited From:
See:
Example
field.on('lookupAddResult', function (evt) {
   return !evt.data.uf || evt.key.uf === evt.data.uf;
 })

lookupDisplay

Evento emitido quando o sistema precisa obter o valor de exibição de uma chave desta classe de dados. Os listeners registrados deverão preencher a propriedade LookupDisplayEvent#displayValue do evento emitido para informar o valor de exibição da chave indicada por LookupDisplayEvent#key.

Type: module:@nginstack/engine/lib/classdef/LookupDisplayEvent~LookupDisplayEvent
Inherited From:
See:
Example
this.on('lookupDisplay', function (evt) {
   evt.displayValue = DBKey.str(evt.key, 'NOME');
 });

lookupMultipleInsert

Evento emitido quando ocorrer uma inserção múltipla de registros a partir da grade Lookup.

A inserção múltipla de registros fica habilitada na grade Lookup por meio do botão 'Inserir como Novos' quando a propriedade 'allowMultipleInsert' do campo é definida como true.

O comportamento padrão é inserir automaticamente múltiplos registros de acordo com a seleção que ocorreu na grade Lookup, no entanto esse comportamento pode ser alterado por este evento.

Type: module:@nginstack/web-framework/lib/classdef/LookupMultipleInsertEvent~LookupMultipleInsertEvent| module:@nginstack/web-framework/lib/classdef/GridFieldEvent~GridFieldEvent
Inherited From:
Example
// O exemplo abaixo, mostra a possibilidade de estender esse comportamento
 // herdando ou não o procedimento padrão.
 var field = grid.field('CAMPO', 'int64');
 field.classKey = -1898187808; // Tipos de Arquivo
 field.allowMultipleInsert = true;
 field.replaceListeners('lookupMultipleInsert', function (evt, emitReplaced) {
   emitReplaced(evt); // herda o comportamento padrão (opcional)
   var grid = evt.field.parent;
   for (var i = 0; i < evt.lookupGrid.selectedRecords.length; ++i) {
     evt.lookupGrid.ds.bookmark = evt.lookupGrid.selectedRecords[i];
     grid.ds.append();
     grid.ds.campo = evt.lookupGrid.ds.ikey;
     grid.ds.obs = 'Registro inserido manualmente';
     grid.ds.post();
   }
 });

openKey

Evento emitido quando o usuário deseja abrir detalhes sobre um registro de um campo lookup ou deseja uma interface mais rica para auxiliar o seu preenchimento.

Type: module:@nginstack/web-framework/lib/classdef/OpenKeyEvent~OpenKeyEvent| module:@nginstack/web-framework/lib/classdef/GridFieldEvent~GridFieldEvent
Inherited From:
Example
field.on('openKey', function (evt) {
   var parameters = [
     'baseClass', evt.classKey,
     'keysToOpen', evt.value,
     'fromOpenKey', true,
     'lookupType', evt.lookupType
   ];
   if (evt.target instanceof Field) {
     parameters.push(
       'targetProcessId', evt.process.id,
       'targetTabId', evt.process.currentTabId,
       'targetGridName', evt.target.parent.name,
       'targetFieldName', evt.target.name
     );
   }
   evt.process.setNextInteraction('main', parameters, -1898145512, true); // Explorador de registros.ip
 });

validate

Evento emitido antes de efetivar uma modificação com o objetivo de validar o preenchimento do campo.

Diferentemente dos eventos beforeChange e afterChange, esse evento não deve fazer uso de componentes de interface, pois ele tem o objetivo exclusivo de realizar validações de modelo de dados e pode ser chamado em contextos sem interação com o usuário, como APIs HTTP.

Type: module:@nginstack/engine/lib/classdef/FieldEvent~FieldEvent
Inherited From:
See:
Example
grid.field('field_name').on('validate', function (evt) {
   if (evt.data.field_name < 0) {
     throw new Error('O valor deve ser positivo.');
   }
 });