Classe que define os aggregadores de campos do dataset. A classe DataSetAggregate deve se usada para criação de classes filhas, onde estas devem implementar o cálculo do aggregate. O Sistema disponibiliza as seguintes classes padrões de aggregates: SumDataSetAggregate, AvgDataSetAggregate, MaxDataSetAggregate, MinDataSetAggregate, CountDataSetAggregate.
Abaixo segue exemplo de como criar uma classe filha de DataSetAggregate.
/**
* Classe WeightedAvgDataSetAggregate - calcula a média ponderada
*/
function WeightedAvgDataSetAggregate( weightFieldName, fieldName, dataSet) {
DataSetAggregate.call( this, fieldName, dataSet )
this.weightFieldName = weightFieldName
}
WeightedAvgDataSetAggregate.prototype = new DataSetAggregate()
WeightedAvgDataSetAggregate.prototype.getValue = function () {
if ( this.lastDataSetVersion != this.dataSet.dataSetVersion ) {
var weightSum = 0
var value = 0
// realiza média ponderada
for ( ds.first(); !ds.eof; ds.next() ){
weightSum += ds[ this.weightFieldName]
value += ds[ this.weightFieldName] * ds[ this.fieldName]
}
this.fValue = ( value / weightSum )
this.lastValue = this.fValue
this.lastDataSetVersion = this.dataSet.dataSetVersion
}
return this.fValue
}