28
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實做練習part(1)

  • Upload
    seatof

  • View
    12.090

  • Download
    2

Embed Size (px)

DESCRIPTION

iReport實做練習part(1) 包含資料庫設定 連線設定 簡單的範例實做

Citation preview

Page 1: iReport實做練習part(1)

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

Page 2: iReport實做練習part(1)

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的選項

Page 3: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 3

二、iReport環境安裝

安裝程式(只要一直按 next就會幫你裝好嚕)

安裝完成後點說面的圖案就可以啟動 iReport

三、認識 iReport 的環境

在中央最大區域的地方,即是 iReport 的工作區域,可供放置各項靜態、動態等

文字;在左邊則是開啟的檔案列表,與報表結構的內容;下方則是 iReport 編譯

後,會出現的訊息視窗,當編譯發生錯誤時,則由這個區域來得知錯誤,較常發

生的錯誤,可能是型態的錯誤;右側是物件的屬性與對應的 Library。

Page 4: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 4

貳、使用 iReport

一、新增報表

由左上角的圖示,點下即可新增一個新的工作報表。

開啟後,會出現這個視窗,可以依您的需要來更改設定值,在 [Page Margin] 的

地方,是上下左右的邊界設定。

新增報表

Page 5: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 5

再來,建議切換至 [More…] 的選擇頁中,進行一些設定。

即“如果沒有資料時”的設定,建議將原本為[NoPages]的選項改為

[AllSectionsNoDetail]的選項。這樣當沒有資料時,才不會是一片白白空空的報表。

再者,上方的報表名稱,也建議改成與檔名相同的名稱,這個名稱會與產生編譯

的 .java檔案有關。

接下來,就先將檔案儲存,檔名改為 TestiReport.jrxml。

Page 6: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 6

在工作視窗中,可以看到其中有 Title ,PageHeader ……等等的橫條的方格。

Title : 報表的表頭。

PageHeader : 報表的頁首。

ColumnHeader : 報表的行首,通常用來定義行的欄位名稱。

Detail : 報表的內容。

ColumnFooter : 報表的行尾,可用來告知報表的一些參數,諸如頁碼等。

PageFooter : 報表的頁尾。

LastPageFooter : 最後頁的頁尾。

Summary : 用來計算用。

此頁,即秀出以 iReport 實作的畫面定義。

表頭

頁首

行首

內容

行尾

頁尾

最後的頁尾

總和等、用來計算

Page 7: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 7

若是,正要實作的報表比較簡單,可能某些是不需要的分類,則可以按下滑鼠的

右鍵,即會出現 的 pop 式選單,請選擇 [Band properties]。

點下後即會出現上圖,比如要將 PageHeader 的頁首不要顯示出來,即將

[Band Height] 的高度 設為 [ 0 ]。最後,按 [x] 後離開,則 PageHeader 就

不會顯示在 工作區域上。

Page 8: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 8

二、常用按鈕

:直線工具,可用這個來區分出如報表的區域呈現。

:矩形工具,以矩形方塊來繪出的。

:圓型工具,可畫出圓形。

:靜態文字,例如前二頁的“服務報價單”,即是用靜態文字顯示的。

:動態文字,可顯示如由資料庫取出的資料值。

:圖形工具,可以將圖形檔來加入報表。

:編寫 SQL Script 語法敘述的地方。

Page 9: iReport實做練習part(1)

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

Page 10: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 10

� 設定資料庫聯結

1. 點資料→連結/資料來源

2. 新增

3. 選擇你要的連線方式→再按 NEXT

Page 11: iReport實做練習part(1)

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. 按下測試連線會顯示是否成功

Page 12: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 12

四、設計第一個 iReport 報表

首先設計您的工作區域,將不要的工作區將之 [Band Height] 設為[0],即可隱

藏 不要的區域。以本例,只留下 Title、ColumnHeader、Detail、ColumnFooter 這

幾 個工作區域。

再來,有了資料庫連線後,必需要指定這個 iReport 報表使用哪一個資料庫連線。

請選 [建立]→ [設定動態連結]。

選好後,請按 [確定] 繼續。

Page 13: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 13

再來,按下 按鈕,叫出編寫 sql的畫面。

點選[Query designer]

選取對應的資料庫 (我選擇的是 PT的資料庫)

Page 14: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 14

對需要的 Table點兩下或出現在右邊的視窗。 (我選擇 VENDER)

勾選需要用到的欄位,再按[OK]。

Page 15: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 15

顯示 SQL與選擇的欄位跟型態,再按下[OK]即可。

來加入一個靜態文字。

Page 16: iReport實做練習part(1)

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] 打勾。

Page 17: iReport實做練習part(1)

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內的欄位放入在表單中。

Page 18: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 18

到此,可以先以 iReport 來進行測試。

在畫面的右手邊,有這三個一組的小圖示,左邊的是編譯這個

iReportXml 的檔案,中間的是跑出畫面的靜態文字處理,不包含資料庫部份;

最後一個則是編譯並讀出資料庫的內容。

可以選擇使用 JRViewer 來進行結果預覽。或是使用 Acrobat PDF Reader

進行預覽。

若要以 Acrobat PDF Reader 來進行預覽時,還必需另外設定外部程式路徑。

請選擇 [工具]→[選項]。會開出選項的視窗。

Page 19: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 19

請選擇 [External Programs]並指向 Acrobat PDF Reader 的執行程式路徑即可。

若出現以下的畫面,代表成功的做出報表。

Page 20: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 20

五、更進階的報表設計

接著,再來設計一個 iReport 很重要的技巧,即是“報表參數”。可由外部傳入

iReport 作為參數。即可以使用程式語言,來控制 iReport 的輸出格式。

選擇報表參數後[Parameters],按下新增。

Page 21: iReport實做練習part(1)

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}”,同理,若該欄位接受後,

字體顏色會轉為綠色,若不接受,則是呈現藍色。

Page 22: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 22

加入 Parameter 的輸出結果。

Page 23: iReport實做練習part(1)

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

Page 24: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 24

把這幾個 jar檔放入專案中WebRoot/WEB-INF/lib中

就可以跟 iReport 做關聯

Page 25: iReport實做練習part(1)

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檔

並在前端顯示

Page 26: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 26

� 第二步-UI上的 FO新增 method

增加 browse頁面按鈕,panelGrid中新增 function與 trigger。

完成後編譯

Page 27: iReport實做練習part(1)

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

範本檔的

檔案名稱

傳入上面

的參數

Page 28: iReport實做練習part(1)

iReport 實作 iReport版本:1.3.2

范智鈞 信箱 [email protected] 部落格 http://blog.yam.com/wing007 28

� 第四步-報表 pdf在頁面顯示