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



设置方法

  1. 在展现定制中,创建一张灵活分析
  2. 切换到 定制—宏管理 页面,双击此灵活分析进入报表宏界面。
  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为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);
}

关键对象总结