首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jqPivot忽略colTotals页脚中的组/行值

jqPivot忽略colTotals页脚中的组/行值
EN

Stack Overflow用户
提问于 2015-04-22 09:59:19
回答 1查看 581关注 0票数 1

下面是创建的示例-数据透视表JSFiddle示例:这里

下面是我使用的网格选项:

代码语言:javascript
复制
{
    cmTemplate: { autoResizable: true },
    autoResizing: { compact: true },
    width: "600",
    height: "auto",
    rowNum: 10,
    iconSet: "fontAwesome",
    pager: true,
    caption: "Employee YTD Summary",
    groupingView: {
        groupColumnShow: [false],
        groupDataSorted: true,
        groupOrder: ["desc"]
    },
    onInitGrid: function () {
        var p = $(this).jqGrid("getGridParam"),
            userdata = p.datastr.userdata;
        p.data = $.grep(p.datastr, function (item) {
            return item.ComponentType !== "";
        });
        p.userData = userdata;
        p.datatype = "local";
    },
    footerrow: true
}

在从colTotals摘要中添加时忽略特定行的/组时需要帮助

这是我从上面的例子中得到的网格的一部分。

在此图像colTotals部分的页脚显示所有列的和,在这里,我无法排除BenefitAD组的求和。

colTotals期望值

不应在底部的汇总栏(红色标记)中将工作日、LOP、福利行相加(因为它们不是必需的)。

如何忽略ADBenefit值在colTotals summary of jqGrid中的完整组。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-22 11:04:40

看起来,您希望对总汇总行中的值进行自定义计算。例如,可以在colTotals: true参数中删除参数。它只对所有元素之和进行标准计算。不是这样,您可以添加userDataOnFooter: true选项,计算onInitGrid内部的自定义摘要,并将结果放在userdata中。代码可以如下所示

代码语言:javascript
复制
userDataOnFooter: true,
onInitGrid: function () {
    var p = $(this).jqGrid("getGridParam"), userdata = {}, colModel = p.colModel,
        iColByName = p.iColByName;
    p.datastr = $.grep(p.datastr, function (item) {
        var notToIgnore = item.ComponentType !== "", prop;
        if (notToIgnore) {
            for (prop in item) {
                if (item.hasOwnProperty(prop) &&
                        iColByName[prop] != null &&
                        colModel[iColByName[prop]].summaryType === "sum" &&
                        // !is the custom criteria to skip some items!
                        $.inArray(item.ComponentType, ["AD", "Benefit"]) < 0) {
                    userdata[prop] = (userdata[prop] || 0) + parseFloat(item[prop]);
                }
            }
        }
        return notToIgnore;
    });
   p.datastr.userdata = userdata;
}

您可以看到修改后的数据上的结果:https://jsfiddle.net/OlegKi/bkqce0s0/14/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29794040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档