页面树结构

版本比较

标识

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


注意

提示:本文档的示例代码仅适用于本文档中的示例报表/场景。若实际报表/场景与示例代码无法完全适配(如使用功能不一致,或多个宏代码冲突等),需根据实际需求开发代码。



面板
borderColor#BBBBBB
bgColor#F0F0F0
borderWidth1
borderStylesolid

目录


示例说明

打开透视分析,当数据量较大时,希望每次打开报表都默认显示收缩状态,可以通过宏代码实现。

使用宏之前的效果:

Image Modified

使用宏之后的效果:

Image Modified

设置方法

  1. 在“分析展现”节点下,创建一张透视分析。

  2. 选中透视分析,右键选择 编辑宏 进入报表宏界面。

  3. 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为 INSIGHT;事件为 onRenderTable;并把下面宏代码复制到代码区域。 

宏类型

类型

对象

事件

ClientSide

INSIGHT

onRenderTable

宏代码

代码块
languagejs
firstline1
linenumberstrue
  function main(insight) {
    var grid = insight.grid;
    var headSize = grid.getColumnAreaSize();
    var rowLen = grid.mainTable.rows.length;
    var closedColIndex = 0; // 从0开始计数,需要收起的列号
    if (headSize < rowLen) {
        var 
rowFieldSize
cell = grid.
rowFieldList.length;
mainTable.rows[headSize].cells[closedColIndex];
     
var
 
columnFieldSize
 
=
 insight.grid.
columnFieldList.length;
doFoldWholeField(cell);

    
var measureFieldSize
}
}


透视分析中存在合计时上述宏代码需要进行调整。

代码块
languagejs
firstline1
linenumberstrue
 function main(insight) {
    var grid = insight.grid
.measureFieldList.length
;
    var headSize = 
columnFieldSize > 0 ? (measureFieldSize > 1 ? columnFieldSize + 1 : columnFieldSize) : 1;
grid.getColumnAreaSize();
    var rowLen = grid.mainTable.rows.length;
    var closedColIndex = 0; // 从0开始计数,需要收起的列号
    if (headSize < rowLen) {
        var cell = grid.mainTable.rows[headSize].cells[closedColIndex];
		//首行是合计时需要往下移动一行
        if(cell.getElementsByTagName("img").length==0 && insight.clientConfig.rowTotalPlace=='top'){
            cell = grid.mainTable.rows[headSize+1].cells[closedColIndex];
        }
        insight.grid.doFoldWholeField(cell); 
    }
}

资源下载

资源:migrate.xml