示例说明
打开透视分析,当数据量较大时,希望每次打开报表都默认显示收缩状态,可以通过宏代码实现。
使用宏之前的效果:
使用宏之后的效果:
设置方法
在“分析展现”节点下,创建一张透视分析。
选中透视分析,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为 INSIGHT;事件为 onRenderTable;并把下面宏代码复制到代码区域。
宏类型
类型 | 对象 | 事件 |
---|---|---|
ClientSide | INSIGHT | onRenderTable |
宏代码
代码块 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 |
cell = grid |
.mainTable.rows[headSize].cells[closedColIndex]; |
|
|
insight.grid. |
doFoldWholeField(cell);
}
} |
透视分析中存在合计时上述宏代码需要进行调整。
代码块 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 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); } } |
borderColor | #BBBBBB |
---|---|
bgColor | #F0F0F0 |
borderWidth | 1 |
borderStyle | solid |
资源下载
资源:migrate.xml