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 module:@nginstack/engine/lib/dataset/DataSet~DataSetFieldDef| Array.<module:@nginstack/engine/lib/dataset/DataSet~DataSetFieldDef>| string

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

type module:@nginstack/engine/lib/dataset/DataSetDataType~DataSetFieldType <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 module:@nginstack/engine/lib/dataset/DataSet~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
module:@nginstack/engine/lib/dataset/DataSet~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 module:@nginstack/engine/lib/dataset/DataSet~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.<module:@nginstack/engine/lib/dataset/DataSet~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 }]