iReport學習筆記
iReport學習筆記(1)
工作上還滿常需要用到iReport來製作一些報表,但都是在前人打好的基礎上再做增修,沒有自己從頭來一遍,總感覺對iReport的理解很有限,所以就藉這個機會在網路上找了一些教學來看,並開這一系列文章來紀錄自己學到了些什麼
下載、安裝與執行
下載連結
可以在這邊找到各個版本的下載連結,下載下來之後就照一般軟體的安裝方式安裝
執行環境
我的作業系統是Windows 10,安裝的版本是iReport 5.5.0(之後會提到為什麼不裝最新版),JDK安裝的是1.8,但是
iReport不支援1.8(開啟後會直接跳掉),所以要額外再安裝1.7
順帶一提我的資料庫用的是Oracle 11g XE
執行
因為系統的環境變數設的JAVA_HOME跟Path都是指向JDK 1.8的路徑,所以要告訴iReport我們的JDK 1.7裝在哪裡,打開安裝路徑\Jaspersoft\iReport-5.5.0\etc\ireport.conf,找到有一行
#jdkhome="/path/to/jdk"
將其替代成
jdkhome="D:\jdk1.7.0_79" // 填實際的安裝路徑
存檔後即可正常執行
資料庫連線及基本架構
設定資料庫連線
這塊我也搞了很久才搞定,明明已經照網路寫的方式把JDBC Driver放到所有能放的地方了,但之前用5.6.0版的時候老是說Classpath找不到Driver,後來看到這篇才發現到5.6.0版跟Windows 10不合,改裝5.5.0版就好了,不過這兩個版本都是2013~2014年推出的,以後如果有出更新的作業系統說不定會有更多問題...
首先準備好JDBC的Driver,如果是用MySQL應該就可以直接使用了,iReport裡有內建。對應到我使用的資料庫版本的Driver是ojdbc6.jar,網路上說有三個方式可以讓iReport吃到JDBC的Driver,不過我試了一輪只有一種方法可以用,不知道是怎麼回事...不過能用就好XD
從上方的menu找到工具→選項,選擇Classpath,點選Add JAR,選擇Driver擺放的地方,設定完成後如圖所示
接著點選Report Datasources的按鈕,在彈出的Connections/Datasources視窗中點選New
選擇Database JDBC connection後按Next
- Name:可以隨便取一個
- JDBC Driver:從下拉式選單選擇Oracle (oracle.jdbc.driver.OracleDriver),如果Driver有設定好,選項的字會是黑色的,沒設定好就是紅色的
- JDBC URL:格式是
jdbc:oracle:thin:@localhost:1521:DatabaseName,如果不知道DatabaseName要輸入什麼的話,可以找找oraclexe/app/oracle/product/11.2.0/server/network/ADMIN/tnsnames.ora這個檔案,在檔案中找到下面這段(其他版本的Oracle可能會不一樣,但主要是要看SERVICE_NAME的內容所以沒差)
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = XXXXXX)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
將JDBC URL改為jdbc:oracle:thin:@localhost:1521:XE即可
- Username/Password:連接資料庫的帳號密碼
設定好後先按一下Test,如果成功了就可以按Save了,到此資料庫設定結束,接著就來建立報表吧!
創立檔案
從上方的menu找到檔案→新增,隨便選一個模板,比如說選擇Blank A4 Landscape
選定模板後底下有兩個按鈕,如果點選「Open this Template」,只有設定檔名跟檔案位置就沒了,點選「Launch Report Wizard」則還會有資料庫的相關設定
SQL指令如果有需要修改的話可以點紅框框起來的按鈕,在這介面中下SQL指令後可以選擇要把哪些欄位加入檔案中,也可以看資料庫中的資料
編輯檔案
接著就來在檔案中加入一些內容,可以看到畫面右方有一個名為「調色板」的區塊
裡面的元素都是可以直接拖到畫面上擺放的,首先按著「Static Text」(靜態的文字)拖到畫面上,並對其做編輯,我多弄了一些,就像下圖這樣
接著按著「Text Field」(變數相關的文字)拖到畫面上做編輯,或是從左邊Report Inspector中的Fields底下把要用的變數拖到畫面上也可以。整個編輯完調一下位置跟大小
報表架構
組成
報表被垂直分成多個部分,每個部分稱為Band,在使用上可以自由增加或刪除各個Band,以下針對每個Band做簡略的介紹
- Title:標題,只會在整個檔案的第一頁最上方出現
- Page Header:頁首,在檔案的每一頁上面都會出現,除了第一頁是在Title底下以外,其他頁面的頁首都會在最上面
- Column Header:表頭,一般拿來放欄位名稱
- Detail:報表的內容,實際要呈現的內容放在這邊
- Column Footer:表尾
- Page Footer:頁尾,最後一頁不會出現
- Last Page Footer:最後一頁的頁尾,最後一頁才會出現
- Summary:出現在報表最後一頁的Detail底下,可以放一些統計的東西
元素
報表中會出現的元素大概有以下幾種,每個元素基本上都有高度、寬度、位置等屬性,還有一些屬性是特有的。每個元素不能跨在多個Band中間,會發生例外錯誤
- Line、Rectangle、Ellipse(線段、矩形、橢圓形等圖形)
- Static Text、Text Field(文字類)
- Image(圖像)
- Subreport(子報表)
- Crosstab
- 比較特別的物件,如Chart、Barcode...等














