示例说明
在灵活分析中,示例实现当进行翻页时,在表尾中显示前面所有页数据的合计
设置方法
宏类型
类型 | 对象 | 事件 |
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); } |
关键对象总结