使用Jaspersoft iReport制作包含子報表的報表
在使用Jaspersoft iReport創(chuàng)建復雜報表時,我們常常需要將子報表的內(nèi)容展示到父報表中。本文將介紹如何使用iReport制作一個簡單的包含子報表的報表。1. 連接到示例數(shù)據(jù)庫首先,我們需要
在使用Jaspersoft iReport創(chuàng)建復雜報表時,我們常常需要將子報表的內(nèi)容展示到父報表中。本文將介紹如何使用iReport制作一個簡單的包含子報表的報表。
1. 連接到示例數(shù)據(jù)庫
首先,我們需要將iReport連接到一個示例數(shù)據(jù)庫。具體的連接方法可以參考經(jīng)驗“Jaspersoft iReport怎樣連接oracle數(shù)據(jù)庫”。在數(shù)據(jù)庫中,我們設置了兩個表:顏色組表和子顏色表。顏色組表中存儲著多種顏色,而每個顏色組又有多個子顏色保存在子顏色表中。
2. 新建父報表
接下來,我們需要新建一張父報表,并命名為"Test"。
3. 編輯父報表的SQL查詢語句
在父報表中,我們需要編輯SQL查詢語句以提取數(shù)據(jù)。例如,我們可以使用以下語句提取所有數(shù)據(jù)項:select * from 。將需要在父報表中展示的數(shù)據(jù)項拖動到Detail欄中。
4. 預覽父報表
通過預覽功能,我們可以查看父報表是否能夠正常顯示顏色組數(shù)據(jù)。
5. 新建子報表
現(xiàn)在,我們需要新建一張子報表,并命名為"Test_sub"。在子報表中,將除Detail欄外的其他欄的高度都設為0,因為子報表只需要在父報表的Detail欄中展示子顏色數(shù)據(jù)。
6. 編輯子報表的SQL查詢語句
在子報表中,我們需要編輯SQL查詢語句以提取數(shù)據(jù)。例如,我們可以使用以下語句提取所有數(shù)據(jù)項:select * from _DTL。將需要在子報表中展示的數(shù)據(jù)項拖動到Detail欄中。
7. 關聯(lián)父報表和子報表
現(xiàn)在,我們需要將父報表的數(shù)據(jù)與子報表的數(shù)據(jù)進行關聯(lián)。當父報表展示某個顏色組時,子報表應該展示該顏色組的子顏色。為了實現(xiàn)這個關聯(lián),我們需要在子報表中增加一個參數(shù)(STKATTR1_ID),并且由父報表傳遞給子報表。
8. 修改子報表的SQL查詢語句
為了根據(jù)傳遞的參數(shù)提取數(shù)據(jù),我們需要修改子報表的SQL查詢語句。將上面剛剛增加的參數(shù)(STKATTR1_ID)拖動到SQL查詢語句中,并設置條件,例如:select * from _DTL where STKATTR1_ID $P{STKATTR1_ID}。
9. 添加子報表到父報表
在父報表中添加子報表組件,從組件面板中拖動子報表組件到父報表中。在彈出的向導中選擇“只添加子報表組件”。
10. 設置子報表組件的參數(shù)
選擇父報表中的子報表組件,設置其Parameters屬性,使得父報表能夠向子報表傳遞STKATTR1_ID數(shù)據(jù)項。
11. 設置子報表組件的Subreport Expression屬性
選擇父報表中的子報表組件,設置其Subreport Expression屬性,將子報表的文件名設置為"Test_sub.jasper"。
12. 設置子報表組件的Connection屬性
選擇父報表中的子報表組件,設置其Connection type屬性為"Use a connection expression",并將Connection Expression設置為"REPORT_CONNECTION"。
13. 預覽含子報表的報表
至此,一個含子報表的報表已經(jīng)完成。通過預覽功能,我們可以查看父報表中數(shù)據(jù)展示的效果,包括子報表中的子顏色數(shù)據(jù)。
這篇文章介紹了如何使用Jaspersoft iReport制作一個包含子報表的報表。通過對父報表和子報表的設置,我們能夠實現(xiàn)在父報表中展示子報表的內(nèi)容,從而創(chuàng)建更加復雜和豐富的報表。