Ext JS 4.1.1 - 摘要网格 - 如何使用摘要行中的其他值计算摘要列

时间:2014-08-15 15:42:21

标签: extjs extjs4.1

我有一个汇总网格,它对两个基本数字列的值进行求和,但我希望摘要行中的下一列显示包含前两列中总和值的计算。具体来说,我想要一个百分比变化摘要,它反映了前两列总和之间的变化。

这是我的网格片段,上面有三列我在谈论:

    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

可以这样做吗?如果是这样,我该如何实现呢?

提前感谢您的任何反馈!

1 个答案:

答案 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() + '%';
}