Class Index | File Index

Classes


Class ngin.classdef.Field


Extends ngin.event.Emitter.

Defined in: field.js.

Class Summary
Constructor Attributes Constructor Name and Description
 
ngin.classdef.Field(name, type, opt_size)
Classe Field Utilizada para criar campos, determinar seus tipos e setar seus valores.
Field Summary
Field Attributes Field Name and Description
 
Determina se o campo excluirá automaticamente os espaços encontrados no início e no fim do valor atribuído a ele.
 
Indica como será tratado o texto digitado no campo com relação à caixa das letras (Maiúsculas/minúsculas).
 
Define que o campo será um lookup para a classe informada.
 
Ajuda para o dicionário de dados, quando se aplicar.
 
Tamanho do dado utilizado para armazenar este campo no banco de dados.
 
Tipo do dado utilizado para armazenar este campo no banco de dados.
 
Formato de exibição de campos do tipo "date".
 
Indica quais restrições devem ser configuradas no banco de dados para este campo.
 
Determina a quantidade de casas decimais que devem ser exibidas quando o campo for do tipo "number".
 
Sugestão de preenchimento do campo.
 
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.
 
Filtro que será aplicado ao DataSet da grade detalhe.
 
Formato de exibição dos tipos "date", "longitude", "latitude", "angle".
 
Nome ou instância da classe FieldGroup, que irá ser utilizado para agrupar visualmente os campos na grade.
 
Ajuda para o campo a ser utilizada pelas interfaces.
 
Eventos que são herdados da classe de dados definida por #classKey e #lookupType.
 
Determina se a exclusão de um registro na tabela associada à propriedade classKey deve checar neste campo se existe referência à chave excluída.
 
API desaconselhada, equivalente a definir LookupType.CLASS na propriedade lookupType.
 
Informa se este campo possui uma representação no banco de dados.
 
Informa se este campo possui uma representação no banco de dados.
 
 
Título atribuído ao campo.
 
Define o tipo de "lookup" do campo.
 
Nome do campo em caixa baixa.
 
Para campos do tipo "masterDetail", indica como os registros detalhes devem ser tratados quando ocorrer a exclusão do registro mestre.
 
Lista de campos da grade mãe que devem ser utilizados para pesquisar nos campos detailFieldNames da grade detalhe, criando um relacionamento masterDetail.
 
max
Valor máximo permitido de digitação no campo.
 
Determina a quantidade máxima de casas decimais que devem ser exibidas quando o campo for do tipo "number".
 
min
Valor mínimo permitido de digitação no campo.
 
Determina a quantidade mínima de casas decimais que devem ser exibidas quando o campo for do tipo "number".
 
Determina, para campos de texto ("string" e "memo") com lookup ou combo, se o campo aceita valores múltiplos.
 
Nome único que identifica o campo na base de dados.
 
Corresponde ao evento que será executado após ser alterado o valor do campo.
 
Evento emitido após o filtro dos resultados de uma pesquisa de um campo lookup.
 
Evento que será emitido antes de um campo ser alterado.
 
Evento emitido antes do filtro dos resultados de uma pesquisa de um campo lookup.
 
Evento emitido quando for necessário obter as opções de um campo do tipo "combo".
 
Evento emitido durante a pesquisa de um campo lookup, permitindo que o desenvolvedor filtre as opções possíveis de serem informadas neste campo.
 
Evento emitido quando o sistema precisa obter o valor de exibição de uma chave desta classe de dados.
 
Corresponde ao evento que será executado para validar o conteúdo informado para o campo.
 
Lista que contém as opções de um campo do tipo "combo".
 
Ordem na qual o campo deverá ser exibido.
 
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.
 
Indica se o campo representa início ou fim de um intervalo, atualmente rangeLimit só é suportado para campos do tipo data.
 
Determina quando o campo deve ser somente para leitura.
 
Indica se o campo é de preenchimento obrigatório.
 
Tamanho do campo em caracteres.
 
Texto que representará o campo do tipo "boolean" quando o mesmo estiver marcado ("true").
 
Tipo do campo.
 
Conjunto com os tipos de campos que não permitem o caracter "_" no nome do campo.
 
Nome do campo em caixa alta.
 
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).
Fields borrowed from class ngin.event.Emitter:
duplicationHandling, listenerCompareFunction
Method Summary
Method Attributes Method Name and Description
 
adaptEvent_(name, descriptor)
Cria um adaptador da API de eventos antiga (classe global Event) com a nova API ngin.event.Emitter.
 
assign(field)
Copia as propriedades de um campo informado.
 
Copia as propriedades que são objetos para um campo
 
assignTo(field)
Copia as propriedades de um campo para outro.
 
changeFieldType_(type, fieldName)
Altera o tipo do campo para o valor informado.
 
Verifica se o campo possui opções e dispara o evento que as obtém, conforme necessário.
 
clone(NewClass)
Cria uma cópia do campo.
 
init_(name, type, opt_size)
Evento chamado pelo construtor para realizar a configuração inicial do campo.
 
Indica se o campo é do tipo boolean.
 
Indica se o campo é um combo.
 
Indica se o campo é do tipo date.
 
Indica se o conteúdo do campo são arquivos armazenados na VFS.
 
Indica se o campo é do tipo integer.
 
Indica se o campo é do tipo masterdetail.
 
Indica se o campo é do tipo memo.
 
Indica se o campo é do tipo number.
 
Indica se o campo armazena uma senha.
 
Indica se o campo é do tipo string.
 
Garante que a propriedade #classDef foi carregada com a definição da classe indicada por #classKey e #lookupType.
 
Registra os tipos de eventos suportados e os eventos padrão.
 
Valida o valor informado para um campo.
Methods borrowed from class ngin.event.Emitter:
addListenersFromEmitter, assignListeners, emit, filterListeners, hasListeners, listenerHandlers, listeners, off, offAll, on, registerEventType, replaceListeners, unregisterEventType
Class Detail
ngin.classdef.Field(name, type, opt_size)
Classe Field Utilizada para criar campos, determinar seus tipos e setar seus valores.
utilizada tanto no x-class como na grade.
Parameters:
{string} name
Nome único que identificará o campo.
{string} type
Tipo do campo, observe a propriedade #type para mais detalhes .
{number=} opt_size
Tamanho do campo, requerido apenas para campos do tipo "string" e "password".
Field Detail
autoTrim
Determina se o campo excluirá automaticamente os espaços encontrados no início e no fim do valor atribuído a ele.

caseType
Indica como será tratado o texto digitado no campo com relação à caixa das letras (Maiúsculas/minúsculas).
Válido para campos do tipo "string" ou "memo".
Verifique abaixo os valores possíveis e como será tratado o texto:
VALOR     - TRATAMENTO:

"upper": O texto digitado no campo será convertido para letras maiúsculas;
"lower": O texto digitado no campo será convertido para letras minúsculas;
"mixed": A primeira letra de cada palavra do texto digitado no campo será
 convertida para letra maiúscula;
"statement": Somente a primeira letra do texto digitado será convertida para
 letra maiúscula;

{Number} classKey
Define que o campo será um lookup para a classe informada.
- Se o campo for do tipo "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.
See:
#lookupType

{Object} dataDictionary
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.
See:
#help

dataSize
Tamanho do dado utilizado para armazenar este campo no banco de dados. 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 dataSize 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 dataSize igual a null.

dataType
Tipo do dado 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 dataType '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 dataType igual a null.

dateFormat
Formato de exibição de campos do tipo "date". Valores possíveis:
 - ngin.date.Formats.DDMMYYYY: dia/mês/ano(4 dígitos)
- ngin.date.Formats.DDMMYY: dia/mês/ano(2 dígitos)
- ngin.date.Formats.MMYYYY: mês/ano(4 dígitos)
- ngin.date.Formats.WWYYYY: semana/ano(4 dígitos)
Deprecated:
Utilize a propriedade displayFormat.

{String} dbConstraints
Indica quais restrições devem ser configuradas no banco de dados para este campo. A validação das restrições será feita apenas pelo banco de dados, portanto, serão executadas no momento da gravação do registro. No exemplo, o campo não poderá ser null:
fld.dbConstraints = "NOT NULL"

{Number} decimalPrecision
Determina a quantidade de casas decimais que devem ser exibidas quando o campo for do tipo "number".
Default Value:
2

defaultValue
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.
See:
Field#saveInputAsDefault

detailFieldNames
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".

detailFilter
Filtro que será aplicado ao DataSet da grade detalhe.
Recurso disponível apenas para campos do tipo "grid" e "masterdetail".

displayFormat
Formato de exibição dos tipos "date", "longitude", "latitude", "angle". Valores possíveis:
- ngin.date.Formats.DDMMYYYY: dia/mês/ano(4 dígitos)
- ngin.date.Formats.DDMMYY: dia/mês/ano(2 dígitos)
- ngin.date.Formats.MMYYYY: mês/ano(4 dígitos)
- ngin.date.Formats.WWYYYY: semana/ano(4 dígitos)
- ngin.geo.LatitudeFormats.DDD_DDDDD: graus decimais°
- ngin.geo.LatitudeFormats.DDD_MM_MMM_DIR: graus° minutos' {N|S}
- ngin.geo.LatitudeFormats.DDD_MM_SS_S_DIR: graus° minutos' segundos" {N|S}
- ngin.geo.LongitudeFormats.DDD_DDDDD: graus°
- ngin.geo.LongitudeFormats.DDD_MM_MMM_DIR: graus° minutos' {E|W}
- ngin.geo.LongitudeFormats.DDD_MM_SS_S_DIR: graus° minutos' segundos" {E|W}
- ngin.geo.AngleFormats.DDD: graus°
- ngin.geo.AngleFormats.DDD_DD: graus decimais°

{ngin.classdef.FieldGroup} group
Nome ou instância da classe FieldGroup, que irá 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).
See:
Field#order

{String} help
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.
var fld = grid.field("ajuda", number)
fld.help = "isto é uma ajuda e tanto"
See:
#dataDictionary

inheritedClassDefEvents_
Eventos que são herdados da classe de dados definida por #classKey e #lookupType. Classes filhas devem ser substituir esse array.

{Boolean} integrityCheck
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.

{Boolean} isClassLookup
API desaconselhada, equivalente a definir LookupType.CLASS na propriedade lookupType.
See:
#lookupType

isDataBaseField
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.
Deprecated:
Utilize #isDatabaseField.

isDatabaseField
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.

isDatabaseField_

{String} label
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).
Se a propriedade "name" estiver preenchido com "dataInicial", a propriedade "label"
receberá automaticamente: "Data Inicial".
See:
#name

{Number} lookupType
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:
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".
See:
#classKey

lowerName
Nome do campo em caixa baixa.

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: ngin.classdef.MasterDeleteAction.ERROR, ngin.classdef.MasterDeleteAction.DELETE e ngin.classdef.MasterDeleteAction.UNLINK.

masterFieldNames
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".

max
Valor máximo permitido de digitação no campo. Válido para todos os caracteres (letras, número e caracteres especiais).
var gr = this.grid('vars');
gr.title = 'Variáveis';
gr.onDefineFields.set(function(grid) {
   var fld = grid.field('fatorMultiplicacao', '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.'
See:
ngin.classdef.Field#min

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

min
Valor mínimo permitido de digitação no campo. Válido para todos os caracteres (letras, número e caracteres especiais).
var gr = this.grid('vars');
gr.title = 'Variáveis';
gr.onDefineFields.set(function(grid) {
   var fld = grid.field('fatorMultiplicacao', 'integer');
   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.'
See:
ngin.classdef.Field#max

{Number} minDecimalPrecision
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.
Default Value:
2

multiple
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.

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

{Event} onAfterChange
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:
field.onAfterChange.set(function (field, beforeValue) {
   log.write('Valor alterado de ' + beforeValue + ' para ' + field.value);
})
Deprecated:
Utilize on('afterChange', listener).

{Event} onAfterLookupAddResult
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.
 field.onAfterLookupAddResult.set(function (field) {
   var process = field.parent.process;
   // Por exemplo, saldo é um DataSet que foi utilizado dentro do
   // onLookupAddResult
   process.saldo.empty()
 });
Deprecated:
Utilize on('afterLookupAddResult', listener).

{Event} onBeforeChange
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.
 field.onBeforeChange.set(function (field, value) {
   if (value > 10)
     throw new Error('Valor não pode ser maior que 10');
 });
Deprecated:
Utilize on('beforeChange', listener).

{Event} onBeforeLookupAddResult
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.
 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';
 });
Deprecated:
Utilize on('beforeLookupAddResult', listener).

onGetOptions
Evento emitido quando for necessário obter as opções de um campo do tipo "combo". Necessário apenas se as opções não forem informadas diretamente por meio da propriedade options do campo.
Deprecated:
Utilize on('getOptions', listener).

{Event} onLookupAddResult
Evento emitido durante a pesquisa de um campo lookup, permitindo que o desenvolvedor filtre as opções possíveis de serem informadas neste campo.
 field.onLookupAddResult.set(function(field, findResult) {
   return !field.parent.ds.uf || findResult.key.uf == field.parent.ds.uf;
 })
Deprecated:
Utilize on('lookupAddResult', listener).

{Event} onLookupDisplay
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:
field.onLookupDisplay.set(function (field, value) {
   return value.nome + ' - ' + value.uf.codigo
})
Deprecated:
Utilize on('lookupDisplay').

{Event} onValidate
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.
 var f = grid.field('valor', 'integer')
 f.onValidate.set(function (field, ds) {
   if (ds.valor === null) {
     field.setValue(0);
   }
 });
Deprecated:
Utilize on('validate', listener).

{Array} options
Lista que contém as opções de um campo do tipo "combo".
Deve ser informado um array de arrays de 2 itens: - nome da opção;
- valor atribuído à opção;
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."

{Number} order
Ordem na qual o campo deverá ser exibido.

permissionFilterFieldName
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:
connection.getPermission(
   Grid.classKey, 'iInsert', Grid.userKeyToValidatePermissions,
   'withoutInheritance', [ Field.permissionFilterFieldName, Field.value ]
)
See:
ngin.classdef.ModelDef#getExtraFilterFields
ngin.classdef.ModelDef#getExtraFilterExpression

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

readOnly
Determina quando o campo deve ser somente para leitura. Valores possíveis:
- ngin.classdef.ReadOnlyMode.NEVER ou false: o campo pode ser alterado;
- ngin.classdef.ReadOnlyMode.ALWAYS ou true: o campo é somente leitura;
- ngin.classdef.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.
- ngin.classdef.ReadOnlyMode.FILLED: campo é somente leitura apenas se estiver preenchido, impedindo a modificação do primeiro valor informado.

{Boolean} required
Indica se o campo é de preenchimento obrigatório.

{Number} size
Tamanho do campo em caracteres. Utilizado apenas para campos do tipo "string" ou do tipo "password".

{String} stringIfTrue
Texto que representará o campo do tipo "boolean" quando o mesmo estiver marcado ("true").
Default Value:
"T"

{string} type
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 = obtemValoresCampos(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.
"integer" - Tipo utilizado para campos que conterão números inteiros;
"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 256 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;
"time" - Tipo utilizado para campos do 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.

typesThatNotSupportUnderscoreAtName_
Conjunto com os tipos de campos que não permitem o caracter "_" no nome do campo.

upperName
Nome do campo em caixa alta.

{Boolean} userCanChangeNegativeKey
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).
Method Detail
adaptEvent_(name, descriptor)
Cria um adaptador da API de eventos antiga (classe global Event) com a nova API ngin.event.Emitter. Esse adaptador terá os mesmos métodos de Event, mas os eventos registrados por eles serão adicionados como listeners dos eventos da grade por meio método on.
Parameters:
{string} name
Nome do evento.
{ngin.event.AdapterDescriptor|Object} descriptor
Regras de como deve ser feita a adaptação do evento.

assign(field)
Copia as propriedades de um campo informado.
Parameters:
{ngin.classdef.Field} field
Campo de onde as propriedades devem ser copiadas

assignObjectsTo(field)
Copia as propriedades que são objetos para um campo
Parameters:
field
Objeto campo para onde as propriedades devem ser copiadas

assignTo(field)
Copia as propriedades de um campo para outro.
Parameters:
{ngin.classdef.Field} field
Campo para onde as propriedades devem ser copiadas

changeFieldType_(type, fieldName)
Altera o tipo do campo para o valor informado.
Parameters:
{string} type
Tipo do campo.
{string} fieldName
Nome do campo. Não é utilizada a propriedade #name, pois no construtor o tipo precisa ser informado antes do nome do campo. Há validações do nome relacionadas ao tipo do campo.

checkOptions_()
Verifica se o campo possui opções e dispara o evento que as obtém, conforme necessário.

{ngin.classdef.Field} clone(NewClass)
Cria uma cópia do campo.
Parameters:
{Function} NewClass
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.
Returns:
{ngin.classdef.Field} Cópia do campo na classe informada.

init_(name, type, opt_size)
Evento chamado pelo construtor para realizar a configuração inicial do campo.
Ele é necessário para permitir que as definições de campo da visão façam outro tipo de inicialização.
Parameters:
{string} name
Nome único que identificará o campo.
{string} type
Tipo do campo, observe a propriedade #type para mais detalhes .
{number=} opt_size
Tamanho do campo, requerido apenas para campos do tipo "string" e "password".

{boolean} isBoolean()
Indica se o campo é do tipo boolean.
Returns:
{boolean} True se o campo é do tipo boolean, false caso contrário.

{boolean} isCombo()
Indica se o campo é um combo.
Returns:
{boolean} True se o campo é do tipo combo, false caso contrário.

{boolean} isDate()
Indica se o campo é do tipo date.
Returns:
{boolean} True se o campo é do tipo date, false caso contrário.

{boolean} isFile()
Indica se o conteúdo do campo são arquivos armazenados na VFS.
Returns:
{boolean} True se o campo é do tipo file, false caso contrário.

{boolean} isInteger()
Indica se o campo é do tipo integer.
Returns:
{boolean} True se o campo é do tipo integer, false caso contrário.

{boolean} isMasterDetail()
Indica se o campo é do tipo masterdetail.
Returns:
{boolean} True se o campo for do tipo masterdetail.

{boolean} isMemo()
Indica se o campo é do tipo memo.
Returns:
{boolean} True se o campo é do tipo memo, false caso contrário.

{boolean} isNumber()
Indica se o campo é do tipo number.
Returns:
{boolean} True se o campo é do tipo number, false caso contrário.

{boolean} isPassword()
Indica se o campo armazena uma senha.
Returns:
{boolean} True se o campo é do tipo password, false caso contrário.

{boolean} isString()
Indica se o campo é do tipo string.
Returns:
{boolean} True se o campo é do tipo string, false caso contrário.

loadClassDefIfNeeded_()
Garante que a propriedade #classDef foi carregada com a definição da classe indicada por #classKey e #lookupType.

registerEvents_()
Registra os tipos de eventos suportados e os eventos padrão.

validateValue(value)
Valida o valor informado para um campo.
Parameters:
{?*} value
O valor a ser validado. considerado como o índice de um campo do tipo combo.

Documentation generated by JsDoc Toolkit 2.4.0 on Tue Aug 23 2016 16:18:10 GMT-0300 (GFT)