日期:2014-05-16  浏览次数:20422 次

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)));
?????}
?????
????}