Upload
seatof
View
12.090
Download
2
Embed Size (px)
DESCRIPTION
iReport實做練習part(1) 包含資料庫設定 連線設定 簡單的範例實做
Citation preview
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 1
目目目目 錄錄錄錄
壹、認識 iReport
一、下載 iReport 軟體……………………………………………….……2
二、iReport環境安裝………………………………………………………3
三、認識 iReport 的環境………………………………………………….4
貳、使用 iReport
一、新增報表……………………………………………………………….5
二、常用按鈕……………………………………………………………….9
三、建立連接資料庫的方式……………………………………………...10
四、設計第一個 iReport 報表 ………………………………………….13
五、更進階的報表設計…………………………………………………...21
參、編譯器設計與 iReport 關聯
一、檢查所需的檔案……………………………………………………...24
二、撰寫報表程式………………………………………………………...26
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 2
壹、認識 iReport
一、下載 iReport 軟體
連結到官網抓程式 http://jasperforge.org/sf/projects/ireport→點選 Download
抓取需要使用的版本 (目前我在使用的是 1.3.2) 下載 .exe的選項
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 3
二、iReport環境安裝
安裝程式(只要一直按 next就會幫你裝好嚕)
安裝完成後點說面的圖案就可以啟動 iReport
三、認識 iReport 的環境
在中央最大區域的地方,即是 iReport 的工作區域,可供放置各項靜態、動態等
文字;在左邊則是開啟的檔案列表,與報表結構的內容;下方則是 iReport 編譯
後,會出現的訊息視窗,當編譯發生錯誤時,則由這個區域來得知錯誤,較常發
生的錯誤,可能是型態的錯誤;右側是物件的屬性與對應的 Library。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 4
貳、使用 iReport
一、新增報表
由左上角的圖示,點下即可新增一個新的工作報表。
開啟後,會出現這個視窗,可以依您的需要來更改設定值,在 [Page Margin] 的
地方,是上下左右的邊界設定。
新增報表
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 5
再來,建議切換至 [More…] 的選擇頁中,進行一些設定。
即“如果沒有資料時”的設定,建議將原本為[NoPages]的選項改為
[AllSectionsNoDetail]的選項。這樣當沒有資料時,才不會是一片白白空空的報表。
再者,上方的報表名稱,也建議改成與檔名相同的名稱,這個名稱會與產生編譯
的 .java檔案有關。
接下來,就先將檔案儲存,檔名改為 TestiReport.jrxml。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 6
在工作視窗中,可以看到其中有 Title ,PageHeader ……等等的橫條的方格。
Title : 報表的表頭。
PageHeader : 報表的頁首。
ColumnHeader : 報表的行首,通常用來定義行的欄位名稱。
Detail : 報表的內容。
ColumnFooter : 報表的行尾,可用來告知報表的一些參數,諸如頁碼等。
PageFooter : 報表的頁尾。
LastPageFooter : 最後頁的頁尾。
Summary : 用來計算用。
此頁,即秀出以 iReport 實作的畫面定義。
表頭
頁首
行首
內容
行尾
頁尾
最後的頁尾
總和等、用來計算
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 7
若是,正要實作的報表比較簡單,可能某些是不需要的分類,則可以按下滑鼠的
右鍵,即會出現 的 pop 式選單,請選擇 [Band properties]。
點下後即會出現上圖,比如要將 PageHeader 的頁首不要顯示出來,即將
[Band Height] 的高度 設為 [ 0 ]。最後,按 [x] 後離開,則 PageHeader 就
不會顯示在 工作區域上。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 8
二、常用按鈕
:直線工具,可用這個來區分出如報表的區域呈現。
:矩形工具,以矩形方塊來繪出的。
:圓型工具,可畫出圓形。
:靜態文字,例如前二頁的“服務報價單”,即是用靜態文字顯示的。
:動態文字,可顯示如由資料庫取出的資料值。
:圖形工具,可以將圖形檔來加入報表。
:編寫 SQL Script 語法敘述的地方。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 9
三、建立連接資料庫的方式
� 設定 classpath的驅動
1. 先設定 classpath
2. 新增 JAR檔
3. 根據你要連的資料庫加入他的 JAR檔
例如 oracle 就需要 ojdbc14.jar
※ 可以到下面的網頁去抓
http://download123.mediafire.com/mzn2j2cdodwg/aycyo9bgtzt/ojdbc14.jar
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 10
� 設定資料庫聯結
1. 點資料→連結/資料來源
2. 新增
3. 選擇你要的連線方式→再按 NEXT
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 11
4. 設定資料庫的連結細節
name:新建連線的名稱
JDBC Driver:你要用的驅動選擇(我用 oracle)
JDBC URL:自動顯示 URL
Sever Address:IP位置或資料庫位址(我用本端位置)
Database:資料庫名稱 (我用的是 XE)
<TIP>記得按下記得按下記得按下記得按下Wizard 他會自動修改到他會自動修改到他會自動修改到他會自動修改到 URL
User Name:資料庫專案的名稱
Password:資料庫專案的密碼
5. 按下測試連線會顯示是否成功
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 12
四、設計第一個 iReport 報表
首先設計您的工作區域,將不要的工作區將之 [Band Height] 設為[0],即可隱
藏 不要的區域。以本例,只留下 Title、ColumnHeader、Detail、ColumnFooter 這
幾 個工作區域。
再來,有了資料庫連線後,必需要指定這個 iReport 報表使用哪一個資料庫連線。
請選 [建立]→ [設定動態連結]。
選好後,請按 [確定] 繼續。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 13
再來,按下 按鈕,叫出編寫 sql的畫面。
點選[Query designer]
選取對應的資料庫 (我選擇的是 PT的資料庫)
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 14
對需要的 Table點兩下或出現在右邊的視窗。 (我選擇 VENDER)
勾選需要用到的欄位,再按[OK]。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 15
顯示 SQL與選擇的欄位跟型態,再按下[OK]即可。
來加入一個靜態文字。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 16
接著,按下滑鼠右鍵,會出 現如圖的功能表,請點選[屬性]來設定其它的屬性。
在這個靜態文字中,打入 “供應商清單” 五個中文字。
選擇 [Font] 來更改字型,如此一來,中文字才能完整的呈現。
其中 [Font name] 表示在 iReport 中所顯示的字體,可選擇細明體等。
[PDF font name] 則是在 Acrobat PDF Reader 中所顯示的字體,請選擇
MHei-Medium 字體。 另外,再於最下方的 [PDF Encoding] 中 設為
UniCNS-UCS2-H(Chinese traditional)的編碼,並將 [PDF Embedded] 打勾。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 17
接著請以相同的方法,在 ColumnHeader 中,將靜態文字的欄位一一補上。
配置的畫面如下圖:
到此為止,則完成了靜態文字的配置工作。
緊接著,要來配置真正的資料表中的內容。這個會與取出的 sql 語句相關。
SELECT
VENDER."VD_NO" AS VENDER_VD_NO,
VENDER."VD_NAME" AS VENDER_VD_NAME,
VENDER."MANAGER" AS VENDER_MANAGER
FROM
"PT"."VENDER" VENDER
這樣的 sql 語法,會取出 VENDER_VD_NO, VENDER_VD_NAME,
VENDER_MANAGER 這三個欄位。那麼就在 Detail 的畫面上增加三個
TextField Tool 的工具。 請按 來增加 TextField Tool。如下圖所示:
拖曳 Library中 Fields內的欄位放入在表單中。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 18
到此,可以先以 iReport 來進行測試。
在畫面的右手邊,有這三個一組的小圖示,左邊的是編譯這個
iReportXml 的檔案,中間的是跑出畫面的靜態文字處理,不包含資料庫部份;
最後一個則是編譯並讀出資料庫的內容。
可以選擇使用 JRViewer 來進行結果預覽。或是使用 Acrobat PDF Reader
進行預覽。
若要以 Acrobat PDF Reader 來進行預覽時,還必需另外設定外部程式路徑。
請選擇 [工具]→[選項]。會開出選項的視窗。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 19
請選擇 [External Programs]並指向 Acrobat PDF Reader 的執行程式路徑即可。
若出現以下的畫面,代表成功的做出報表。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 20
五、更進階的報表設計
接著,再來設計一個 iReport 很重要的技巧,即是“報表參數”。可由外部傳入
iReport 作為參數。即可以使用程式語言,來控制 iReport 的輸出格式。
選擇報表參數後[Parameters],按下新增。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 21
請在[Parameter name]輸入“testDay”,這個即是我們希望外部傳入日期。
[Parameter class type] 請選擇 “java.lang.String”,
[Default value expression] 請輸入 “1900/1/1”,此為預設值。
接著,請將列印日期的 TextFiled 的屬性更改為:
[Textfield Expression Class] 設為“java.lang.String”,[Evaluation time] 設為
“Now”,[Textfield expression] 設為“$P{rptToday}”,同理,若該欄位接受後,
字體顏色會轉為綠色,若不接受,則是呈現藍色。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 22
加入 Parameter 的輸出結果。
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 23
參、編譯器設計與 iReport 關聯
一、檢查所需的檔案
我們的環境需要再加入幾個 Lib在我們的環境,如此才能編譯。
這幾個 jar在安裝 iReport後在他的 lib資料中可以找到。
(C:\Program Files\JasperSoft\iReport-1.3.2\lib)
� itext-1.3.1.jar
� jasperreports-1.3.2.jar
� xml-apis.jar
� iTextAsian.jar (另外下載)
可以透過下面的兩個網址去下載
Ahttp://pics5.webs-tv.net/5/attachfile/9/3/7/739938/1/1465930828f2c3.zip
Bhttp://sourceforge.net/project/downloading.php?groupname=itextpdf&fil
ename=iTextAsian.jar&use_mirror=nchc
(抓下來的副檔名為.zip 把它改成.jar就可以使用)
註:iTextAsian.jar 為亞洲字型類別檔,若未將之引入使用,會發出如下的錯誤:
Could not load the following font;pdfFontName: MHei-Medium;
pdfEncoding:UniCNS-UCS2-H;isPdfEmbedded:false
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 24
把這幾個 jar檔放入專案中WebRoot/WEB-INF/lib中
就可以跟 iReport 做關聯
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 25
二、撰寫報表程式
這是編譯器與 iReport的 Solution,我們必須先做幾個步驟才能完成此流程。
� 第一步-製作範本檔(檔名:AR_002)
然後編譯製作好的 iReport,他會編繹出新的檔案 AR_002.jasper,並把這個檔案
放入專案下的 reportSample當中。
原始檔為 AR_002.jrxml,他是一種 XML的格式,可以檢視看原始碼。
前端JSP頁面
按下匯出報表
對應的bean
執行程式
並做參數設定
搭配iReport
的範本檔
匯出PDF檔
並在前端顯示
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 26
� 第二步-UI上的 FO新增 method
增加 browse頁面按鈕,panelGrid中新增 function與 trigger。
完成後編譯
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 27
� 第三步-前端頁面執行報表
執行 Bean中新增的 method
public void genReport() {
//參數設定 getQuotation_no()
Map parameters = new HashMap();
parameters.put("QUO_NO", this.IOso_quotations_sc.getQuotation_no_sc());
//告知編譯器對應的檔案名稱,並把參數傳入
this.reportUrl = sys.getReport("AR_002",parameters);
}
iReport內參
數的名稱
對應到 search的
method
範本檔的
檔案名稱
傳入上面
的參數
iReport 實作 iReport版本:1.3.2
范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 28
� 第四步-報表 pdf在頁面顯示