ireport 循环_iReport制作报表1:iReport Designer的使用
前些日子lz學著用iReport來制作EXCEL報表,雖說制作的報表結構比較簡單,但是還是要記錄一下,以免忘掉。
使用iReport制作報表分為兩個部分:iReport Designer制作模板,Java編碼。本文主要介紹iReport Designer的用法。
lz使用的是Jaspersoft iReport Designer 5.6.0。下載安裝啥的lz就不說了,相信大家自己都能搞定。
1.創建一張空報表
lz使用的是第一個模板,其它的模板lz也沒有使用過,大家可以自己試一試。
報表的結構共分為7個部分,如上圖所示。
Title:報表總標題,一個報表可能有很多頁面組成,Title標題是只在第一頁顯示的標題。
Page Header:本帶區可以放置一些報表的頁眉信息,如報表標題、打印日期等。
Column Header:用于放置表頭表格的表頭信息。
Detail:放置數據內容的地方,能自動循環顯示數據庫里面所有記錄。
Column Footer和Page Footer:帶區跟Page Header和Column Header作用想對應。
Summary:本帶區主要用作報表的統計,統計的結果將顯示在所有報表的最后一頁。
報表文檔本身有些常用的屬性,如改變報表頁面的大小,設置頁面的顯示方式,我們可以對其進行設置。
選中左側“報表文檔結構欄”中結構樹頂端的報表名稱,右側會出現報表屬性:
我們使用Page size屬性將寬高設置為800×600,使用Margins屬性,將報表周圍的白框去掉(都設置為0)。
以此類推,報表中的每個部分都可以進行設置,只要點擊結構樹中相應的內容,就可以在右側屬性欄中進行修改。
2.使用組件構造報表
下面介紹幾個常用組件:
Rectangle:用于畫表格的樣式,整個表格的樣式使用次組件做出來的,本控件表現為一個黑色矩形框,多個黑色矩形框排在一起可以組合出來任何想要的報表樣式。
Static Text:靜態文本框,報表上顯示的靜態文本,都是由它完成的,主要用于顯示報表標題、表頭的靜態文本。
Text Field:報表最主要最常用的控件,主要用于呈現數據庫里面字段的值。
Subreport:子報表,在制作一些稍微復雜的報表中會用到,在后面的博文中會專門講到。
(1)使用Rectangle拼出報表的基本結構:
(2)使用Static Text添加標題及表頭信息:
(3)使用Text Field添加要顯示的數據字段:
那$F{}有什么作用呢?接下來為大家介紹。
3.連接數據源
報表的結構大體上已經完成,下一步就是連接數據源了。iReport可以配置的數據源有很多種,lz主要使用了JDBC以及JavaBean。本文中主要介紹如何使用JDBC數據源,而在后面的博文中,將介紹JavaBean數據源。
創建數據源,我們選擇Database JDBC connection
下一步是連接數據庫的配置,大家根據自己的數據庫配置來填寫,這里就不贅述了。
數據可配置好以后,我們就可以查詢報表中所要展示的數據信息了。
創建SQL語句,查詢出我們所要的字段。
這里的字段名稱,要與剛才定義的$F{}的參數名稱相一致,這樣才能將數據與Text Field綁定。還需要注意的是,我們創建了一個parameter名為campaignid,這個是要輸入的參數(如果是Java代碼調用該模板,也需要傳入該參數),根據這個id查詢出所要的結果。現在來預覽下報表:
4.計算總計
數據已經查出,現在就差統計計算了。我們用variable來完成這個功能。
我們新建一個variable名為impression_sum,作為impression的總計,然后在右側的屬性欄中配置它的表達式Variable Expression。
還要設置一下初始值Initial Value Expression為0,設置Variable Class為java.math.BigDecimal,設置Increment type為Report。
與此類似,我們分別創建點擊數總計click_sum和總花費總計cost_sum。然后根據以上3個總計值,我們計算出平均點擊率clickrate_avg,表達式為($V{clicks_sum}/$V{impression_sum}).setScale(4,BigDecimal.ROUND_HALF_UP),和平均點擊價格clickprice_avg,表達式為($V{cost_sum}/$V{clicks_sum}).setScale(2,BigDecimal.ROUND_HALF_UP)。讓我們來預覽一下:
錯誤信息中描述Double類中沒有setScale(Integer, Integer)這個方法,肯定是$V{cost_sum}/$V{clicks_sum}這個表達式的結果是double類型。
這里的$F{cost}類型為java.lang.Double,我們將其改為java.math.BigDecimal,再次進行預覽:
統計的結果都出來了,報表模板基本完成。在下一篇博文中,lz將介紹怎樣通過Java代碼調用模板來生成EXCEL報表。
總結
以上是生活随笔為你收集整理的ireport 循环_iReport制作报表1:iReport Designer的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JSP网络聊天室
- 下一篇: Docker:镜像加速器