ExtJS 6.2 根据摘要行对网格面板分组进行排序

ExtJS 6.2 Sort grid Panel groupings based on summary row

我花了好几个小时来弄清楚如何做到这一点。基本上我想做的是基于一列对数据进行分组,为该分组创建一个摘要,然后根据摘要对组进行排序。

使用他们的一个厨房水槽示例,我希望能够按汇总价值率对这些组进行排序。

http://examples.sencha.com/extjs/6.0.0/examples/classic/grid/group-summary-grid.html

这可以使用 groupersorterFn 来完成。 sorterFn 应该比较您作为排序依据的汇总值。对于您提到的厨房水槽示例,如果您想按 estimate 列的总和排序,同时按 project 列分组,石斑鱼会看起来像:

groupers: [{
    property: 'project',
    sorterFn: function(a,b) {

        var suma=0; store.each(function (rec) { suma += rec.data.project === a.data.project ? rec.data.estimate:0; });
        var sumb=0; store.each(function (rec) { sumb += rec.data.project === b.data.project ? rec.data.estimate:0; });

        if (suma > sumb) return 1;
        if (suma < sumb) return -1;
        return 0;
        }
}]

可以使用石斑鱼:

store.group(store.groupers[0]);

参见fiddle:https://fiddle.sencha.com/#fiddle/1im3