iReport-JasperReport報表開發:使用主Dataset的fields欄位作為sub dataset的sql引數
阿新 • • 發佈:2019-02-05
使用的是JasperReport + iReport 5.0
在main dataset和sub dataset中都可以設定sql語句,在其設定的sql語句中,可以使用其dataset內部的parameter的引數,main dataset中的引數很好獲得,因為在填充的時候會傳一個string-object的map,這裡面就是parameters,而sub dataset的parameter的值需要傳輸進去,例子中是使用field的值作為sub
dataset的parameter的值,並使用這個parameter進行sql語句,並將讀取出的資料繪製成crosstab交叉報表,這樣就能生成級聯的報表了,具體的傳入方式在iReport中配置如下:
- 右鍵Report Inspector中的報表,選擇Add Dataset新增一個sub dataset
- 在這個新建的sub dataset中新增parameter,這個parameter將在sub dataset的sql中作為引數出現,它的值來自main dataset的field
- 在detail band
- 右鍵單擊這個detail band中的crosstab,選擇crosstab data,在底下Dataset run中選擇parameters標籤頁,新增第二部建立的parameter,並將值設為$F{XXX},這裡XXX是main dataset中需要用來作為sql引數的field的名字
- 右鍵第一步建立的sub dataset,選擇edit query,在其中編寫需要的sql,這裡可以使用第二部建立的引數,使用方式也是直接$P{XXX}即可