我有一个汇总网格,它对两个基本数字列的值进行求和,但我希望摘要行中的下一列显示包含前两列中总和值的计算。具体来说,我想要一个百分比变化摘要,它反映了前两列总和之间的变化。
这是我的网格片段,上面有三列我在谈论:
xtype: 'numbercolumn',
dataIndex: 'lastYearWages',
text: 'LY Reg Wages',
renderer: function(val, meta) {
return '$' + Ext.util.Format.number(val, '0,000');
},
summaryRenderer: function(val, params, data) {
return '$' + Ext.util.Format.number(val, '0,000');
},
summaryType: 'sum'
}, {
xtype: 'numbercolumn',
dataIndex: 'thisYearWages',
text: 'TY Reg Wages',
renderer: function(val, meta) {
return '$' + Ext.util.Format.number(val, '0,000');
},
summaryRenderer: function(val, params, data) {
return '$' + Ext.util.Format.number(val, '0,000');
},
summaryType: 'sum'
}, {
xtype: 'numbercolumn',
dataIndex: 'pctChg',
text: '%Chg',
renderer: function(val, meta) {
meta.style = val < 0 ? "color: #FF0000;" : "color: #000000;";
return Ext.util.Format.number(val, '0,000.00');
},
summaryRenderer: function(val, params, data) {
???
},
summaryType: ??
.
.
.
所以我真正想要的是显示结果的第三列: (SumOfThisYearWages - SumOfLastYearWages)/ SumOfLastYearWages
可以这样做吗?如果是这样,我该如何实现呢?
提前感谢您的任何反馈!
答案 0 :(得分:3)
在Sencha论坛上得到答案......
解释是摘要行包含对整个商店的访问权限,所以我可以总结我想要的商店。
这就是诀窍:
summaryRenderer: function(val, params, data) {
var lyRegWages = Ext.ComponentQuery.query('#grid')[0].getStore().sum('lastYearWages');
var tyRegWages = Ext.ComponentQuery.query('#grid')[0].getStore().sum('thisYearWages');
var percentage = (((tyRegWages-lyRegWages)/lyRegWages)*100).toFixed(2);
return percentage.toString() + '%';
}