前几节讲解了iReport的常见的应用,本节讲解一个比较实用的功能,实用JavaBean作为数据源,并结合Struts2来运行。并生成XML、HTML、PDF、XLS文档。

一、用iReport新建一个报表文件

①  前面的步骤省略,不再重复。跟着向导到Query这的时候,选择NewConnection


java wrappers 使用 jasper java_Source

②选择JavaBeans set datasource


java wrappers 使用 jasper java_Source_02

③选择Next,设置一个name 下面的不用管他。

二、设置classpath


java wrappers 使用 jasper java_java_03

添加我们的JavaBean到classpath里面。

三、设置数据源

①选择JavaBean Datasource

输入Class name 然后单击 Read attributes

java wrappers 使用 jasper java_java wrappers 使用_04

②选择需要的字段,Add selected field 即可。

在上一步中,有可能出现Read attributes,读取不出来属性的情况,一般请检查下面两点:a).Class 是不是选对了

       b).检查classpath

③进行报表设计,排列好字段。这步骤,前面的几节有详细的介绍。

四、和Struts2 整合

我们的iReport的数据源,这里取一个List集合,这个List集合,我们从Struts2中获取。

①导入所需jar包

 前面几节有介绍,再次不再赘述,需要注意的是,导入Jar包的时候要避免冲突

②配置Struts2配置文件




  1. <packagename="test"namespace="/report"extends="struts-default,jasperreports-default">
  2. <actionname="toHtml"class="totalViewAction"method="listTotalView">
  3. <resultname="success"type="jasper">
  4. <paramname="location">/web/report/groupScore/countView.jasper</param>
  5. <paramname="dataSource">listTotaltView</param>
  6. <paramname="format">HTML</param>
  7. </result>
  8. <resultname="error">
  9.                /error.jsp    
  10. </result>
  11. <resultname="input">
  12.                /error.jsp    
  13. </result>
  14. </action>
  15. <actionname="toPdf"class="totalViewAction"method="listTotalView">
  16. <resultname="success"type="jasper">
  17. <paramname="location">/web/report/groupScore/countView.jasper</param>
  18. <paramname="dataSource">listTotaltView</param>
  19. <paramname="format">PDF</param>
  20. </result>
  21. <resultname="error">
  22.                /error.jsp    
  23. </result>
  24. </action>
  25. <actionname="toXml"class="totalViewAction"method="listTotalView">
  26. <resultname="success"type="jasper">
  27. <paramname="location">/web/report/groupScore/countView.jasper</param>
  28. <paramname="dataSource">listTotaltView</param>
  29. <paramname="format">XML</param>
  30. </result>
  31. <resultname="error">
  32.                /error.jsp    
  33. </result>
  34. </action>
  35. <actionname="toXls"class="totalViewAction"method="listTotalView">
  36. <resultname="success"type="jasper">
  37. <paramname="location">/web/report/groupScore/countView.jasper</param>
  38. <paramname="dataSource">listTotaltView</param>
  39. <paramname="format">XLS</param>
  40. </result>
  41. <resultname="error">
  42.                /error.jsp    
  43. </result>
  44. </action>
  45. </package>

配置文件详解:

location:指定jasper的地址

dataSource:指定数据源的名称,即Struts2的Action里面的List集合

format:生成的报表的格式




  1. <actionname="toPdf"class="totalViewAction"method="listTotalView">
  2. <resultname="success"type="jasper">
  3. <paramname="location">/web/report/groupScore/countView.jasper</param>
  4. <paramname="dataSource">listTotaltView</param>
  5. <paramname="format">PDF</param>
  6. </result>
  7. <resultname="error">
  8.                /error.jsp    
  9. </result>
  10. </action>

extends后面需要添加jasperreports-default




  1. <packagename="test"namespace="/report"extends="struts-default,jasperreports-default">

.表格的使用。

①将表格组件拖入报表中,如图所示:


java wrappers 使用 jasper java_Source_05

本人使用的例子如下:

Summary部分,显示的就是表格!

②新建dataset、设定table的列数


java wrappers 使用 jasper java_java_06

下一步

java wrappers 使用 jasper java_数据源_07



java wrappers 使用 jasper java_List_08

这里有两种选择,可以手动输入Sql语句,也可以Design query,来设计查询语句。

如图所示:


java wrappers 使用 jasper java_Source_09


下一步,选择需要的Fields,

java wrappers 使用 jasper java_java_10

选择分组信息,也可以后面设计报表的时候添加。


java wrappers 使用 jasper java_java_11

自此,dataset已经设置完毕!如图所示:


java wrappers 使用 jasper java_Source_12


点击完成之后,自动跳转到了Table1选项卡,

页面如下所示:

java wrappers 使用 jasper java_数据源_13

切换到Table 1 选项卡

③设计出如图所示的表格。

java wrappers 使用 jasper java_数据源_14

这里最后面有个统计字段,

就是统计各单位的所有人数,方法如下,expression如下:


1. $F{unitAthleteView_manAthlete}+$F{unitAthleteView_femalAthlete}+$F{unitAthleteView_guide}+$F{unitAthleteView_coach}+$F{unitAthleteView_teamDoctor}

注意:默认的,表格是没有边框的,想要添加边框的话,请手动添加边框:具体操作如下:

选择所有的Static Text 和Text Field,

右键选择Padding Add Borders

设置如下参数即可。

java wrappers 使用 jasper java_数据源_15

最后预览效果如图示:

java wrappers 使用 jasper java_Source_16




转载于:https://blog.51cto.com/yzbxcf/1205551