1. 概述
1.1 版本
报表服务器版本 | JAR 包版本 | 插件版本 | 功能变动 |
---|---|---|---|
10.0 | 2019-11-07 | V1.0.4 | - |
2020-07-08 | V1.4.1 | 新增「模板检测助手」功能 | |
V1.6.0 | 新增折叠树展开、收起接口 | ||
| |||
- | V1.7.0 | 「计算属性」处新增「优先使用游标分页」功能 | |
10.0.7 | - | V1.9.10 | 新增导出打印检测功能 |
注1:新计算引擎插件不支持 IE8 及以下浏览器。
注2:1.5.0 版本之后的新计算引擎插件,请勿设置日志级别为 DEBUG
1.2 应用场景
新计算引擎引入了一种新的模板格式 cptx,该模板格式主要用于提升大数据量场景下分组明细、过滤、汇总等简单模板的性能,可以明显提升这些模板的展现速度。
模板的数据集取数、过滤、父子格设置等,都有可能影响模板的性能,在模板制作时,用户往往意识不到这些问题。新计算引擎插件新增「模板检测助手」功能,可在 cpt 模板制作过程中引导用户,制作出性能更好的模板。
1.3 实现原理
cptx 类似于一个压缩包,其中除了存储了原先的 cpt 文件之外,还包含了一些模板关系的编译结果。
通过对模板的预处理(编译),将一些模板中的设置编译为 SQL 语句,交由 SQL 处理,同时按需取数,一次只取出部分数据,同时后台分页计算。
这是一种可以规避大数据量带来的压力,优先确保首页快速加载展现的一种计算方式。
1.4 功能介绍
支持将 cpt 模板转换为 cptx 模板。
报表预览方式新增新分页预览。
支持批量转换及检测生成的模板是否支持新计算引擎。
cpt 模板,支持通过「模板检测助手」功能,在模板制作过程中,检测并优化模板性能问题。
默认使用 SQL 分页,勾选「优先使用游标分页」后,将优先使用游标进行分页。
2. 适用范围
cptx 支持的功能和不支持的功能将在本章介绍。
2.1 支持的功能
相比行式引擎,新计算引擎新增支持的功能:
支持单元格过滤及汇总求和。
支持条件属性行高列宽,超级链接。
支持自适应。
支持单元格内容提示使用公式。
支持使用多个互相无过滤关系的数据集
新增数据源支持。
支持重复冻结功能。
可以实现展开和收起折叠树节点。详情请参见:新引擎下实现展开和收起折叠树节点
符合组织树结构并具有「树节点按钮」的模板,在新引擎下分页预览也可以显示为折叠树。
注:支持的数据源有 MySQL、ADS、huaweiHive、CUBRID、Apache Derby、Firebird、H2、SQLite、HSQL、MariaDB、PostgreSQL、SAP HANA、Oracle、Teradata、SQL Server、SQL Server2000、SQL Server2008、Access、ASE、Informix、Ingres、Amazon Redshift、Vertica、Apache Phoenix、Apache Kylin、Impala、GBase 8s、Transwarp、DB2、Sybase、Greenplum、FineData
2.2 暂不支持的功能
由于后台分页取数计算逻辑限制,新计算引擎暂不支持部分功能在参数面板以外使用:
不支持非 JDBC 数据源
不支持树数据集、关联数据集、存储过程。(跟折叠树不矛盾,折叠树并不是只能靠树数据集实现)
不支持 扩展后排序
不支持层次坐标、SQL 公式和“报表函数”类型公式
条件属性不支持行后分页和控件。
不支持悬浮元素、分栏、sheet 间运算
不支持分页预览展示图表
不支持单元格插入子报表,详情可参见:嵌入式主子表
不支持不同数据集间过滤
包含 年份选择控件 的 cpt 模板,转换为 cptx 格式后,年份选择控件将失效
不支持移动端使用
新计算引擎开启后,邮件正文不支持报表内容。
不支持模板后缀参数&__bypagesize__=false,该参数的应用场景见:不分页显示数
注1:目前不支持上述功能, cpt 转 cptx 时,日志中会有 error 的报错提示 unsupported feature。此时为避免 cptx 预览报错,会自动走老引擎的后台计算(即这些模板不会有性能上的提升)
注2:新计算引擎支持了分组,但整体上分组展示的性能要逊色于列表展示,为了更好的性能,如无分组需求,建议将模板首列设置为列表。
3. 插件介绍
3.1 插件安装
点击下载插件:新计算引擎
设计器插件安装方法参照 设计器插件管理
服务器安装插件方法参照 服务器插件管理
推荐配合大数据集导出使用,详细内容参见文档:新计算引擎大数据集导出
3.2 新旧引擎对比
旧引擎和新引擎的后台计算逻辑区别如下表所示:
注:这里的新引擎指的是 cptx 模板,旧引擎指的是 cpt 模板。
计算逻辑 | 旧引擎 | 新引擎 |
---|---|---|
数据列( 筛选、过滤、排序等 ) | 将数据集数据抽取到服务器内存,在内存中筛选和过滤 数据量较大时,有内存溢出风险 | 将设置编译为 SQL 语句,由数据库执行 速度较快,数据量越大越明显 |
按需计算 | 不支持,只能全量计算所有 | 支持 |
公式解析计算 | 性能较慢,不支持动态参数缓存 | 通过预编译提前确定单元格关系,避免计算时递归遍历 支持动态参数缓存 |
序列化存储 | 模板为单个 XML,资源文件转为字符串存储 存在大量资源文件时,读取与保存模板会比较慢 | 模板为 zip 格式,里面内容为元数据对象,无需将资源文件转为字符串存储 模板体积较大时,读取与保存不会出现卡顿 |
前端渲染 | 支持新前端渲染 | 支持新前端渲染 |
新引擎是流式计算的,具有首屏快速展现的功能,可以在首屏出来后进行点击翻页查看数据,无需等待所有数据处理完。新旧引擎报表展现速度对比如下图所示:
左边为旧引擎,右边为新引擎。
3.3 插件使用指导
如何开启新计算引擎,参见文档:cpt模板转cptx格式
如何设置性能优化,参见文档:模板计算属性
如何检测模板的性能问题,参见文档:模板检测助手
如何解决导出数据集比较慢的问题,参见文档:新计算引擎大数据集导出
新计算引擎支持的 JS 接口,参见文档:新引擎下实现展开和收起折叠树节点