1. 程式人生 > >iReport-JasperReport報表開發:使用JRDataSource填充含有SubDataset的報表

iReport-JasperReport報表開發:使用JRDataSource填充含有SubDataset的報表

使用的是iReport +jasperReport  5.0,這裡主要以crosstab為例,在crosstab使用subdataset的情況下,使用JRDataSource進行填充的情況下的配置過程以及填充時需要注意的地方 在Java中使用JRDataSource填充含有Sub Dataset的報表,在iReport中的配置過程如下:
  1. 在一個現有的報表上,新建一個parameter,這個parameter將作為sub dataset的資料來源,設定這個parameter的名字,如CrosstabDataSource,設定其型別為Object
  2. 右鍵單擊Report Inspector中的報表,選擇Add Dataset,新增一個sub dataset,選擇empty dataset,設定其名字如CrosstabDataset
  3. 在這個sub dataset中新增上所需要的fields欄位
  4. 在summary band中利用第3步新增的fields欄位建立一個Crosstab,其Dataset選擇為第2步建立的sub datset,比如我這選擇CrosstabDataset
  5. 右鍵點選Report Inspector中的summary 中剛剛建立的crosstab,選擇CrosstabData,在彈出的面板中下面的dataset run中選擇connection/datasource exp標籤頁,選擇裡面的的Use datasource expression,並將其設為$P{xxxx},xxxx為第一步建立的parameter的名字
這樣在ireport中的配置就完成了,在java中使用JasperFillManager填充時需要注意兩點
  1. 將sub dataset所需要用的JRDataSource,新增到Parameters的map中,名字必須與iReport中配置的parameter的名字相同
  2. 若主dataset沒有任何資料,也必須填充一個JREmptyDataSource,不能為null,這個類可以直接new一個, 否則填充將會無效