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