(本文档仅供参考,因宏代码具备一定场景适用性,无法匹配所有场景,当前代码匹配旧版透视分析)
问题说明:
打开透视分析,当数据量较大时,希望每次打开报表都默认显示收缩状态,可以通过宏代码实现。
行区字段设置可参考:透视分析如何实现表格默认收缩效果?
但列区字段是不生效的,可以如何实现呢?
设置方法
在“分析展现”节点下,创建一张透视分析。
选中透视分析,右键选择 编辑宏 进入报表宏界面。
- 在报表宏界面新建客户端模块,在弹出的新建模块对话框中选择对象为 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);
}
var colLen = grid.mainTable.rows[0].cells.length;
var closedIndex2 = headSize; // 从headSize开始计数,需要收起的列号
while (closedIndex2 < colLen) {
var cell = grid.mainTable.rows[0].cells[closedIndex2];
insight.grid.doColFold(cell);
closedIndex2++;
}
}
效果如下: