数据集是指从数据库中将数据取出来,可直接应用于模板设计的数据展现集合。
数据集按照其使用范围可以分为服务器数据集,模板数据集两种。
只适用于单张模板的数据集,具体类型同服务器数据集相同。
1.2 服务器数据集
适用于整个服务器上所有报表的数据集,其类型分为:数据库查询,内置数据集,文件数据集,SAP数据集,存储过程,多维数据库、关联数据集以及树数据集。
1.2.1 数据库查询
SQL查询是指从定义好的数据库连接中,也就是数据源中使用SQL语句来选择我们所需要的数据字段,一般是直接对数据源中的数据库表直接进行操作。在设计器中我们把数据源分为两种,一种是服务器数据集,一种是模板数据集,两者被引用的范围不一样,下面我们以模板数据集为例进行说明。
下面介绍整个数据集界面的一些基本属性:
类型 |
对于查询类型,FineReport既支持普通的SQL查询,也支持存储过程,并且这两种类型的查询语句中都可以包含参数。 注意: SQL查询和存储过程,通过JDBC,最终都是由数据库软件来解析执行,并将结果返回给FineReport来显示的,所以查询执行的速度和性能完全由对应的数据库软件来决定。 |
向导 |
FineReport提供了简单的向导来帮助用户创建简单的SQL查询和存储过程。 注意:由于SQL语言比较复杂,FineReport提供的向导只能定义常用的简单SQL查询(不支持分组,子查询等等);存储过程的向导基本可以满足要求,它能够列出所连接数据库中所有的存储过程,并根据所选择存储过程的名字,自动获得存储过程的参数来产生可以执行的存储过程语句。 |
查询编辑器 |
当向导产生的查询不能完全满足要求的时候,可以通过我们提供的文本编辑器来编辑任意复杂的查询语句(利用向导产生的存储过程,一般不需要再次编辑)。 |
参数 |
FineReport可以完美地支持参数查询,在定义查询语句的时候,你只需要用特殊字符串"${XXX}"(参数值为数值型,为${参数},否则为'${XXX}'),将参数名字前后包含起来,点击下面的刷新按钮,可以给参数赋默认值,这样当报表引擎执行这个SQL语句的时候,在C/S系统会弹出一个对话框来要求用户输入对应参数的数值,并且会自动显示默认值,在B/S系统会遍历客户端(通常是浏览器)传递过来的所有参数数值;然后FineReport利用这些参数的数值来替换查询中对应的字符串“${XXX}”,将替换过的查询语句提交给数据库解析和执行。 比如: 1.用户输入的查询语句为: “select * from Customers where ID = ${ID}”; 2.从客户端动态取到的ID数值为: 1; 3.根据参数值产生新的查询语句:“select * from Customers where ID = 1”,利用JDBC,将这个新产生的查询语句传递给相应的数据库解析和执行。 |
最大预览数 |
这里为了加快预览的速度,才设置了预览的最大行数(默认值是200),这个数值只有在点击(预览)按钮的时候才起作用,不会错误地作用到引用这个查询的报表模板文件中。 |
视图查询 :同SQL查询
模糊查询:在表下方有一块空白搜索框,它们用作模糊查询。例如想要搜索客户相关的表,在搜索框中填入客户二字,会进行自动搜索进行模糊匹配
参考链接:https://help.finereport.com/doc-view-107.html
注1:FR数据库查询只支持一条自然SQL语句的查询,不支持多个自然SQL,比如SELECT * FROM A SELECT * FROM B
注2:create、drop等新建表、删除表不在官方支持范围内,官方只支持select
1.2.2 内置数据集
内置数据集可分为服务器内置数据集和报表内置数据集。下面我们以模板的内置数据集来讲解。模板内置数据集,是指在模板数据集中新建一个类似数据库表的原表,可作为模板的数据源来设计报表。
作用:内置数据集可以实现在没有数据库的机器上分页预览模板。如在某一台机器上使用数据库查询制作了一个模板,将该模板拷贝到另外一台机器访问则需要有对应的连接,若没有此连接就不能访问该模板。此时可以直接将该模板的数据集定义成内置数据集或者在制作模板的机器上将该模板输出成内置数据集模板,这样该模板就可以在任何电脑上访问了。具体如何将模板导出内置数据集可查看设计器中的导出章节。
注:内置数据集不能自动还原为模板数据集,所以导出的模板不要覆盖原模板。
参考链接:https://help.finereport.com/doc-view-109.html
1.2.3 文件数据集
文件数据集是指以txt文本文件、Excel文件和XML文件中的数据为数据集,将这些文件中的数据加载进行,并以二维表的结构展示在数据集当中,以供模板使用。
参考链接:https://help.finereport.com/doc-view-1269.html
1.2.4 SAP数据集
在客户SAP系统集成时,在7.0.4版本之前只能通过程序数据集或者是ETL工具进行取数,实现起来非常麻烦,希望有类似JDBC数据连接的设置方式来设置SAP数据连接。
FineReport在8.0及往后的版本中,将SAP数据连接功能做成一个插件的功能,启用插件后,可在服务器数据连接处新增数据连接类型SAP数据连接,在数据集中添加SAP数据集类型。
SAP数据链接:https://help.finereport.com/doc-view-103.htm
SAP数据集:https://help.finereport.com/doc-view-119.html
1.2.5 存储过程
就是直接将存储过程作为数据集,不需要在数据库查询而是去调用存储过程。FineReport支持全部数据库的存储过程作为数据集并且定义方法都相同。
参考链接:https://help.finereport.com/doc-view-117.html
1.2.6 多维数据库
首先要通过数据连接将多维数据库与FineReport连接起来,也就是我们前面所说的XMLA数据连接,那么下面就需要在数据连接的基础上新建多维数据库XMLA数据集,用于模板设计。
参考连接:https://help.finereport.com/doc-view-120.html
1.2.7 关联数据集
参考链接:https://help.finereport.com/doc-view-125.html
1.2.7 树数据集
参考链接:https://help.finereport.com/doc-view-126.html
https://help.finereport.com/doc-view-125.html