Class: DataSetTransformer

@nginstack/engine/lib/dataset/DataSetTransformer~ DataSetTransformer


new DataSetTransformer()

Classe auxiliar utilizada para realizar transformações nos dados do DataSet.

Members


<static> PIVOT_NULL_VALUE_LABEL :string

Nome utilizado na coluna gerada pelo pivot para os registros que não possuem valor na coluna pivoteada.

Type:
  • string

<static> PIVOT_TOTAL_LABEL :string

Nome utilizado na coluna total gerado pelo pivot, quando a opção totalizePivot é habilitada.

Type:
  • string

Methods


aggregate(ds, groupColumns, aggregateColumns)

Agrega colunas de um dataSet e retorna o DataSet agregado, sem alterar o DataSet original.

Parameters:
Name Type Description
ds DataSet

DataSet original que será usado para gerar o DataSet agregado.

groupColumns Array

Vetor com os nomes dos campo que serão usado para agregar os resultados da funções de agregação.

aggregateColumns Object

Objeto com as propriedades 'functions' e 'distinct' (optional).
A propriedade 'functions' é um objeto que deve possuir as propriedades 'sum', 'count', 'min', 'max' e 'avg'. Cada uma destas propriedades, por sua vez, deve ser um Array de nomes de campos que sofrerão agregação.
A propriedade 'distinct' deve possuir as propriedades 'columns' e 'ignoredColumns', que devem, por sua vez, serem Arrays de nomes de campos do dataset 'ds'. A propriedade 'distinct' é opcional. O Array 'columns' deve conter nomes de campos a serem agregados considerando apenas resultados distintos. O Array 'ignoredColumns' deve conter nomes de campos que serão ignorados durante a avaliação de distinção entre os registros.

Returns:

DataSet agregado.

Type
DataSet
Example
var dst = new DataSetTransformer();

var ds = new DataSet();
ds.createField('NOME', 'string', 10);
ds.createField('TAMANHO', 'number');
ds.create();

ds.append();
ds.nome = 'X';
ds.tamanho = 10;
ds.post();

ds.append();
ds.nome = 'Y';
ds.tamanho = 20;
ds.post();

ds.append();
ds.nome = 'Z';
ds.tamanho = 5;
ds.post();

ds.append();
ds.nome = 'X';
ds.tamanho = 15;
ds.post();

ds.append();
ds.nome = 'Y';
ds.tamanho = 15;
ds.post();

ds.append();
ds.nome = 'Z';
ds.tamanho = 1;
ds.post();

dst.aggregate(ds, ['NOME'], {functions: {avg: ['TAMANHO']}});

calculate(ds, exprs [, hiddenFields])

Cria uma coluna calculada no DataSet. O cálculo é realizado com base da expressão especificada em expr.

Parameters:
Name Type Argument Description
ds DataSet

DataSet que contém os campos de parâmetros para o cálculo dos campos calculados.

exprs Array

Vetor com a expressão de cada campo calculado.

hiddenFields Array <optional>

Array com a lista de campos que deve ser ocultados no DataSet de resultado.

Returns:

DataSet com os campos calculados.

Type
DataSet

pivot(ds, pivotFieldName, totalFieldsNames [, options])

Executa a operação de pivot no DataSet e retorna as informações da operação de pivot, dentre elas os dados pivoteados. Ex.: Dado o DataSet

anoestabelecimentomesvalorqtde
2003Estab 01Fevereiro105
2003Estab 01Janeiro2020
2003Estab 02Fevereiro14
2003Estab 03Março2010
2003Estab 01Fevereiro3020
2003Estab 01Abril3020
2004Estab 02Janeiro4030
2004Estab 03Fevereiro5010
2004Estab 01Março604
2004Estab 02Abril7020
2005Estab 03Janeiro8030
2005Estab 03Janeiro2020
2005Estab 03Janeiro2020

Ao executar:
var dst = new DataSetTransformer()
var pivotInfo = dst.pivot(ds, 'mes', ['valor', 'qtde'])
pivotInfo.pivotDS

será retornado:

anoestabelecimentovalor_mes_Abrilqtde_mes_Abril valor_mes_Fevereiroqtde_mes_Fevereirovalor_mes_Janeiro qtde_mes_Janeiro valor_mes_Marçoqtde_mes_Marçovalor_mes_totalqtde_mes_total
2003302040252020 9065
200314 1 4
20032010 20 10
2004604 60 4
200470204030 110 50
20045010 50 10
200512070 120 70

Parameters:
Name Type Argument Description
ds DataSet

DataSet que será usando na operação de geração do DataSet pivoteado.

pivotFieldName String

Nome do campo pivot.

totalFieldsNames String | Array

Lista de nomes de campos totalizadores. A lista pode ser uma string com os nomes dos campos separados por ;(ponto-e-vírgula) ou um Array com os nomes

options Object <optional>

Opções da operação de pivot.

Properties
Name Type Argument Description
noGroupingColumns Array.<string> <optional>

Vetor com os nomes da colunas que não devem ser incluídas na expressão de agrupamento de colunas da operação de pivot.

totalizePivot boolean <optional>

Valor booleano que se for true, a operação de pivot irá criar um coluna adicional com o total pivoteado.

defaultNumeric number <optional>

Informa o valor que será exibido em colunas pivoteadas numéricas que não tenham dados a serem agregados. Caso não seja informado, será considerado null.

defaultDate number <optional>

Informa o valor que será exibido em colunas pivoteadas do tipo data que não tenham dados a serem agregados. Caso não seja informado, será considerado null.

defaultString number <optional>

Informa o valor que será exibido em colunas pivoteadas textuais que não tenham dados a serem agregados. Caso não seja informado, será considerado null.

pivotFormatter function

Função opcional que formatará o valor da coluna pivoteada. A função receberá o valor da coluna pivot e deverá retornar uma string com o valor que deve ser exibido. Caso não seja informada, apenas as colunas pivot do tipo data por padrão serão formatadas no padrão DD/MM/YYYY.

Returns:

Objeto literal com as informações geradas pela operação de pivot.

Type
PivotResult