在agGrid中,我有一个基于两列的聚合。当我应用过滤器时,基于两列的聚合不会更新。 sum,max,min集合函数没有问题,因为所有这些函数均基于同一列。
这是我遵循的步骤, 按列分组->值汇总->加权平均(自定义汇总)->添加过滤器。
在加权平均值聚合计算之后添加过滤器时,不会刷新新的加权平均值。
我使用valueGetter函数计算了此总计(如下面的代码所示)。
当我修改过滤器时,是否有一种方法可以更新来自valueGetter函数的聚合?
谢谢。
关于, 维杰。
function weightedAverageGetter(params) {
var col = params.column.colId.split('.')[1];
var value = 0;
if (params.data){
value = params.data.qli?params.data.qli[col]:0;
if (col == 'P1prime__c' || col == 'P2Prime__c'){
value = Math.ceil(value);
}
}
var avgW = 0;
if (params.node){
var sumVal = 0;
var sumQty = 0;
for (var node in params.node.allLeafChildren){
var nodeValue = params.node.allLeafChildren[node];
var val = 0;
var qty = 0;
if (nodeValue.data){
val = nodeValue.data.qli?nodeValue.data.qli[col]:0;
qty = nodeValue.data.qli?parseFloat(nodeValue.data.qli.Quantity):0;
}
if (typeof val !=='undefined' && val != '' && typeof qty !=='undefined' && qty != '') {
sumQty += qty;
sumVal += qty*val;
}
}
avgW = sumVal/sumQty;
}
avgW = Math.round(avgW * 100) / 100;
if(!params.column.aggregationActive || Number.isNaN(avgW)){
avgW = '';
}
return params.data?value:avgW;
}