版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

示例说明

在透视分析中,隐藏一列。本宏只对清单报表生效(没有展开、收缩操作的报表)。使用宏之前的效果:在透视分析中,隐藏一列。本宏只对清单报表生效(没有展开、收缩操作的报表),并且不支持字段显示分类汇总。使用宏之前的效果:

使用宏之后的效果:

注意:由于浏览器的渲染模式不同,此报表宏在火狐浏览器不适用!


设置方法

  1. 在展现定制中,创建一张透视分析报表。
  2. 切换到 定制 -> 宏管理 页面,双击此透视分析进入报表宏界面。在资源定制节点下,创建一张透视分析。
  3. 选中透视分析,右键选择 编辑宏 进入报表宏界面。
  4. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为 INSIGHT;事件为 onRenderTable;并把下面宏代码复制到代码区域。 

...

代码块
languagejs
firstline1
linenumberstrue
function main(insight) {
    //隐藏列
    var cellIndex = 1; //隐藏列序号,序号从0开始。
    var newtables = new Array();
    var table = insight.grid.mainTable;
    var maxRowcolumnSize = tableinsight.rows.length;
    for (var i = 0; i < maxRow; i++) {
        newtables.push(new Array())grid.getColumnSize();
    }
    var tr = table.tBodies[0].firstChild;
    var rowIndex = 0;
    //这个算法只对从左到右,从上到下合并有规律的合并单元格有用,对于间隔合并单元格的会有问题
    while (tr) {
        if (tr.tagName == "TR") {
            var td = tr.firstChildlastChild;
            var columnIndex = columnSize - 01;
            var row = newtables[rowIndex];
            while (row[columnIndex]) columnIndex++ = [];
            while (td) {
                if (td.tagName == "TD") {
                    for (var xy = 0; xy < td.rowSpancolSpan; xy++) {
                        for (varrow[columnIndex - y] = 0; y <td;
                    }
                    columnIndex = columnIndex - td.colSpan;
y++) {               }
             newtables[rowIndex + x][columnIndex + y] td = td.previousSibling;
            }
           } rowIndex++;
        }
        tr = tr.nextSibling;
    }
    var length = newtables.length;
    var hideColumns = [0]; //要隐藏的列序号,从0开始
    while (row[columnIndex])
    insight.grid.customHideColumns = hideColumns;
    for (var i = 0; i < length; i++) {
        var row = newtables[i];
        if (row && row.length > 0) {
            /*隐藏多列处理,直接找到对应的列并隐藏 */
 columnIndex++;           for (var ci in hideColumns) {
}                var tdindexi = td.nextSiblinghideColumns[ci];
            }    if (row[indexi]) {
            }        var trnn = tr.nextSiblingrow[indexi];
        rowIndex++;       }     varif length(nn != newtables.length; null) {
                   for (var i = 0; i < length; i++if (nn.getAttribute("isAgg") != "1") {
        var nn = newtables[i][cellIndex];                    nn.style.display = "none";
                 /*隐藏多列处理,直接找到对应的列并隐藏            nn.setAttribute("isHideColumn", "1"); //可以不要,这里只是做个标识,方便扩展使用
                        } else {
                            varif (nn.colSpan >= newtables[i][2];2) {
                                nn.style.display = "none";*/
    colSpan = nn.colSpan - 1;
                            } else {
                                nn.setAttribute("isHideColumn", "1"); //可以不要,这里只是做个标识,方便扩展使用
                            }
                        }
                    }
                }
            }
    table = newtables;    }
    }
}
 

关键对象总结

  • 获取单元格对象:grid.getCell(m, cellIndex);
  • 设置行隐藏:cell.style.display = "none";

...

文档反馈