1. 问题描述
对于多数据集关联报表,当数据很大时报表的展现速度就会很慢,或通过写sql语句又很复杂。为此FineReport提供一种,既可加快报表的展现速度,又不用编写复杂的sql语句的方案。即使用动态参数注入功能。
2. 原理
动态参数注入,是通过注入的值对数据库中的数据进行操作的,只是取对应的数据,所以会提高报表的性能。
3. 示例
- 新建模板
展现多个关联数据表的数据
SQL语句,ds1:SELECT * FROM [订单]
SQL语句,ds2:SELECT * FROM 订单明细
- 报表样式
传统做法:先定义多个数据集,然后在报表中设置过滤条件,或使用连接将多个数据表定义成一个sql,但这两种方案会产生的一系列问题(具体下面有介绍)。而使用动态参数注入的功能可解决大数量报表展现的速度,下面对比看下这三种做法。
3.1 设置过滤
此方法是定义两个数据集查询出所有数据,然后在报表中设置过滤条件。
分页预览query_like.cpt,从日志中可看出,是将第二个数据集中的数据全部取出了,如下所示:
注:对于数据量大的报表,若将数据全部取出会降低报表的性能,因此会降低报表的展现速度。
3.2 定义sql
若是采用将两个数据集定义成一个数据集,则SQL语句为:select a.订单ID,订购日期,到货日期,发货日期,产品ID,单价,数量,进价,折扣 from 订单 a,订单明细 b where a.订单ID=b.订单ID
注:当数据集很多时, 这样定义sql很麻烦,看了也觉得很复杂。
3.3 使用动态参数注入
- 修改sql语句
将上述模板中,数据集ds2的sql语句,修改成:SELECT * FROM [订单明细] where 订单ID =${orderid},并将参数orderid设置个默认值为订单ID中的一个值,如:10248。
- 参数注入设置
双击原进行过滤的E2单元格,在弹出数据列对话框中,点击动态参数注入按钮,弹出动态参数注入对话框,然后点击插入:名字和值分别为数据集ds2的参数:orderid和数据集ds1对应数据列所在的单元格:A2,且同时删除过滤条件。
点击设计器预览是,日志中可看出每执行一行就只是取出的对应订单ID的那条数据,如下图所示:
注:动态参数注入功能适用于大数据量报表,能够明显的体现出速度优势,而上文中的模板只是介绍其方法的。
相关推荐
图片优化是提高前端性能的重要方面之一。我们可以使用图片延迟加载、响应式图片、调整图片大小等方法来提高图片加载速度和减少文件大小。 图片延迟加载可以减少 HTTP 请求次数和提高用户体验。响应式图片可以根据...
善用几何作图,优化课堂效率.doc
善用大数据构建优化电力营商环境审计监督体系.docx
善用佳软:高效能人士的软件之道
这是水晶报表dll文件,由于Visual Studio 2010默认不会安装水晶报表服务,所以用到水晶报表的地方需要手动添加,或者安装水晶报表插件应用,插件有点大,几百兆呀,伤不起,总结查出相关dll文件分享善用会有帮助,所...
八年级心理健康善用“外脑”展开想象的翅膀PPT,八年级心理健康善用“外脑”展开想象的翅膀
人生最宝贵的两项资产,一项是头脑,一项是时间。无论你做什么事情,即使不用脑子,也要花费时间。因此,管理时间的水平高低,会决定你事业...它使你能控制生活,善用时间,朝自己的方向前进,而不致在忙乱中迷失方向。
善用长度并降低了原料,使原料只有一个最低需要。降低物质需求,并降低kosts。适用于所有材料是线性的,优化的长度。
这个版本是完整扫描的,而且大小进行了一定的压缩,只有不到20M,比网上通常的版本要小不少,而且显示效果也几乎没有什么损失,适合用来珍藏。
社交网络与企业管理?善用社交网站的力量 社交网络与企业管理?善用社交网站的力量社交网络与企业管理?善用社交网站的力量
初中道德与法治【教学设计】《善用法律》(人教).docx
人教八年级道德与法治上册善用法律PPT课件.pptx
在经济飞速发展、科技不断创新的时代,信息化已成为世界经济和社会发展的大趋势。IBM Information Infrastructure企业信息架构提供了一个具有弹性的、安全的、可以有效规避各种风险,并面向未来的企业信息架构。
A1技术支持的学情分析作业1—学情分析方案道德与法治.pdf
新部编道德与法治八年级上册时善用法律PPT课件.pptx