jqPivot忽略colTotals页脚

时间:2015-04-22 09:59:19

标签: jquery jqgrid free-jqgrid jqpivot

以下是创建的示例 - 数据透视表JSFiddle示例:here

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

{
    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摘要

时忽略特定行/组需要帮助

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

colTotalsImage

在此图片的页脚colTotals部分显示所有列的总和,在此处,我无法排除论坛BenefitAD的总和。

colTotals的预期金额 enter image description here

工作日,LOP,福利行不应在底部(红色标记)的汇总列中汇总(因为它们不是必需的)

如何忽略jqGrid的AD中的完整BenefitcolTotals summary值组。

由于

1 个答案:

答案 0 :(得分:1)

您似乎想要对总摘要行中的值进行自定义计算。例如,您可以删除colTotals: true参数。它仅对所有元素的总和进行标准计算。您可以在userDataOnFooter: true内计算自定义摘要,并将结果放在onInitGrid中,而不是添加userdata选项。代码可能如下所示

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" &&
                        // !!!below 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/