通过数据集查询数据库表,大数据量时,展开数据集会慢;模板定义了很多个数据集,数据集执行的时候就会创建一个数据连接,出现数据库连接池满地情况。以上问题,都与数据集的执行相关,那数据集何时被执行呢?下面通过数据报表FineReport来简单介绍一下。
工具/原料
1
数据报表FineReport7.1.1
2
大小:148.2M 适用平台:windows/linux
方法/步骤
1
定义数据集的时候会执行么?创建数据,编辑sql查询语句,都不会执行数据集,只有当预览定义的数据集时才会被执行。
2
数据量大时展开数据集为什么会慢?展开数据集时会执行sql语句,这样才能够获得数据集列名,但是数据集展开不会执行完整sql语句,只会执行前几条获取列名,大大提升了设计器的获取数据集列名的速度,提高用户体验。
3
报表预览的时候没有用到的数据集会被执行吗?模板中定义了多个数据集,但有的没有使用,预览报表的时候不会被执行。FR在预览报表,只有计算到用数据集的单元格才会执行数据集。如单元格B3中绑定了数据列,报表预览的时候执行到B3单元格时才会执行数据集,此时会创建一个数据连接,数据集执行完毕后,连接会自动释放。数据集也只会执行一次,若其他单元格用到了数据集的其他列,不会再执行。