1

作成された例は次のとおりです - ピボット テーブル JSFiddle の例:こちら

使用したグリッドオプションは次のとおりです。

{
    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 ここに画像の説明を入力

営業日、LOP、福利厚生の行は、下部にある要約列 (赤いマーク) で合計しないでください (必須ではないため)。

jqGridの完全なグループADBenefit値を無視する方法。colTotals summary

ありがとう

4

1 に答える 1

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/

于 2015-04-22T11:04:40.463 に答える