页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 3 下一个 »

示例说明

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

使用宏之后的效果:


设置方法

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


宏类型

类型

对象

事件

ClientSide

INSIGHT

onRenderTable

宏代码

function main(insight) {
    var cellIndex = 1; //隐藏列序号,序号从0开始。
    var newtables = new Array();
    var table = insight.grid.mainTable;
    var maxRow = table.rows.length;
    for (var i = 0; i < maxRow; i++) {
        newtables.push(new Array());
    }
    var tr = table.tBodies[0].firstChild;
    var rowIndex = 0;
    while (tr) {
        if (tr.tagName == "TR") {
            var td = tr.firstChild;
            var columnIndex = 0;
            var row = newtables[rowIndex];
            while (row[columnIndex]) columnIndex++;
            while (td) {
                if (td.tagName == "TD") {
                    for (var x = 0; x < td.rowSpan; x++) {
                        for (var y = 0; y < td.colSpan; y++) {
                            newtables[rowIndex + x][columnIndex + y] = td;
                        }
                    }
                    while (row[columnIndex])
                    columnIndex++;
                }
                td = td.nextSibling;
            }
        }
        tr = tr.nextSibling;
        rowIndex++;
    }
    var length = newtables.length;
    for (var i = 0; i < length; i++) {
        var nn = newtables[i][cellIndex];
        nn.style.display = "none";
        /*隐藏多列处理,直接找到对应的列并隐藏  
        var nn = newtables[i][2];      
        nn.style.display = "none";*/
    }
    table = newtables;
}
 

关键对象总结

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

 

  • 无标签