适用场景:此宏示例只是透视分析方法调用增加列的一个简单示例,实际代码应用只符合当前的报表场景,并且必须是清单明细数据,存在两个字段以上(包含两个字段)的行区不支持进行汇总合计。若是有其他的场景要求,相关宏代码需要自行调整。
透视分析添加排序列。效果图如下:
类型 | 对象 | 事件 |
ClientSide | INSIGHT | onRenderTable |
function main(insight) { //设置新增列的表头名,可修改项 columnName = "序号"; addSortColumn(insight, columnName); } //添加一列排序列 function addSortColumn(insight, columnName) { var mainTable = insight.grid.mainTable; //获取表格对象 var columnFieldSize = insight.grid.columnFieldList.length - 1; //获取列区个数 var measureFieldSize = insight.grid.measureFieldList.length; //获取度量值个数 var headSize = columnFieldSize > 0 ? (measureFieldSize > 1 ? columnFieldSize + 1 : columnFieldSize) : 1; var idx = 0; var rowSpan = 1; var trObj = mainTable.rows[0]; while (trObj != null) { if (headSize > 1) { headSize--; var firstChild = trObj.firstChild; var blankTd = firstChild.cloneNode(true); trObj.insertBefore(blankTd, firstChild); } else if (rowSpan > 1) { rowSpan--; } else { var firstChild = trObj.firstChild; var blankTd = firstChild.cloneNode(true); if (idx == 0) { var span = blankTd.firstChild.firstChild.nextSibling; span.innerHTML = columnName; } else { blankTd.align = 'center'; blankTd.innerHTML = "" + idx; } idx++; trObj.insertBefore(blankTd, firstChild); rowSpan = firstChild.rowSpan; } trObj = trObj.nextSibling; } } |
资源:migrate.xml