![零基础学Struts](https://wfqqreader-1252317822.image.myqcloud.com/cover/999/602999/b_602999.jpg)
12.4 带查询报表
前面设计的报表都是静态的报表,没有太多的实际意义。实际的报表都需要传入一些动态的内容,例如显示数据库中查询的结果。
12.4.1 配置数据源
首先创建一张数据表,其中包括userID、username、password、sex以及age等5个字段。其中userID为主键,并自动递增,如图12.21所示。
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0361_0002.jpg?sign=1738920101-CwVzxGw9akRrrkk911UnOQhPTccj0f9A-0-96c04aa3a11e5581de4be47328fa7d9a)
图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所示。
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0362_0001.jpg?sign=1738920101-Iy8sZycEDunZWPHT6VjFq5LF1lzImNsz-0-fd68917edff2565951cbc23a5cab10ed)
图12.22 数据源配置对话框
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0362_0002.jpg?sign=1738920101-1YGbh4Z0AARwuJESarZLHalqyzRGcyKA-0-da2c835550220154a90301e6db25b6da)
图12.23 “Connection proporties”对话框
单击“Next”按钮,打开JDBC配置对话框,如图12.24所示。其中的“Name”文本框用来输入该连接的名称,“JDBC Driver”下拉列表用来指定JDBC的驱动类,“JDBC URL”文本框用来输入JDBC的连接URL, “Server Address”文本框用来输入数据库服务器地址,“Database”文本框用来输入要被查询的数据库名称,“User Name”文本框用来输入数据库用户名,“Password”文本框用来输入数据库密码。
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0362_0003.jpg?sign=1738920101-s8QwjEkH95g8K4E89DWwXvc7NgF1YMeg-0-c526ba107a54afb83c229614d444f79d)
图12.24 “Connection proporties”对话框
完成JDBC连接配置后,单击“Test”按钮进行测试,如果提示“Connection test successful”则表示连接成功,如图12.25所示。
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0362_0004.jpg?sign=1738920101-iYRdb8Qxyc4C7UUb2ruvtccwOrx3jSxT-0-993cea8e6b58f931b04f041063a2de68)
图12.25 连接成功提示信息
12.4.2 使用向导来创建带查询的报表
可以通过向导的方式来创建带查询的报表,这种方式非常简单,但是缺乏灵活性。
选择主菜单上的“档案”→“报表精灵”选项打开报表向导对话框。该报表向导一共分5步。
❑ 第一步:配置连结/资料来源以及SQL查询语句,如“select * from user”,如图12.26所示。
❑ 第二步:根据需求选择加入字段,如图12.27所示。
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0363_0001.jpg?sign=1738920101-K4VSnWVZp0BX04SsvqKc2XvsdQJSMjbU-0-3557a2d242a056954020cc5cc8b224d7)
图12.26 配置连结/资料来源
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0363_0002.jpg?sign=1738920101-OQXpuXya1KGtIgr4DTAHpep9RC9fDzZ6-0-1912654a483fb6fcdfecff70fbc5e58a)
图12.27 选择加入字段
❑ 第三步:设置排序规则,这里选择按userID来排序,如图12.28所示。
❑ 第四步:配置布局方式以及模板,如图12.29所示。
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0363_0003.jpg?sign=1738920101-Moyc6dDBO7nkOAEWlx7KOJEn6FCJxbMZ-0-c52c7168bce5198e9337520bec724b88)
图12.28 设置排序规则
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0363_0004.jpg?sign=1738920101-SYmv3shXktvAWsMkcirQYK6McvK9gvWF-0-518f1b4774cda4b3644136d39cc4ea1d)
图12.29 配置布局方式以及模板
❑ 第五步:完成报表向导,如图12.30所示。
经过上面5步,则可自动生成报表设计文件,如图12.31所示。
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0363_0005.jpg?sign=1738920101-n3DdAG5U8xCjbYcqYkeZOGk4HKp7GxZV-0-070d52af58fb58a8da522fd24ce0b8e2)
图12.30 完成配置
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0363_0006.jpg?sign=1738920101-EPSq0IqdcpsqNG9ixwZwhkGuFUKNVSVj-0-76c4d7532654456429dbc8ea28635cd4)
图12.31 查看报表设计文件
编译并执行该报表,使用JRViewer预览该报表,如图12.32所示。
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0364_0001.jpg?sign=1738920101-68nhrSPk9L6t0ZUktkOhh0Kh3b9C2wgl-0-84ad4e631136e6aeba86c01e63f1b371)
图12.32 使用JRViewer预览报表
12.4.3 手动创建带查询的报表
前面介绍的是使用向导来创建报表,虽然很方便,但是缺乏灵活性。下面来看如何手动创建带查询的报表。
选择主菜单上的“Date”→“设置活动链接”选项,选择前面配置的数据源,单击“确定”按钮完成配置,如图12.33所示。
选择主菜单上的“Date”→“报表查询”选项,如图12.34所示,在该对话框中输入相应的查询语句,单击“OK”按钮完成配置。
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0364_0002.jpg?sign=1738920101-9aIaALeAfS3eOGxugG6T4BhWUjYJfYGe-0-ec372ced23672a5fc50801f6f1da4c6d)
图12.33 设置活动链接
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0364_0003.jpg?sign=1738920101-mq6wGPWOLaS5dXeZ2w1rVtVUnD9s4E5D-0-207913b0b65f689575bd1218bfe76442)
图12.34 输入相应的查询语句
通过工具栏添加动态文本,选择“Edit Expression”,即可为该动态文本编辑表达式。同样可以直接双击下面列出的字段,这样将添加相应字段的表达式。当表达式文本颜色显示为蓝色则表示不正确,当表达式显示为绿色时表示正确,如图12.35所示。
也可以使用鼠标右键单击动态文本框,选择“属性”选项。通过“Text Field”选项卡的“Test Field Expression”命令来配置表达式,如图12.36所示。
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0365_0001.jpg?sign=1738920101-ZeahuWqBGW911uzEYvsHL23z7Fx1LCV1-0-61368d261df541318c0f2b8905432a96)
图12.35 为动态文本编辑表达式
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0365_0002.jpg?sign=1738920101-vHzSS0F01n8ns5XSEJqlgmHy1gDuU0lU-0-fa87cf03a7db160ea8f886d2f5fbfeb0)
图12.36 为动态文本编辑表达式
经过如上操作,添加多个动态文本框,并配置好相应的表达式,如图12.37所示。
编译并执行该报表,使用JRViewer预览该报表,如图12.38所示。
![](https://epubservercos.yuewen.com/58F6E3/3590816703512601/epubprivate/OEBPS/Images/figure_0365_0003.jpg?sign=1738920101-JjhTRh1hvSysH72f14MaYzX04uNfvPUf-0-ea5834bb6de692afc8f18140cdd8adaf)
图12.37 设计报表