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

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

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


105051223.jpg

②选择JavaBeans set datasource


105242192.jpg

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

二、设置classpath


104832274.jpg

添加我们的JavaBean到classpath里面。

三、设置数据源

①选择JavaBean Datasource

输入Class name 然后单击 Read attributes

105612881.jpg

②选择需要的字段,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">

.表格的使用。

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


213629215.jpg

本人使用的例子如下:

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

②新建dataset、设定table的列数


214107686.jpg

下一步

214153868.jpg


214321401.jpg

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

如图所示:


214440650.jpg


下一步,选择需要的Fields,

214533463.jpg

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


214623721.jpg

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


214711775.jpg


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

页面如下所示:

213717374.jpg

切换到Table 1 选项卡

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

213834130.jpg

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

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

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

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

选择所有的Static Text 和Text Field,

右键选择Padding Add Borders

设置如下参数即可。

215307222.jpg

最后预览效果如图示:

215139783.jpg