示例说明
在灵活分析中,示例实现当进行翻页时,在表尾中显示前面所有页数据的合计


设置方法
- 在资源定制中,创建一张灵活分析;
- 选中灵活分析,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为simpleReport;事件为onRenderTable;并把下面宏代码复制到代码区域。
宏类型
类型 | 对象 | 事件 |
ClientSide | simpleReport | onRenderTable |
宏代码
function main(simpleReport, simpleReportContext) {
//该数组用于填充在一列下所有行的数据,这个为第一列下的所有数据
simpleReport.tmpV1 = {};
//第二列下的所有数据
simpleReport.tmpV2 = {};
//第三列下的所有数据
simpleReport.tmpV3 = {};
//用于记录每一页的统计数据
if (simpleReport.cachedV1SubTotal == undefined) {
//每一页的第一列的统计数据
simpleReport.cachedV1SubTotal = {};
//每一页的第二列的统计数据
simpleReport.cachedV2SubTotal = {};
//每一列的第三列的统计数据
simpleReport.cachedV3SubTotal = {};
}
function size(obj) {
var ret = 0;
for (var v in obj) {
ret++;
}
return ret;
};
function sum(obj) {
var ret = 0;
for (var v in obj) {
ret += obj[v];
}
return ret;
};
function sum2(obj, from, to) {
var ret = 0;
for (var v in obj) {
if (v == "undefined") continue;
if (v >= from && v <= to) ret += obj[v];
}
return ret;
}
var v1;
var v2;
var v3;
var index = 0;
for (var m = simpleReport.grid.getHeaderRows(); m < simpleReport.grid.getRowCount(); m++) {
//获取表格第m行第n列,列号从0开始
var v1 = simpleReport.grid.getCell(m, 0);
var v1Value = v1.innerText;
simpleReport.tmpV1[index] = v1Value;
var v2 = simpleReport.grid.getCell(m, 1);
var v2Value = v2.innerText;
//将字符串转化为浮点数
simpleReport.tmpV2[index] = parseFloat(v2Value.replace(",", ""));
var v3 = simpleReport.grid.getCell(m, 2);
var v3Value = v3.innerText;
simpleReport.tmpV3[index] = parseFloat(v3Value.replace(",", ""));
index++;
}
simpleReport.cachedV1SubTotal[simpleReport.curPageNum] = size(simpleReport.tmpV1);
simpleReport.cachedV2SubTotal[simpleReport.curPageNum] = sum(simpleReport.tmpV2);
simpleReport.cachedV3SubTotal[simpleReport.curPageNum] = sum(simpleReport.tmpV3);
var tailHTML = "";
tailHTML += "订单数合计:" + sum2(simpleReport.cachedV1SubTotal, 0, simpleReport.curPageNum);
tailHTML += " 销售额合计:" +
Math.round(sum2(simpleReport.cachedV2SubTotal, 0, simpleReport.curPageNum) *
100) / 100;
tailHTML += " 销量合计:" + sum2(simpleReport.cachedV3SubTotal, 0, simpleReport.curPageNum);
simpleReport.setTail(tailHTML);
}
关键对象总结
- 设置表尾内容:simpleReport.setTail(tailHTML)