extjs grid的小计和共计的算法
extjs grid的小计和合计的算法
如果需要将查询出来的数据在前台进行小计和合计的运算的话,可以通过以下的方式来处理:
/**
store:grid的store
actscore:表示要合计的字段
query( String field
, String/RegExp value
, [Boolean anyMatch
], [Boolean caseSensitive
] ) : //根据正则式来匹配查询,得到集合结果
sum( String property
, [Number start
], [Number end
] ) : Number //将集合内的数据的某个字段值累加
**/
store.getAt(0).set("actscore",store.sum("actscore"));//将第一行的合计值算出后,赋值
for(var i=1;i<store.getCount();i++){
var r = store.getAt(i);
if(r.data.left!='1'){//如果不是叶子节点
var l = store.query("prjcode",new RegExp(r.data.prjcode)).length;//根据上下级的关系字段来匹配本级和下级
r.set("actscore",store.sum("actscore",i,i+(l-1)));
}
}