使用ireport+jasperReport報表生成
一、報表樣式設計
2、開啟ireport Design並新建一個blank A4的模板,如下所示,預設定義了頁面的不同結構
3、我的目標報表需要有報告的title和一些統計的表格資料,而表格title我希望引數如,所以我在Parameters節點下添加了一個title的引數,然後將改引數拖動到右側視窗“Title”區域上,調整引數框的位置和大小。
另外我還希望顯示一個執行時間,所以開啟元件面板,將“Current Date”的元件也拖動到右側視窗的Title區域。
4、報表內容部分我希望填充一些統計的表格資料,首先需要設定列頭,因為這個列頭是不變的,所以我們開啟元件面板,拖動幾個“static text”元件到“column header”區域,並進行排版。
表格內容我們從java程式碼中傳入,所以需要定義幾個引數,我們在“Fields”下新建幾個Field並進行重新命名。將建好的field引數拖到右側視窗的“Detail 1”區域並進行排版。
因為有時候資料會出現因為過長而被截斷的現象,所以我們需要再對Details下的field屬性進行設定,選擇某一個field,然後將“Stretch with overflow”勾選,將該區域內其他的所有field的“stretch type”全部修改為“relative to band height”。
5、將xml compile為jasper格式,最終整體樣式如下:
二、jasper使用報表模板檔案並生成最終報表
1、引入jasper的依賴
<dependency>
<groupId>net.sf.jasperreports</groupId>
<artifactId>jasperreports</artifactId>
<version> 6.0 . 0 </version>
</dependency>
|
2、根據jasper報表的Field設計,新建一個java類,並且設定與之名字一樣的成員,生成所有這些成員對應的set和get方法。
public class CrashBean
{
private String
hash;
private String
number_o;
private String
user_o;
private String
number_l;
private String
user_l;
private String
imei;
private String
product;
private String
rom;
private String
version;
private String
call;
private String
stack;
private String
path;
public CrashBean()
{
super ();
}
public CrashBean(String
hash, String number_o, String user_o,
String
number_l, String user_l, String imei, String product,
String
rom, String version, String call, String stack, String path) {
super ();
this .hash
= hash;
this .number_o
= number_o;
this .user_o
= user_o;
this .number_l
= number_l;
this .user_l
= user_l;
this .imei
= imei;
this .product
= product;
this .rom
= rom;
this .version
= version;
this .call
= call;
this .stack
= stack;
|