前幾節講解了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
設置如下參數即可。
最後預覽效果如圖示: