1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 功能简介
注1:行式引擎适用于数据量较大且结构不复杂的报表。如需启用行式引擎,请先参考本文第二节确认报表环境是否支持启用。
若不支持启用行式引擎,请参考本文第三节选取合适的替代方案。
注2:FineReport 报表默认不启用行式引擎。
FineReport 支持启用行式引擎,按页取数执行报表,能够大大缩短报表执行时间,提高用户体验。如下图所示:
取出全部数据后再执行报表,最后返回整体的报表结果给浏览器,用户访问到看到结果的时间=报表取数时间+报表执行时间。
边取数边执行报表,执行到哪页用户就可以看到哪页,用户访问到看到结果的时间=首页数据读取时间+首页计算时间。
2. 使用限制
若用户在使用行式引擎时受到以下限制,可参考本文第三节选取其他合适的的分页方案。
2.1 数据源限制
行式引擎只适用于单数据源报表,对于多数据集报表,行式引擎无法对其实现分页显示数据。
2.2 数据库限制
行式引擎按页取数只适用于 Oracle,MySQL,HSQL 和 SQL Server 2012 及以上版本数据库。
注:SQL Server 2012 及以上版本是支持行式引擎的,但在 SQL 中一定要写 order by。
2.3 报表特性限制
由于行式引擎是按页取数来执行报表,因此报表中每页的计算必须是独立的,即报表不能有单元格关联的复杂运算等。
为了提高行式引擎的性能,FineReport 舍弃了一些复杂的功能,如下所示:
不支持单元格过滤,不支持单元格字段汇总求和。
不支持重复冻结功能。
条件属性不支持行高、列宽、超级链接、行后分页、形态、控件。
单元格属性仅支持从上到下扩展属性,其他属性设置均不支持。
不支持悬浮元素,层次坐标,分栏,sheet 间运算。
不支持展示图表,不支持子报表。
不支持内容提示的单元格值,以及在自定义中使用公式。
不支持分页分 sheet 导出 Excel 。
不支持数据列的结果集筛选。
不支持使用「$$$」进行传参。
不支持存储过程。
不支持报表在分页预览模式下的分组展示。
注1:开启行式引擎后,分页预览模式下的分组效果受到影响,无法正常分组,如下图所示:
填报预览、数据分析模式下的分组效果正常,不受影响。
3. 示例索引
本节提供以下方案,用于实现后台分页计算,提升报表的预览速度,用户可根据自身需求进行选择。
适用场景 | 方案 |
---|---|
单数据集报表启用 | 参考 启用行式引擎执行层式报表 开启行式引擎即可 |
单数据集报表启用 | 1)需先手动编写分页 SQL 注:分页预览模式下需编写分页 SQL ,填报预览、数据分析模式下无需编写分页 SQL。 详情请参见:单数据集分页 SQL 实现层式报表 2)再开启行式引擎即可 详情请参见:启用行式引擎执行层式报表 |
多数据集实现分页查询 | 1)使用数据库本身的行序号或者使用数据库函数生成行序号(即行号) 2)在 where 条件中通过页码参数使得行号在一定范围内显示,并点击自定义的上一页下一页按钮时重新传入页码参数取出相应的数据 详情请参见:多数据集实现层式报表 |
行式引擎无法支持用户所需场景 | 可尝试使用新计算引擎功能
详情请参见:新计算引擎功能 |