Class: DataSetFieldDefs

@nginstack/engine/lib/dataset/DataSet~ DataSetFieldDefs


new DataSetFieldDefs()

Coleção de definições de campos, acessível pela propriedade fieldDefs de um DataSet.

Members


size :number

Quantidade de campos definidos.

Type:
  • number

Methods


add(defOrName [, type] [, size])

Adiciona um novo campo a um DataSet.

Pode ser informado um objeto de definição DataSetFieldDef, um array deles ou o nome, tipo e tamanho do novo campo.

É possível adicionar novos campos após um DataSet ter sido aberto desde que este não pertença ao cache local. O método reload deve ser chamados no clone deste DataSet para que eles tenham a sua estrutura atualizada.

Este método tem as seguintes diferenças em relação ao createField:

  • São aceitos apenas os tipos indicados em DataSetDataType. Identificadores obsoletos como 'numeric', 'integer' e 'char' não são aceitos.
  • Tipos inteiros devem definir o seu tamanho, podendo ser 'int32' ou 'int64'. Para armazenar chaves, sempre deve ser utilizado 'int64'.
  • Campos do tipo 'date' não armazenam a componente de hora.
Parameters:
Name Type Argument Description
defOrName DataSetFieldDef | Array.<DataSetFieldDef> | string

Objeto com a definição do campo ou o nome dele.

type DataSetDataType <optional>

Tipo do campo. Deve ser informado apenas se o primeiro parâmetro for o nome de um campo.

size number <optional>

Tamanho do campo. Deve ser informado apenas se o primeiro parâmetro for o nome de um campo e o campo for do tipo string.

See:
Examples
ds.fieldDefs.add({ name: 'iKey', type: 'int64' });
ds.fieldDefs.add([
  { name: 'iKey', type: 'int64' },
  { name: 'iCode', type: 'string', size: 50 },
]);
ds.fieldDefs.add('iKey', 'int64');

assign(fieldDefs)

Torna as definições de campos de um DataSet iguais às informadas, removendo qualquer definição existente.

Parameters:
Name Type Description
fieldDefs DataSetFieldDefs

Definições que serão copiadas neste DataSet.


clear()

Remove todos os campos definidos em um DataSet.

Este método somente poderá ser utilizado em um DataSet fechado.


delete(id)

Remove a definição de um campo a partir do seu nome ou índice.

Parameters:
Name Type Description
id string | number

Nome ou índice do campo a ser removido.

Returns:

True se o campo existir e tiver sido removido.

Type
boolean

get(id)

Obtém a definição de um campo do DataSet.

Parameters:
Name Type Description
id string | number

Nome ou índice do campo a ser modificado.

See:
Returns:

Propriedades do campo.

Type
DataSetFieldDef
Example
ds.fieldDefs.add('iCode', 'string', 150);
ds.fieldDefs.get('iCode'); // => { name: 'iCode', type: 'string', size: 150 }

has(name)

Determina se um campo com o nome informado existe no DataSet.

Parameters:
Name Type Description
name string

Nome do campo a ser pesquisado.

Returns:

True se o campo existir.

Type
boolean

set(id, def)

Altera a definição de um campo do DataSet.

Essa operação somente pode ser realizada em um dataSet fechado.

Parameters:
Name Type Description
id string | number

Nome ou índice do campo a ser modificado.

def DataSetFieldDef

Propriedades que serão atualizadas. As propriedades não informadas serão preservadas e o nome do campo não pode ser modificado por este método.

See:
Example
ds.fieldDefs.set('iCode', { size: 150 });

toArray()

Cria um array contendo todas as definições de campos do DataSet.

See:
Returns:

Array com as definições dos campos.

Type
Array.<DataSetFieldDef>
Example
ds.fieldDefs.add([
  { name: 'iKey', type: 'int64' },
  { name: 'iCode', type: 'string', size: 50 },
]);
ds.fieldDefs.toArray();
// => [{ name: 'iKey', type: 'int64', size: 0 }, { name: 'iCode', type: 'string', size: 50 }]