帆软软件
作者帆软软件·2015-05-19 15:25
产品经理·帆软软件

java报表开发工具FineReport教程之设计思路:数据集【1】 数据库查询

字数 2320阅读 2585评论 0赞 0
数据集

1. 概述
数据集是指从数据库中将数据取出来,可直接应用于模板设计的数据展现集合。

数据集按照其使用范围可以分为服务器数据集,模板数据集两种。

1.1 服务器数据集
服务器数据集在服务器>服务器数据集处定义,适用于整个服务器上所有报表的数据集,其类型分为:数据库查询,内置数据集,文件数据集,SAP数据集,存储过程,多维数据库、关联数据集以及树数据集。

1.2 模板数据集
模板数据集在模板>模板数据集处或者数据集窗口处定义,只适用于单张模板的数据集,具体类型同服务器数据集相同。

模板数据集只对当前模板有效。

2. 数据集窗口
在设计器的数据窗口会显示定义的所有数据集,包括模板数据集和服务器数据集,如下图:

注:数据集窗口可以对模板数据集进行增删查询,但是对服务器数据集及存储过程数据集只能进行预览。

数据库查询

1. 概述
SQL查询是指从定义好的数据库连接中,也就是数据源中使用SQL语句来选择我们所需要的数据字段,一般是直接对数据源中的数据库表直接进行操作。在设计器中我们把数据源分为两种,一种是服务器数据集,一种是报表数据集,两者被引用的范围不一样,下面我们以服务器数据集为例进行说明。

2. 数据库查询
选择服务器下服务器数据集,点击服务器数据集窗口的左上角的按钮,选择数据库查询,然后给数据库查询命名,接着我们就可以添加SQL查询了。

使用sql,选择好数据源后,我们就可以使用SQL对数据库表进行操作,选中查询编辑器,在其中输入SQL语句select * from Employees where EmployeeID = ${ID}。

这是一个带参数的SQL查询,"${"和"}"之间的ID即是参数,预览时输入参数ID=4的结果可以在预览组中看,实际就是执行了一个select * from Employees where EmployeeID=4的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),这个数值只有在点击(预览)按钮的时候才起作用,不会错误地作用到引用这个查询的报表模板文件中。

使用报表数据集的操作方法和服务器数据集类似,只是打开报表数据集对话框,接下来的操作和服务器数据集操作相同。二者的区别在于服务器数据集的配置信息保存在当前服务器的datasource.xml文件当中,当前服务器上面设计任意一张报表都可以使用该数据集,而报表数据集则将信息保存到当前的CPT文件当中,即只能适用于当前打开的这一张报表。

3. 视图查询
视图查询是指对定义好的数据源中的视图进行操作。

3.1 数据库查询
选择服务器下服务器数据集,点击服务器数据集窗口的左上角的按钮,选择数据库查询,然后给数据库查询命名,接着我们就可以添加视图查询等等。

3.2 使用视图查询
选择数据源后我们就可以使用SQL对视图查询进行操作。如下我们以FRDemo-视图数据库为例:

在查询编辑器中写sql,select * from 发货单.(发货单是某个视图查询的名字),然后点击预览可以看到视图查询引用成功。

注:小技巧,我们可以将数据连接中的表、视图直接拖动到查询编辑器中。

4. 模糊查询
在表下方有一块空白搜索框,它们用作模糊查询。例如想要搜索客户相关的表,在搜索框中填入客户二字,会进行自动搜索进行模糊匹配:

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关问题

相关资料

X社区推广