Como utilizar a propriedade aggregate do Field
Essa propriedade serve para agregar campos que tenham um campo correspondente no DataSet.
A documentação encontra-se em: Documentação da propriedade Aggregate
Ela permite o uso de funções de:
Soma
Média
Máximo
Mínimo
Quantidade
O exemplo abaixo irá mostrar como realizamos cada totalização nos campos, é simples:
this.interaction("main", function () {
this.ds = new DataSet();
this.ds.createField('soma','number');
this.ds.createField('media','number');
this.ds.createField('maximo','number');
this.ds.createField('minimo','number');
this.ds.createField('quantidade','number');
this.ds.create();
this.ds.append([1,1,1,1,1]);
this.ds.append([2,2,2,2,2]);
this.ds.append([3,3,3,3,3]);
this.ds.append([0,0,0,0,0]);
this.ds.append([0,0,0,0,0]);
this.ds.append([0,0,0,0,0]);
// 6,1,3,0,6
this.ds.post();
var gr = this.grid("Agregacao", this.ds);
gr.onDefineFields.set(function (grid) {
var fld = grid.field("soma", "number");
fld.label = "Soma";
fld.aggregate = new SumDataSetAggregate();
var fld = grid.field("media", "number");
fld.aggregate = new AvgDataSetAggregate();
fld.label = "Média";
var fld = grid.field("maximo", "number");
fld.label = "Máximo";
fld.aggregate = new MaxDataSetAggregate();
var fld = grid.field("minimo", "number");
fld.label = "Mínimo";
fld.aggregate = new MinDataSetAggregate();
var fld = grid.field("quantidade", "number");
fld.label = "Quantidade";
fld.aggregate = new CountDataSetAggregate();
});
gr.write();
});
Interaction principal.
Criação do DataSet.
Adição de registros no DataSet.
Definição da Grade.
Definição dos fields e agregações de cada um.
Escrita da Grade
Ao executarmos esse código, obteremos esse resultado: