1. 概述
1.1 版本
报表服务器版本 | 功能变动 |
---|---|
11.0 | - |
1.2 应用场景
在 cpt 模板 开启新计算引擎 后,点击设计器菜单栏的「模板」,会新增一个「计算属性」入口,在「计算属性」中的实验性功能中,可优化与折叠树相关的性能,本文主要讲解如何在新计算引擎下的实现折叠树,效果如下图所示:
1.3 新计算引擎折叠树与旧计算引擎折叠树对比说明
1)新计算引擎性能提升
新计算引擎异步折叠树在取数和前端渲染均做了优化,提升了性能。
新计算引擎非异步折叠树,仅在前端渲染提升了性能。
2)支持重复与冻结
新计算引擎异步/非异步折叠树支持设置重复与冻结,但是限制所有的展开收起行列都必须同时重复或同时冻结。
2. 适用范围
在「计算属性」中的实验性功能中的相关功能如下:
勾选「折叠树」可以优化当前模板前台数据的加载性能,进而优化折叠树的前端性能。
在已经勾选「折叠树」后,计算属性界面会新增一个「异步取数」设置项,勾选该按钮模板可异步取数,从取数阶段就对折叠树性能进行优化,当数据量较大时可以开启。
勾选「折叠树-异步取数」可以优化当前工程下所有模板的折叠树性能且开启异步取数。
注:新引擎折叠树支持冻结及调整折叠按钮所在单元格的内容样式,需注意若折叠树纵向展开则不可设置冻结行,折叠树横向展开则不可设置冻结列。
2.1 异步取数折叠树
异步取数折叠树主要针对结构比较标准的单棵纵向折叠树,通过异步取数+异步加载,从取数阶段就进行折叠树性能的优化,只支持同时满足以下条件的场景:
单数据集
折叠树按钮纵向排布
数据列公式仅支持 sum() 汇总和行内计算
单棵折叠树
折叠树按钮所在行的数据列左父格需设置为折叠树按钮所在单元格
注:如何判断是否支持异步取数:折叠树模板转换,转换后如显示兼容模式则不支持。
2.2 非异步取数折叠树
非异步取数折叠树主要优化前台数据加载的性能问题,实现前台异步加载,优化折叠树的前端性能,支持场景如下:
折叠树纵向扩展
单棵折叠树
3. 示例
3.1 开启新计算引擎
1)新建一张普通报表,点击「模板>报表引擎属性」,勾选「启用后台分页」按钮,选择「新计算引擎」,点击「确定」即可开启新计算引擎。如下图所示:
2)点击设计器菜单栏的「模板」,选择「计算属性」,选择实验性功能,并勾选「折叠树」,如下图所示:
3.2 准备数据
1)新建一个数据库查询数据集 ds1,SQL 语句为:SELECT * FROM 公司部门
2)再新建一个 树数据集 Tree1,其数据来源于 ds1,设置其原始标记字段为列序号 1,父标记字段为列序号 2,如下图所示:
3.3 制作组织树
1)将树数据集 Tree1 的 FR_GEN_0、FR_GEN_1、FR_GEN_2 这 3 个字段分别拖到 A1、A2、A3 单元格,并都设置为居左,如下图所示:
2)A2 单元格的左父格自定义为 A1,如下图所示:
注:设置父格的目的是,点击主格时,控制附属于该组的子项内容展开与折叠。
3)A3 单元格的左父格自定义为 A2,如下图所示:
4)A1、A2、A3单元格都将形态设置为数据查询 ds1,实际值为列序号1,显示值为列序号3,如下图所示:
注:这里设置显示值为列序号 3,是让前端预览时可以显示部门名称,而不是 ID。
5)给 A2、A3 单元格都加相同的条件属性,隐藏掉没有数据的行,如下图所示:
3.4 添加树节点按钮
给 A1、A2、A3 单元格都添加树节点按钮,这个按钮作用就是实现层级展开或收起,如下图所示:
注:新引擎折叠树所有折叠树层级都需要设置折叠树按钮。
3.5 效果预览
保存报表,点击「分页预览」,效果如 1.2 节中所示。
注:不支持移动端。
4. 已完成模板
注:下载模板后需要开启新计算引擎并勾选折叠树后才生效。
已完成模板请参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\TreeReport\折叠树.cpt
点击下载模板:折叠树.cpt