历史版本3 :新计算引擎简介 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本JAR 包版本 插件版本 
10.02019-12-05
V1.0

1.2 应用场景

新计算引擎引入了一种新的模版格式 cptx,该模板格式主要用于提升大数据量场景下分组明细、过滤、汇总等简单模板的性能,可以明显提升这些模板的展现速度。

1.3 实现原理

cptx 类似于一个压缩包,其中除了存储了原先的 cpt 文件之外,还包含了一些模版关系的编译结果,通过对模版的预处理(编译),将一些模版中的设置编译为 SQL 语句,交由 SQL 处理,同时按需取数,一次只取出部分数据。这是一种可以规避大数据量带来的压力,优先确保首页快速加载展现的一种计算方式。

1.4 功能介绍

  • 支持将 cpt 模板转换为 cptx 模板。

  • 报表预览方式新增新分页预览

  • cptx 模板新增功能计算属性,支持设置「全量计算」和「按需计算」。

2. 插件介绍编辑

2.1 插件安装

点击下载插件:

设计器插件安装方法参照 设计器插件管理

服务器安装插件方法参照 服务器插件管理

2.2 新旧引擎对比

新引擎和旧引擎的后台计算逻辑区别如下表所示:

注:这里的新引擎指的是 cptx 模板,旧引擎指的是 cpt 模板。

Snag_42ef857b.png

新引擎是流式计算的,具有首屏快速展现的功能,可以在首屏出来后进行点击翻页查看数据,无需等待所有数据处理完。新旧引擎报表展现速度对比如下图所示:

新老引擎预览对比.gif

3. 操作方法编辑

3.1 模板格式转换

打开 cpt 模板,设计器上方工具栏会出现一个转换按钮,点击该按钮,弹出提示框信息“转换成功,请查看设计器目录同名文件”,即表示 cptx 成功生成。

注:cptx 生成后,不需要刷新目录树,cptx 模板会自动出现在同名 cpt 模板的同级目录下。

Snag_4289c5b0.png

3.2 新分页预览

插件安装后,报表预览按钮下拉选择项新增新分页预览,如下图所示:

注1:cpt 和 cptx 都可以使用新分页预览。

注2:目前新分页预览不支持 IE8 及以下浏览器。

Snag_42c73cdc.png

新分页预览分页预览的区别在于报表 Web 预览前端效果的改变,如下图所示:

新分页预览的新前端效果:

1.png

分页预览的旧前端效果:

2.png

目前 cpt 和 cptx 格式的模板分别在新分页预览分页预览时,所使用的引擎和前端展现效果如下表所示:

注:目前 cptx 优先对分页预览做支持,所以 cptx 模板选择其他预览方式时,比如填报预览之类,由于暂未支持,效果和分页预览是一致的。

Snag_42c51ece.png

3.3 计算属性

新引擎设置计算属性的操作步骤:打开一张 cptx 模板,设计器菜单栏选择模板>计算属性,默认采用「按需计算」,勾选使用全量计算后,切换为「全量计算」模式。

注1:插件安装后,只有 cptx 模板的菜单栏模板下才会显示计算属性这个功能。

注2:不开启全量计算可降低服务器的压力,如无需求建议不开启。

注3:计算属性设置中的查询缓存就是数据集缓存,勾选后可缓存查询结果,从而降低服务器压力,提升报表的展现速度。

Snag_42d0f061.png

旧引擎只支持「全量计算」,新引擎可选择是使用「全量计算」还是「按需计算」。

  • 全量计算:将模板中所有的数据都计算出来,例如模板结果有 10000 行,那么会通过流式的方式在服务器中持续计算直到结束。

  • 按需计算:先计算其中一部分数据,例如模板结果有 10000 行,一开始预览的时候,只会取数计算前 1000 行,当浏览器端持续点击下一页时,会再次触发计算下 1000 行。

「全量计算」和「按需计算」对模板性能的影响如下表所示:
Snag_42e31e8e.png

分别使用「全量计算」和「按需计算」进行报表预览时,效果对比如下图所示:

按需计算.gif

4. 注意事项编辑

4.1 暂不支持的功能

新计算引擎暂不支持部分功能:

  • 不支持层次坐标和 SQL 公式。

  • 条件属性不支持行后分页和控件。

  • 不支持悬浮元素、分栏、Sheet 间运算。

  • 不支持分页预览展示图表,不支持子报表。

报表中存在上述不支持的功能,在 cpt 转为 cptx 时,日志中会有 error 的报错提示,如下图所示。此时为避免 cptx 预览报错,会自动走老引擎的后台计算(即这些模板不会有性能上的提升)。

image2019-9-9_17-2-46.png

4.2 新增支持的功能

相比行式引擎,新计算引擎新增支持的功能:

  • 新增数据源支持。

注:支持的数据源有 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。

  • 支持单元格过滤及汇总求和。

  • 支持条件属性行高列宽,超级链接。

  • 支持自适应。

  • 支持单元格内容提示使用公式。

4.3 操作建议

由于新计算引擎支持了分组,但整体上分组展示的性能要逊色于列表展示,为了更好的性能,如无分组需求,建议将模版首列设置为列表。