jqPivot 忽略 colTotals 页脚中的 group/row 值
jqPivot Ignoring group/row value in colTotals footer
这是创建的示例 - Pivot Table 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
}
需要帮助忽略特定行's/groups 添加来自 colTotals
摘要
这是我从上面的例子中得到的网格部分
在此图片的页脚 colTotals
部分显示所有列的总和,在这里我无法将组 Benefit
和 AD
排除在总和之外。
预计金额为 colTotals
不应在底部的摘要列(红色标记)中汇总工作日、LOP、福利行(因为它们不是必需的)
如何忽略 jqGrid colTotals
summary
中完整的 AD
和 Benefit
值组。
谢谢
您似乎想要自定义 计算总计摘要行中的值。例如,您可以 删除 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/
这是创建的示例 - Pivot Table 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
}
需要帮助忽略特定行's/groups 添加来自 colTotals
摘要
这是我从上面的例子中得到的网格部分
在此图片的页脚 colTotals
部分显示所有列的总和,在这里我无法将组 Benefit
和 AD
排除在总和之外。
预计金额为 colTotals
不应在底部的摘要列(红色标记)中汇总工作日、LOP、福利行(因为它们不是必需的)
如何忽略 jqGrid colTotals
summary
中完整的 AD
和 Benefit
值组。
谢谢
您似乎想要自定义 计算总计摘要行中的值。例如,您可以 删除 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/