前几节讲解了iReport的常见的应用,本节讲解一个比较实用的功能,实用JavaBean作为数据源,并结合Struts2来运行。并生成XML、HTML、PDF、XLS文档。
一、用iReport新建一个报表文件
① 前面的步骤省略,不再重复。跟着向导到Query这的时候,选择NewConnection
②选择JavaBeans set datasource
③选择Next,设置一个name 下面的不用管他。
二、设置classpath
添加我们的JavaBean到classpath里面。
三、设置数据源
①选择JavaBean Datasource
输入Class name 然后单击 Read attributes
②选择需要的字段,Add selected field 即可。
在上一步中,有可能出现Read attributes,读取不出来属性的情况,一般请检查下面两点:a).Class 是不是选对了
b).检查classpath
③进行报表设计,排列好字段。这步骤,前面的几节有详细的介绍。
四、和Struts2 整合
我们的iReport的数据源,这里取一个List集合,这个List集合,我们从Struts2中获取。
①导入所需jar包
前面几节有介绍,再次不再赘述,需要注意的是,导入Jar包的时候要避免冲突
②配置Struts2配置文件
<packagename="test"namespace="/report"extends="struts-default,jasperreports-default">
<actionname="toHtml"class="totalViewAction"method="listTotalView">
<resultname="success"type="jasper">
<paramname="location">/web/report/groupScore/countView.jasper</param>
<paramname="dataSource">listTotaltView</param>
<paramname="format">HTML</param>
</result>
<resultname="error">
/error.jsp
</result>
<resultname="input">
/error.jsp
</result>
</action>
<actionname="toPdf"class="totalViewAction"method="listTotalView">
<resultname="success"type="jasper">
<paramname="location">/web/report/groupScore/countView.jasper</param>
<paramname="dataSource">listTotaltView</param>
<paramname="format">PDF</param>
</result>
<resultname="error">
/error.jsp
</result>
</action>
<actionname="toXml"class="totalViewAction"method="listTotalView">
<resultname="success"type="jasper">
<paramname="location">/web/report/groupScore/countView.jasper</param>
<paramname="dataSource">listTotaltView</param>
<paramname="format">XML</param>
</result>
<resultname="error">
/error.jsp
</result>
</action>
<actionname="toXls"class="totalViewAction"method="listTotalView">
<resultname="success"type="jasper">
<paramname="location">/web/report/groupScore/countView.jasper</param>
<paramname="dataSource">listTotaltView</param>
<paramname="format">XLS</param>
</result>
<resultname="error">
/error.jsp
</result>
</action>
</package>
配置文件详解:
location:指定jasper的地址
dataSource:指定数据源的名称,即Struts2的Action里面的List集合
format:生成的报表的格式
<actionname="toPdf"class="totalViewAction"method="listTotalView">
<resultname="success"type="jasper">
<paramname="location">/web/report/groupScore/countView.jasper</param>
<paramname="dataSource">listTotaltView</param>
<paramname="format">PDF</param>
</result>
<resultname="error">
/error.jsp
</result>
</action>
extends后面需要添加jasperreports-default
<packagename="test"namespace="/report"extends="struts-default,jasperreports-default">
.表格的使用。
①将表格组件拖入报表中,如图所示:
本人使用的例子如下:
Summary部分,显示的就是表格!
②新建dataset、设定table的列数
下一步
这里有两种选择,可以手动输入Sql语句,也可以Design query,来设计查询语句。
如图所示:
下一步,选择需要的Fields,
选择分组信息,也可以后面设计报表的时候添加。
自此,dataset已经设置完毕!如图所示:
点击完成之后,自动跳转到了Table1选项卡,
页面如下所示:
切换到Table 1 选项卡
③设计出如图所示的表格。
这里最后面有个统计字段,
就是统计各单位的所有人数,方法如下,expression如下:
$F{unitAthleteView_manAthlete}+$F{unitAthleteView_femalAthlete}+$F{unitAthleteView_guide}+$F{unitAthleteView_coach}+$F{unitAthleteView_teamDoctor}
注意:默认的,表格是没有边框的,想要添加边框的话,请手动添加边框:具体操作如下:
选择所有的Static Text 和Text Field,
右键选择Padding Add Borders
设置如下参数即可。
最后预览效果如图示: