
12.4 带查询报表
前面设计的报表都是静态的报表,没有太多的实际意义。实际的报表都需要传入一些动态的内容,例如显示数据库中查询的结果。
12.4.1 配置数据源
首先创建一张数据表,其中包括userID、username、password、sex以及age等5个字段。其中userID为主键,并自动递增,如图12.21所示。

图12.21 user数据表字段结构
为了能够查询到数据,需要为该表添加多条记录。
insert into user values(null, ’张三’, '123456567' , ’男’,20); insert into user values(null, ’李四’, '123456567' , ’男’,20); insert into user values(null, ’王五’, '123456567' , ’男’,20); insert into user values(null, ’赵六’, '123456567' , ’男’,20);
接下来配置数据源。选择主菜单上的“Date”→“连结/资料来源”选项打开数据源配置对话框,如图12.22所示。
单击其中的“New”按钮,打开“Connection proporties”对话框用来配置连接资源,这里选择“Datebase JDBC Connection”选项,表示使用JDBC来进行连接,如图12.23所示。

图12.22 数据源配置对话框

图12.23 “Connection proporties”对话框
单击“Next”按钮,打开JDBC配置对话框,如图12.24所示。其中的“Name”文本框用来输入该连接的名称,“JDBC Driver”下拉列表用来指定JDBC的驱动类,“JDBC URL”文本框用来输入JDBC的连接URL, “Server Address”文本框用来输入数据库服务器地址,“Database”文本框用来输入要被查询的数据库名称,“User Name”文本框用来输入数据库用户名,“Password”文本框用来输入数据库密码。

图12.24 “Connection proporties”对话框
完成JDBC连接配置后,单击“Test”按钮进行测试,如果提示“Connection test successful”则表示连接成功,如图12.25所示。

图12.25 连接成功提示信息
12.4.2 使用向导来创建带查询的报表
可以通过向导的方式来创建带查询的报表,这种方式非常简单,但是缺乏灵活性。
选择主菜单上的“档案”→“报表精灵”选项打开报表向导对话框。该报表向导一共分5步。
❑ 第一步:配置连结/资料来源以及SQL查询语句,如“select * from user”,如图12.26所示。
❑ 第二步:根据需求选择加入字段,如图12.27所示。

图12.26 配置连结/资料来源

图12.27 选择加入字段
❑ 第三步:设置排序规则,这里选择按userID来排序,如图12.28所示。
❑ 第四步:配置布局方式以及模板,如图12.29所示。

图12.28 设置排序规则

图12.29 配置布局方式以及模板
❑ 第五步:完成报表向导,如图12.30所示。
经过上面5步,则可自动生成报表设计文件,如图12.31所示。

图12.30 完成配置

图12.31 查看报表设计文件
编译并执行该报表,使用JRViewer预览该报表,如图12.32所示。

图12.32 使用JRViewer预览报表
12.4.3 手动创建带查询的报表
前面介绍的是使用向导来创建报表,虽然很方便,但是缺乏灵活性。下面来看如何手动创建带查询的报表。
选择主菜单上的“Date”→“设置活动链接”选项,选择前面配置的数据源,单击“确定”按钮完成配置,如图12.33所示。
选择主菜单上的“Date”→“报表查询”选项,如图12.34所示,在该对话框中输入相应的查询语句,单击“OK”按钮完成配置。

图12.33 设置活动链接

图12.34 输入相应的查询语句
通过工具栏添加动态文本,选择“Edit Expression”,即可为该动态文本编辑表达式。同样可以直接双击下面列出的字段,这样将添加相应字段的表达式。当表达式文本颜色显示为蓝色则表示不正确,当表达式显示为绿色时表示正确,如图12.35所示。
也可以使用鼠标右键单击动态文本框,选择“属性”选项。通过“Text Field”选项卡的“Test Field Expression”命令来配置表达式,如图12.36所示。

图12.35 为动态文本编辑表达式

图12.36 为动态文本编辑表达式
经过如上操作,添加多个动态文本框,并配置好相应的表达式,如图12.37所示。
编译并执行该报表,使用JRViewer预览该报表,如图12.38所示。

图12.37 设计报表