示例说明
在灵活分析中,通过的合计小计功能并不适用的所有的情况,比如对于比率计算列对应的行一般不是简单的小计,而是相关计算列小计的比值。
设置方法
宏类型
类型 | 对象 | 事件 |
ClientSide | simpleReport | onRenderTable |
宏代码
function main(simpleReport, simpleReportContext) { for (var m = simpleReport.grid.getHeaderRows(); m < simpleReport.grid.getRowCount(); m++) { var n = simpleReport.getFieldIndexByAlias('单价'); var x = simpleReport.getFieldIndexByAlias('数量'); var y = simpleReport.getFieldIndexByAlias('折扣'); var c = simpleReport.grid.getCell(m, 0); var value = c.innerText; if (value.indexOf("小计") >= 0) { var a1 = simpleReport.grid.getCell(m, n).innerText; var a2 = simpleReport.grid.getCell(m, x).innerText; if (a2 != 0 && a1 && a2) { var floatValue1 = parseFloat(a1.replace(/,/g, "")); var floatValue2 = parseFloat(a2.replace(/,/g, "")); var rate = floatValue1 / floatValue2 * 100; rate = rate.toFixed(2) + '%' simpleReport.grid.getCell(m, y).innerText = rate; } //simpleReport.grid.getCell(m,0).innerText = ''; simpleReport.grid.getCell(m, 0).innerText = simpleReport.grid.getCell(m - 1, 0).innerText; simpleReport.grid.getCell(m, 1).innerText = '小计'; } else if (value.indexOf("合计") >= 0) { var a1 = simpleReport.grid.getCell(m, n).innerText; var a2 = simpleReport.grid.getCell(m, x).innerText; var floatValue1 = parseFloat(a1.replace(/,/g, "")); var floatValue2 = parseFloat(a2.replace(/,/g, "")); var rate = floatValue1 / floatValue2 * 100; rate = rate.toFixed(2) + '%' simpleReport.grid.getCell(m, y).innerText = rate; } } } |
关键对象总结