Birt報(bào)表技術(shù)支持施工指南_第1頁
Birt報(bào)表技術(shù)支持施工指南_第2頁
Birt報(bào)表技術(shù)支持施工指南_第3頁
Birt報(bào)表技術(shù)支持施工指南_第4頁
Birt報(bào)表技術(shù)支持施工指南_第5頁
已閱讀5頁,還剩140頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 開源報(bào)表BIRT開發(fā)手冊目 錄1Birt介紹51.1報(bào)表介紹51.2基本概念51.3豐富的報(bào)表51.4BIRT報(bào)表由四部分組成61.5報(bào)表設(shè)計(jì)器62Birt插件安裝82.1插件版本說明82.2插件安裝92.2.1完全安裝92.2.2更新安裝:92.2.3分步安裝93Birt報(bào)表開發(fā)實(shí)戰(zhàn)133.1創(chuàng)建報(bào)表133.1.1創(chuàng)建報(bào)表工程133.1.2創(chuàng)建報(bào)表143.2數(shù)據(jù)源配置163.3創(chuàng)建數(shù)據(jù)集193.4網(wǎng)格報(bào)表203.4.1創(chuàng)建數(shù)據(jù)源213.4.2創(chuàng)建數(shù)據(jù)集213.4.3對報(bào)表進(jìn)行布局213.4.4格式化與預(yù)覽233.5分組報(bào)表243.5.1創(chuàng)建數(shù)據(jù)源253.5.2構(gòu)建數(shù)據(jù)集253.5.3對報(bào)表

2、進(jìn)行布局253.5.4設(shè)定分組數(shù)據(jù)253.5.5格式化報(bào)表273.6交叉報(bào)表283.6.1構(gòu)建數(shù)據(jù)源283.6.2構(gòu)建數(shù)據(jù)集283.6.3在報(bào)表中加入交叉報(bào)表283.6.4數(shù)據(jù)準(zhǔn)備293.6.5向交叉表插入數(shù)據(jù)323.6.6加入?yún)R總333.6.7格式化報(bào)表343.7嵌套報(bào)表353.7.1構(gòu)建數(shù)據(jù)源363.7.2構(gòu)建數(shù)據(jù)集363.7.3布局嵌套報(bào)表383.7.4將Table綁定數(shù)據(jù)集393.7.5設(shè)定主表數(shù)據(jù)393.7.6設(shè)定子表數(shù)據(jù)403.8交互報(bào)表423.8.1創(chuàng)建報(bào)表、數(shù)據(jù)源433.8.2創(chuàng)建數(shù)據(jù)集433.8.3加入響應(yīng)參數(shù)453.8.4布局報(bào)表473.8.5插入報(bào)表數(shù)據(jù)483.8.6格式

3、化與預(yù)覽493.9報(bào)表鉆取513.9.1設(shè)定響應(yīng)參數(shù)513.9.2預(yù)覽結(jié)果543.10圖表報(bào)表553.10.1為報(bào)表插入圖表553.10.2設(shè)定圖表屬性553.10.3圖表預(yù)覽603.11多層交叉報(bào)表613.11.1構(gòu)建數(shù)據(jù)源613.11.2構(gòu)建數(shù)據(jù)集613.11.3在報(bào)表中加入交叉報(bào)表623.11.4數(shù)據(jù)準(zhǔn)備633.11.5向交叉表插入數(shù)據(jù)633.11.6格式化與預(yù)覽643.12多層交叉匯總報(bào)表653.12.1加入?yún)R總653.12.2格式化與預(yù)覽663.13其他673.13.1格式化報(bào)表6表頭與標(biāo)題6設(shè)定單元格格式6樣式套用683.13.

4、1.4數(shù)據(jù)元素格式化693.13.2分頁、頁眉與頁腳70設(shè)置分頁顯示70設(shè)置分頁打印70設(shè)置頁眉頁腳713.13.3隔行高亮度顯示733.13.4對報(bào)告進(jìn)行布局7添加|刪除行或列7指定行高或列寬7添加圖像773.13.5數(shù)據(jù)綁定794Birt報(bào)表script824.1avascript腳本編寫824.1.1隔行高亮度顯示824.1.2多參數(shù)查詢844.1.3腳本創(chuàng)建數(shù)據(jù)源854.2java腳本編寫884.2.1創(chuàng)建java類884.2.2java類與報(bào)表交互924.3BIRT腳本參考985Bi

5、rt報(bào)表部署995.1直接使用運(yùn)行birt-runtime-2_2_0包中的WebViewerExample995.2集成到已有web應(yīng)用1005.3數(shù)據(jù)庫驅(qū)動(dòng)位置1075.4報(bào)表url說明1075.5web.xml配置1135.6perties說明1155.7BIRT在jsp中tag使用1165.8關(guān)于BIRT編碼1231 Birt介紹1.1 報(bào)表介紹BIRT商業(yè)智能和報(bào)表工具。BIRT是一個(gè)Eclipse-based開放源代碼的報(bào)表系統(tǒng),它主要是用在基于Java和J2ee的web應(yīng)用程序上。BIRT主要由兩部分組成:一個(gè)是基于Eclipse的報(bào)表設(shè)計(jì)器和一個(gè)可以添加到應(yīng)

6、用服務(wù)器的運(yùn)行組建。BIRT同時(shí)提供一個(gè)圖形報(bào)表制作引擎。BIRT擁有和Dreamweaver一般的操作界面,可以像畫table一樣畫報(bào)表,也可以生成圖片、導(dǎo)出Excel、html、pdf、ppt等分頁,樣式比script設(shè)置簡單,另外BIRT還有OLAP導(dǎo)航功能。1.2 基本概念l 數(shù)據(jù)源:數(shù)據(jù)的來源,或提供者。如xml數(shù)據(jù)源、jdbc數(shù)據(jù)源等。 l 數(shù)據(jù)集:數(shù)據(jù)集合,它必須與數(shù)據(jù)源關(guān)聯(lián),可以理解為查詢的結(jié)果。 l 報(bào)表以及報(bào)表項(xiàng),報(bào)表可視為是針對一組數(shù)據(jù)集的表現(xiàn)形式,而報(bào)表項(xiàng)這是這個(gè)表現(xiàn)形式的某個(gè)具體的單元。它們之間的關(guān)系,與窗體和控件的關(guān)系非常類似。報(bào)表、數(shù)據(jù)集、數(shù)據(jù)源三者間的關(guān)系:數(shù)據(jù)

7、源 - 數(shù)據(jù)集 - 報(bào)表。 l 報(bào)表參數(shù):查詢參數(shù)的表現(xiàn)形式,使用它可以構(gòu)建更靈活的報(bào)表。 l 模板和庫:主要用于復(fù)用報(bào)表設(shè)計(jì),提高報(bào)表開發(fā)的效率1.3 豐富的報(bào)表列表 列表是最簡單的報(bào)表。當(dāng)列表變長時(shí),你可以把相關(guān)數(shù)據(jù)增加到同一分組(基于客戶的訂單分組,基于供應(yīng)商的產(chǎn)品分組)。如果數(shù)據(jù)是數(shù)字類型的,你可以輕松的添加到“總數(shù)”、“平均”、或其他匯總中。圖表 當(dāng)需要圖表表現(xiàn)時(shí),數(shù)字型數(shù)據(jù)比較好理解。BIRT 也提供餅狀、線狀以及柱狀圖標(biāo)等。交叉表 交叉表(也叫做十字表格或矩陣)用兩種維度展示數(shù)據(jù):sales per quarter or hits per web page。(交叉表在 1.0.1

8、 中沒有提供,但計(jì)劃在將來提供。)信函和文檔 通知、信件、以及其他文本文檔都很容易通過 BIRT 方便建立。文檔包括正文、格式、列表、圖表等?;旌蠄?bào)表 很多報(bào)表需要聯(lián)合以上所有的報(bào)表構(gòu)成單一文檔。例如,一份客戶聲明會(huì)列出客戶所需要的信息,為當(dāng)前促進(jìn)(promotions)提供文本,以及提供并行的出帳和入帳列表。一份財(cái)政報(bào)表將包括聲明、圖表、表格,所有這些都將進(jìn)行全方位的格式化,來匹配共有的配色方案。1.4 報(bào)表由四部分組成數(shù)據(jù) 數(shù)據(jù)庫、Web 服務(wù)、Java 對象,這些都可以作為 BIRT 報(bào)表源。1.0.1 版本提供 JDBC 支持,也支持利用編碼來獲取其他地方的數(shù)據(jù)。BIRT 的 ODA(

9、Open Data Access) 框架允許任何人構(gòu)建新的 UI 以及運(yùn)行時(shí)支持任何類型的表格式數(shù)據(jù)。未來,單一報(bào)表可包含從任意多個(gè)數(shù)據(jù)源獲取數(shù)據(jù)。數(shù)據(jù)轉(zhuǎn)換 報(bào)表通過對數(shù)據(jù)的分類、統(tǒng)計(jì)、過濾以及分組來適應(yīng)用戶需求。當(dāng)然,數(shù)據(jù)庫能實(shí)現(xiàn)這些功能,當(dāng)遇到普通文件和 Java 對象時(shí) BIRT 必須以 simple 數(shù)據(jù)源方式處理。BIRT 允許復(fù)雜的操作,比如總合分組、整體共計(jì)的百分比,等等。業(yè)務(wù)邏輯 真實(shí)世界的數(shù)據(jù)很少提供你理想的結(jié)構(gòu)良好的報(bào)表。許多報(bào)表要求用具體邏輯把原始數(shù)據(jù)轉(zhuǎn)換成用戶的有用信息。如果該邏輯僅僅用于該報(bào)表,你可以用 BIRT 的 JavaScript 腳本支持。如果你的程序中已包

10、含這些邏輯,你可以調(diào)用已有的 Java 代碼。表現(xiàn) 一旦數(shù)據(jù)準(zhǔn)備好了,你可以在很大的范圍內(nèi)選擇表現(xiàn)形式。表格、圖表、文字等等都可以。單一數(shù)據(jù)集可以有多種方式表現(xiàn),而單一報(bào)表可以表現(xiàn)多個(gè)數(shù)據(jù)集。1.5 報(bào)表設(shè)計(jì)器數(shù)據(jù)瀏覽器 把你的數(shù)據(jù)源(連接)以及數(shù)據(jù)集(查詢)組織起來。數(shù)據(jù)集編輯器允許你測試數(shù)據(jù)集,以確保報(bào)表接收數(shù)據(jù)的正確性。布局視圖(Layout) 所見即所得編輯器為你的報(bào)表提供以拽方式來創(chuàng)建表現(xiàn)內(nèi)容。包含一個(gè)標(biāo)準(zhǔn)報(bào)表?xiàng)l目調(diào)色板。屬性編輯器(Property Editor) 以便利的格局表現(xiàn)大多數(shù)通用的用戶屬性使編輯更快速和容易。BIRT 也集成了標(biāo)準(zhǔn) Eclipse 屬性視圖,為每個(gè)條目提

11、供詳細(xì)的屬性列表。報(bào)表預(yù)覽(Preview) 你可以在任何時(shí)間采用真實(shí)數(shù)據(jù)測試你的報(bào)表。預(yù)覽窗口直接內(nèi)嵌在 Eclipse 中。代碼編輯器(Script) 在訪問數(shù)據(jù)以及報(bào)表生成或?yàn)g覽時(shí),腳本把業(yè)務(wù)邏輯添加給報(bào)表。在編輯腳本時(shí)代碼編輯器提供標(biāo)準(zhǔn)的 Eclipse 特性:語法加色、自動(dòng)完成等等。BIRT 用很簡單的腳本來表達(dá),expression builder 能更容易的創(chuàng)建這些表達(dá)。略圖(OutLine) BIRT 報(bào)表被組織為一個(gè)樹型結(jié)構(gòu)作為整體報(bào)表的根,并且為樣式、報(bào)表內(nèi)容、數(shù)據(jù)源、數(shù)據(jù)集、報(bào)表參數(shù)等分類。略圖視圖提供你整個(gè)報(bào)表結(jié)構(gòu)緊湊的預(yù)覽。Cheat Sheets 學(xué)習(xí)新工具永遠(yuǎn)是種

12、挑戰(zhàn),但是 Eclipse 提供一種創(chuàng)新方案:cheat sheets。它們是一些幫助你完成新任務(wù)的文檔。2 Birt插件安裝2.1 插件版本說明EMF, GEF 和 BIRT 都是需要通過 Eclipse download page下載的。請注意以下的配置要求: BIRT 2.1.3 Eclipse 3.2. GEF 3.2. EMF 2.2. JRE 1.4.2/JRE 1.5. BIRT 2.2 Eclipse 3.3. GEF 3.3. EMF 2.3. JRE 1.5. DTP 1.5. WTP 2.0GEF:Graphical Editing Framework,圖形編輯框架,是一

13、個(gè)通過 BIRT UI 使用的Eclipse 插件。EMF:Eclipse Modeling Framework,用來制作圖表的框架。DTP: DataTools Platform,管理數(shù)據(jù)源驅(qū)動(dòng)程序,以及訪問特殊數(shù)據(jù)源實(shí)例的配置。WTP: Web Tools Platform,另外,本手冊中介紹實(shí)例使用的derby數(shù)據(jù)庫。Birt報(bào)表官方網(wǎng)站:/birt/downloads/Birt論壇網(wǎng)站:2.2 插件安裝2.2.1 完全安裝到Eclipse的官方網(wǎng)站/birt/downloads去下載

14、 帶有BIRT 插件的Eclipse平臺(birt-report-designer-all-in-one-2_2_0),解壓后,它就是一個(gè)擁有 BIRT插件的Eclipse,您可以直接使用。下載所在網(wǎng)頁:/downloads/download.php?file=/birt/downloads/drops/R-R1-2_2_0-0/birt-report-designer-all-in-one-2_2_0.zip Download from: Eclipse downloads - mirror selection2.2.2 更新安裝:BIRT 2.1開

15、始,可以在 Eclipse 里直接下載。在Eclipse里按照:HelpSoftware UpdatesFind And Install的路徑來進(jìn)行即可。2.2.3 分步安裝首先下載安裝JRE 1.5;1、 下載安裝Eclipse 3.3下載地址:/eclipse/downloads/drops/R-3.3-0/winPlatform.php#EclipseSDK打開網(wǎng)頁:/eclipse/downloads/drops/R-3.3-0/index.php點(diǎn)擊下圖中的“Eclipse SDK

16、”鏈接即可下載。下載到文件eclipse-SDK-3.3-win32.zip,解壓至安裝目錄,比如我們把它安裝到C:Program Files中;2、 下載安裝插件WTP 2.0,下載地址:/downloads/download.php?file=/webtools/downloads/drops/R2.0/R-2.0-3/wtp-R-2.0-3.zip&url=打開下面的網(wǎng)頁點(diǎn)擊網(wǎng)頁中Download From后的鏈接即可進(jìn)行下載。/downloads/download.php?file=/webtools/

17、downloads/drops/R2.0/R-2.0-3/wtp-R-2.0-3.zip下載到文件wtp-R-2.0.zip,將其解壓至eclipse安裝目錄C:Program Files即可;方法如下:右鍵點(diǎn)擊壓縮文件,選擇解壓文件,彈出解壓路徑和選項(xiàng):將目標(biāo)路徑改為我們安裝eclipse的安裝目錄:C:Program Files點(diǎn)擊確定。在解壓時(shí),如果出現(xiàn)“文件已存在”,選擇“全部選是”進(jìn)行覆蓋就可以了。3、 下載安裝GEF 3.3 Release, GEF Runtime,下載地址:/downloads/download.php?file=/to

18、ols/gef/downloads/drops/R-3.3-0/GEF-runtime-3.3.zip打開網(wǎng)頁:/tools/gef/downloads/drops/R-3.3-0/index.php點(diǎn)擊:Runtime中Download下方的鏈接即可。下載到文件GEF-runtime-3.3.zip,解壓至安裝目錄,方法同上。4、 下載安裝EMF & SDO RT version 2.3,下載地址:/downloads/download.php?file=/modeling/emf/emf/down

19、loads/drops/2.3.1/M0/emf-sdo-SDK-M0.zip&url=打開下面的網(wǎng)頁點(diǎn)擊網(wǎng)頁中Download From后的鏈接即可進(jìn)行下載。/downloads/download.php?file=/modeling/emf/emf/downloads/drops/2.3.1/M0/emf-sdo-SDK-M0.zip下載到文件emf-sdo-SDK.zip,解壓至安裝目錄,方法同上。5、 下載安裝DTP version 1.5,下載地址:/downloads/download.php?fi

20、le=/datatools/downloads/1.5/dtp-sdk_1.5_.zip&url=打開下面的網(wǎng)頁點(diǎn)擊網(wǎng)頁中Download From后的鏈接即可進(jìn)行下載。/downloads/download.php?file=/datatools/downloads/1.5/dtp-sdk_1.5_.zip下載到文件dtp-sdk_1.5.1.zip,解壓至安裝目錄,方法同上。6、 下載安裝BIRT Release 2.2,下載地址:/downloads/download.php?file=/birt/dow

21、nloads/drops/R-R1-2_2_0-0/birt-report-framework-2_2_0.zip&url=打開下面的網(wǎng)頁點(diǎn)擊網(wǎng)頁中Download From后的鏈接即可進(jìn)行下載。/downloads/download.php?file=/birt/downloads/drops/R-R1-2_2_0-0/birt-report-framework-2_2_0.zip下載到文件birt-report-framework-2_2_0.zip,解壓至安裝目錄,方法同上。安裝完畢,即可進(jìn)入使用。如果您只是缺少其中的某幾個(gè)插件,下載后按照上述方

22、法安裝即可,但要注意版本的匹配。3 Birt報(bào)表開發(fā)實(shí)戰(zhàn)3.1 創(chuàng)建報(bào)表3.1.1 創(chuàng)建報(bào)表工程1. 選擇文件-新建-項(xiàng)目。如下圖中的新建項(xiàng)目將顯示可以創(chuàng)建的項(xiàng)目的類型。2. 展開商業(yè)智能和報(bào)表工具(Business Intelligence and Reporting Tools),選擇報(bào)表項(xiàng)目(Report Project),然后選擇下一步。3. 在新建報(bào)表項(xiàng)目的工程名稱中輸入下列文本,如圖所示:My Report 4. 要添加項(xiàng)目,請選擇完成?,F(xiàn)在可在導(dǎo)航器視圖中看到該項(xiàng)目,如圖所示。3.1.2 創(chuàng)建報(bào)表1. 選擇文件-新建-報(bào)表。如下圖:2. 選擇My Report,輸入報(bào)表文件名稱,

23、如:Customers.rptdesign3. 選擇Next。4. 可以通過一下方式創(chuàng)建報(bào)表:l 從空白報(bào)表開始設(shè)計(jì)l 使用預(yù)定義的報(bào)表模版5. 選擇Finish。新報(bào)表將出現(xiàn)在主窗口中,布局編輯器將顯示空的報(bào)表頁。如下圖所示:3.2 數(shù)據(jù)源配置在布局編輯器中開始設(shè)計(jì)報(bào)表之前,構(gòu)建 BIRT 數(shù)據(jù)源以將報(bào)表連接至數(shù)據(jù)庫或其他類型的數(shù)據(jù)源。構(gòu)建數(shù)據(jù)源時(shí),要指定驅(qū)動(dòng)程序類、數(shù)據(jù)源名稱和其他連接信息(例如,用戶名和密碼)。Birt自帶一個(gè)已經(jīng)配置為與 BIRT 報(bào)表設(shè)計(jì)器配合使用的樣本數(shù)據(jù)庫 Classic Models,對于本教程使用的是Derby數(shù)據(jù)庫。1. 選擇數(shù)據(jù)資源管理器(Data Exp

24、lorer)。如果使用缺省報(bào)表設(shè)計(jì)透視圖,則數(shù)據(jù)資源管理器位于布局編輯器的左邊,在選用板(Palette)的旁邊,如圖所示。如果它尚未打開,則選擇窗口-顯示視圖-數(shù)據(jù)資源管理器。2. 右鍵單擊Data Sources然后從上下文菜單中選擇新建數(shù)據(jù)源。新建數(shù)據(jù)源顯示可以創(chuàng)建的數(shù)據(jù)源的類型,如圖所示。l Classic Models Inc.Sample DataBase 上面說過是BIRT樣本數(shù)據(jù)庫。l Flat File Data Source 從CSV、SSV、TSV、PSV四種格式的文件獲取數(shù)據(jù)源。l JDBC Data Source 通過配置jdbc連接數(shù)據(jù)庫。l Script Data

25、 Source 通過編寫腳本獲取數(shù)據(jù)源。l Web Services Data Source 通過web service方式獲取數(shù)據(jù)源。l XML Data Source 從xml文件獲取數(shù)據(jù)源。 3. 這里我們介紹通過JDBC Data Source 配置數(shù)據(jù)源。選擇JDBC Data Source ,輸入數(shù)據(jù)源名稱,點(diǎn)擊Next,配置Jdbc信息。如下圖:l 首先,單擊Manage Drivers添加驅(qū)動(dòng)包。如下圖:單擊add,選擇derby數(shù)據(jù)庫的derbyclient.jar驅(qū)動(dòng)包。點(diǎn)擊ok,驅(qū)動(dòng)完成添加。l 配置信息:Driver Class: org.apache.derby.jd

26、bc.ClientDriver (v10.1)(通過下拉菜單可以找到)Database URL: jdbc:derby:/【host】:1527/【database】User Name:用戶名Password:密碼4. 測試連接,測試前查看derby數(shù)據(jù)庫是否啟動(dòng);點(diǎn)擊Test Connection。出現(xiàn)Connection successful.對話框表示數(shù)據(jù)源創(chuàng)建成功。點(diǎn)擊Finish完成。3.3 創(chuàng)建數(shù)據(jù)集數(shù)據(jù)集標(biāo)識要從數(shù)據(jù)源檢索的數(shù)據(jù)。我們是通過連接至 JDBC 數(shù)據(jù)源,則使用 SQL SELECT 語句來標(biāo)識要檢索的數(shù)據(jù)。1. 在數(shù)據(jù)資源管理器(Data Explorer)中,右鍵單

27、擊數(shù)據(jù)集(Data Set)并從上下文菜單中選擇新建數(shù)據(jù)集。2. 在新建數(shù)據(jù)集的數(shù)據(jù)集名稱中,輸入下列文本,如圖所示:3. 對于其他字段選擇缺省值。Data Set Types 數(shù)據(jù)集類型一般使用jdabc數(shù)據(jù)源連接分為兩種:一種是SQL Select Query為select查詢,一種是SQL Stored Procedure Query存儲過程查詢(使用存儲過程查詢,必須數(shù)據(jù)庫中已創(chuàng)建存儲過程)。Data Source顯示先前創(chuàng)建的數(shù)據(jù)源的名稱。Data Set Types 指示該數(shù)據(jù)集使用 SQL Select Query查詢。4. 選擇Next。查詢顯示可幫助您創(chuàng)建 SQL 查詢的信息

28、??捎庙?xiàng)列示數(shù)據(jù)庫中的所有表。可以單擊表旁邊的加號(+)標(biāo)志來顯示該表的各個(gè)列。編輯數(shù)據(jù)集右邊的文本區(qū)域顯示 SQL SELECT 語句的必需關(guān)鍵字:5. 在文本區(qū)域中,輸入下列 SQL SELECT 語句以指定要檢索的數(shù)據(jù):如:select * from EBANK.CUSTOMER雖然數(shù)據(jù)集編輯器以大寫字母顯示表和列名稱,但可用您喜歡的方式輸入這些名稱,因?yàn)?SQL 不區(qū)分大小寫。如果您不想輸入查詢,則可將列和表從可用項(xiàng)拖動(dòng)到文本區(qū)域。6. 選擇Finish以保存數(shù)據(jù)集。編輯數(shù)據(jù)集將顯示在查詢中指定的列,并提供編輯數(shù)據(jù)集的選項(xiàng)。7. 選擇預(yù)覽結(jié)果(Preview Results)以確保查詢

29、有效并且它返回正確的數(shù)據(jù)。如果正確輸入了 SELECT 語句,您應(yīng)該看到圖中顯示的結(jié)果。這些是查詢返回的數(shù)據(jù)行。8. 選擇ok,數(shù)據(jù)集創(chuàng)建成功。3.4 網(wǎng)格報(bào)表網(wǎng)格報(bào)表是報(bào)表最通用的模式,在大多數(shù)報(bào)表中,都需要或部分需要將一組(多條)數(shù)據(jù)結(jié)構(gòu)完全相同的數(shù)據(jù)以表格形式順序展現(xiàn)出來。如:通過此例我們先來看一看如何制作一張簡單的報(bào)表。我們需要建立一張顯示所有銀行客戶及其相關(guān)信息的的報(bào)表。3.4.1 創(chuàng)建數(shù)據(jù)源方法同上例.2 創(chuàng)建數(shù)據(jù)集方法同上例3.3. 數(shù)據(jù)集名稱為:Customer??蛻舻男畔⒋嬖贑USTOMER表中,我們需要輸入如下語句:select EBANK.CUSTOMERT

30、YPE.TYPENAME,EBANK.CUSTOMER.*from EBANK.CUSTOMER,EBANK.CUSTOMERTYPEwhere EBANK.CUSTOMER.CUSTOMERTYPE = EBANK.CUSTOMERTYPE.TYPEID3.4.3 對報(bào)表進(jìn)行布局1在本過程中,您在報(bào)告頁中插入元素以顯示先前創(chuàng)建的數(shù)據(jù)集的數(shù)據(jù)。先插入一個(gè)表元素,然后在該表中插入數(shù)據(jù)元素。2選擇選用板“Palette”。選用板顯示所有可布置在報(bào)告中的元素。3為了以后的表布局美觀,我們先從選用板中的“Gird”元素拖拽放入布局編輯器內(nèi)(即文件的“Layout”視圖)的報(bào)告中,插入時(shí)提示您要制定創(chuàng)建

31、的行列數(shù)的詳細(xì)信息:輸入1列2行,4然后,將選用板中的表元素“Table”拖放到布局編輯器內(nèi)的報(bào)告中。插入表提示您指定要對此表創(chuàng)建的列數(shù)和詳細(xì)信息行數(shù)。指定5列和1個(gè)詳細(xì)信息行,然后選擇“確定”。具有5列和1個(gè)詳細(xì)信息行的表將出現(xiàn)在布局編輯器中?,F(xiàn)在,您就可以在該表中插入數(shù)據(jù)了。5選擇數(shù)據(jù)資源管理器Data Explorer視圖。在Data Explorer視圖中,展開“Data Sets”,然后展開Customers,在查詢中指定的列將出現(xiàn)在Customers下面。將CUSTOMER_NAME從Data Explorer中拖放到表的詳細(xì)信息行“Detail Row”中的第一個(gè)單元格內(nèi)(如下圖

32、)。詳細(xì)信息行顯示報(bào)告中的主要數(shù)據(jù)。在完成的報(bào)告中,詳細(xì)信息行重復(fù)顯示數(shù)據(jù)集中的所有數(shù)據(jù)行。6然后采用同樣的方法將CUSTOMER_ID,TYPENAME,F(xiàn)AX,TEL這四個(gè)數(shù)據(jù)項(xiàng)從Data Explorer中拖放到表的詳細(xì)信息行中,完成的報(bào)告中,詳細(xì)信息行重復(fù)顯示數(shù)據(jù)集中的所有數(shù)據(jù)行。如下圖:7選中報(bào)表格左下角的“”(如上圖),在下方的視圖中會(huì)顯示本Table的信息:選擇第二項(xiàng)“binding”,將Data Set的下拉框選為“Customer”,下方的Data Colum Binding中就會(huì)顯示我們數(shù)據(jù)集中的數(shù)據(jù)項(xiàng),通過此步我們將本報(bào)表與數(shù)據(jù)集綁定起來,否則將不能顯示(一般將數(shù)據(jù)集中的

33、數(shù)據(jù)項(xiàng)拖拽如Table中后,會(huì)自動(dòng)將次數(shù)據(jù)集的數(shù)據(jù)項(xiàng)與本報(bào)表綁定,我們可以不用進(jìn)行這步操作。但我們必須得清楚這個(gè)操作)。完成后,表格的基本設(shè)置就算做完了。3.4.4 格式化與預(yù)覽通過布局編輯器中選擇“Preview”可對我們設(shè)計(jì)的報(bào)表進(jìn)行預(yù)覽。我們通過一系列格式化操作,將報(bào)表進(jìn)行美化。完成以后則可,通過工具欄中提供的各種不同的視圖模式來進(jìn)行預(yù)覽,如下:使用默認(rèn)的View Report In Web Viewer預(yù)覽結(jié)果如下:3.5 分組報(bào)表在網(wǎng)格報(bào)表的基礎(chǔ)上,我們可能還需要對數(shù)據(jù)進(jìn)行進(jìn)一步的處理。比如,將同類數(shù)據(jù)顯示在一個(gè)組中,并對這個(gè)組進(jìn)行統(tǒng)計(jì)運(yùn)算。如下圖所示,對數(shù)據(jù)按省份進(jìn)行分組,并將同一

34、省份數(shù)據(jù)放在一個(gè)組內(nèi)進(jìn)行匯總統(tǒng)計(jì)。下面我們將上例的網(wǎng)格報(bào)表進(jìn)行一下小的改進(jìn),建立一個(gè)按用戶類型進(jìn)行分組的報(bào)表。3.5.1 創(chuàng)建數(shù)據(jù)源方法同上例。3.5.2 構(gòu)建數(shù)據(jù)集本例所用的數(shù)據(jù)集與上例完全相同,輸入與上例3.4.2相同的sql語句建立數(shù)據(jù)集即可。3.5.3 對報(bào)表進(jìn)行布局1做好上面的工作之后,先在布局編輯器中建立一個(gè)1列2行的Grid,2同上例一樣,從選用板“Palette”中拖拽一個(gè)5列1行的Table至第二行的網(wǎng)格中,3從Data Explorer視圖中的“Data Sets”項(xiàng)中將TYPENAME拖拽至此Table的第一個(gè)詳細(xì)信息行中,然后依次將,CUSTOMER_ID,CUSTOM

35、ER_NAME,F(xiàn)AX,TEL拖拽入詳細(xì)信息行內(nèi)。這里不再贅述。3.5.4 設(shè)定分組數(shù)據(jù)1選中Table,在右下方的Table的屬性編輯器“Property Editor - Table”中,選擇Group,進(jìn)入如下分組設(shè)定界面:2點(diǎn)擊“Add”按鈕進(jìn)行添加分組:從“Group on”的下拉框選擇TYPENAME,其他默認(rèn),(可根據(jù)需要對“Name”項(xiàng)進(jìn)行命名),然后選擇“OK”。完成分組設(shè)定。3這時(shí)Table中多出一行Group行,如下圖:將詳細(xì)信息欄中的TYPENAME(即Table中第三行第一列數(shù)據(jù)項(xiàng),如上圖標(biāo)記下方的數(shù)據(jù)項(xiàng))刪除。這樣,一個(gè)按照用戶類型建立的分組報(bào)表就建立起來了。3.5

36、.5 格式化報(bào)表進(jìn)行報(bào)表格式化處理后,預(yù)覽如下效果:3.6 交叉報(bào)表3.6.1 構(gòu)建數(shù)據(jù)源方法同上。3.6.2 構(gòu)建數(shù)據(jù)集1在定義好數(shù)據(jù)集的基本信息之后,進(jìn)入SQL SELECT 語句查詢界面,輸入如下SQL語句,進(jìn)行數(shù)據(jù)集的創(chuàng)建:select EBANK.CUSTOMER.CUSTOMER_NAME,EBANK.PRODUCT.PRODUCT_NAME,EBANK.CONTRACTSUM.*from EBANK.CUSTOMER,EBANK.PRODUCT,EBANK.CONTRACTSUMwhere EBANK.CONTRACTSUM.CUSTOMER = EBANK.CUSTOMER.C

37、USTOMER_IDand EBANK.CONTRACTSUM.PRODUCT = EBANK.PRODUCT.PRODUCT_ID2如果創(chuàng)建正確,在結(jié)果預(yù)覽窗口“Preview Relusts”中將看到一下信息:點(diǎn)擊“Ok”完成數(shù)據(jù)集的創(chuàng)建。3.6.3 在報(bào)表中加入交叉報(bào)表1 同上例,先在布局編輯器中建立一個(gè)1列2行的Grid。2 從選用板“Palette”視圖中拖拽一個(gè)“Cross Tab”至第二行的網(wǎng)格中。在布局編輯器中可以看到我們創(chuàng)建的Cross Tab的樣式。3.6.4 數(shù)據(jù)準(zhǔn)備1 選擇數(shù)據(jù)資源管理器“Data Explorer”。右鍵單擊“Data Cubes”,選擇“New Da

38、ta Cube”,進(jìn)入如下交叉表數(shù)據(jù)編輯界面:2 默認(rèn)選擇的是“Dayaset”,Name:為Cube命名,Customer CubePrimery dataset:選擇相關(guān)的數(shù)據(jù)集。打開下拉菜單選擇之前建立的數(shù)據(jù)集contract3 在左邊的主菜單中選擇第二項(xiàng)“Groups and Summeries”,出現(xiàn)如下窗口(),在將Available Fields中的CUSTOMER_NAME拖拽到右邊Groups (Dimensions)中標(biāo)有“(Drop a field here to create a group)”的地方,如下圖。拖拽完畢之后彈出如下窗口:所有選項(xiàng)都選默認(rèn)數(shù)據(jù)。點(diǎn)擊“OK”

39、進(jìn)入下一步4 按照地4步的方法,將Available Fields中的PRODUCT_NAME也拖拽到右邊的對應(yīng)地方。5 將Available Fields中的AMOUNT拖拽到右邊Summary Fields (Measures)中標(biāo)有“(Drop a field here to create a summary field)”的地方。彈出下面窗口,同樣選擇默認(rèn)數(shù)據(jù),點(diǎn)擊“OK”進(jìn)入下一步。數(shù)據(jù)設(shè)定好以后,我們可以在“Data Explorer”看到Data Cubes的信息如下圖:3.6.5 向交叉表插入數(shù)據(jù)1 在 Data Explorer視圖中,將Customer Cube中的CUST

40、OMER_NAME拖拽并放置于布局編輯器中Cross Tab的標(biāo)有“Drop data field(s) to define rows here”的區(qū)域中。如下圖:同第一步,將Customer Cube中的PRODUCT_NAME拖拽并放置于布局編輯器中的Cross Tab中標(biāo)有“Drop data field(s) to define rows here”的區(qū)域中;然后將Customer Cube中的AMOUNT拖拽并放置于布局編輯器中的Cross Tab中標(biāo)有“Drop data field(s) to be summarized here”的區(qū)域中。上圖所示:2 完成上述步驟之后,布局編

41、輯器中的Cross Tab出現(xiàn)如下圖中的樣式:我們將Cross Tab中第二列的AMOUNT的標(biāo)題菜單刪掉。如果不去掉,就會(huì)在報(bào)表的產(chǎn)品標(biāo)題菜單下方出現(xiàn)一行“AMOUNT”的標(biāo)題,不僅多于,而且影響美觀。3.6.6 加入?yún)R總1 點(diǎn)擊Cross Tab左下角的“Cross Tab”圖標(biāo)選中本交叉表。在Property Editor屬性編輯器中選擇“Row Area”,如下圖:在左邊的選項(xiàng)欄中選擇第二個(gè)選項(xiàng)“Grand Totals”2 點(diǎn)擊“Add”,添加行匯總元素。彈出如下窗口:選用默認(rèn)的數(shù)據(jù),點(diǎn)擊“OK”進(jìn)入下一步。3 在Property Editor屬性編輯器中選擇“Colum Area”

42、,同第一步加入列匯總。添加完畢,布局編輯器出現(xiàn)如下視圖:這樣,一張交叉匯總表基本上完成了。3.6.7 格式化報(bào)表格式化報(bào)表:預(yù)覽如下圖:3.7 嵌套報(bào)表嵌套報(bào)表其實(shí)是一種設(shè)計(jì)技巧的應(yīng)用,類似編碼過程中的模塊化設(shè)計(jì)。當(dāng)報(bào)表的復(fù)雜程度讓設(shè)計(jì)者開始覺得邏輯混亂的時(shí)候,可以使用嵌套報(bào)表設(shè)計(jì)方法,將報(bào)表拆分為多個(gè)不同的設(shè)計(jì)頁面,然后使用一個(gè)總的頁面將這些設(shè)計(jì)頁面整合起來展現(xiàn)。此外,嵌套報(bào)表有時(shí)候也會(huì)用于主從結(jié)構(gòu)的實(shí)現(xiàn),通過逐層嵌套,可以實(shí)現(xiàn)無限層次的主從結(jié)構(gòu)數(shù)據(jù)展現(xiàn)。本例,我們將每個(gè)客戶的信息包括客戶表中基本的信息以及他們的訂單信息,在同一張表中按客戶一一列出來,所使用的就是嵌套報(bào)表。報(bào)表名我們定為:n

43、estingTab.rptdesign3.7.1 構(gòu)建數(shù)據(jù)源本例我們使用BIRT自帶的數(shù)據(jù)源,在新建數(shù)據(jù)源選擇數(shù)據(jù)源類型為默認(rèn)的第一項(xiàng):Classic Model Inc,Sample Database數(shù)據(jù)庫驅(qū)動(dòng)類別;org.eclipse.birt.report.data.oda.sampledb.Driver (Classic Models Inc. SampleDB Driver);URL:jdbc:classicmodels:sampledb3.7.2 構(gòu)建數(shù)據(jù)集本例我們需要建立2個(gè)數(shù)據(jù)集:1 建立數(shù)據(jù)集payments,所用SQL語句:(這里我們加入條件選擇訂單大于)select C

44、USTOMERNUMBER,sum(AMOUNT) amountfrom CLASSICMODELS.PAYMENTSgroup by CUSTOMERNUMBERhaving sum(AMOUNT)order by amount desc2 建立數(shù)據(jù)集customers:所用SQL語句:select *from CLASSICMODELS.CUSTOMERS where CLASSICMODELS.CUSTOMERS.CUSTOMERNUMBER = ?輸入SQL語句后,還要在數(shù)據(jù)集編輯窗口選擇Parameters選項(xiàng)。雙擊默認(rèn)參數(shù)Pram1或者選擇“Edit”,彈出如下窗口:輸入:Name

45、:CustID;Default Value:103;其它默認(rèn)完成后,在Preview Result選項(xiàng)中就可看見結(jié)果預(yù)覽:3.7.3 布局嵌套報(bào)表1 同上例,先在布局編輯器中建立一個(gè)1列2行的Grid。2 從選用板“Palette”視圖中拖拽一個(gè)2行2列“Table”至第二行的網(wǎng)格中;3 選中Table的第一個(gè)“Detail Row”行,右鍵點(diǎn)擊后選擇“Merge Cells”將本行兩列合并為一列。本行用來顯示主表的信息4 從選用板“Palette”視圖中拖拽一個(gè)“Table”的至第二個(gè)“Detail Row”行中的第一格中,設(shè)定其為2列4行。完成后將這個(gè)剛插入的子表的“Header Row”

46、和“Footer Row”刪除掉。5 向主表的第二個(gè)“Detail Row”行的第二格進(jìn)行與上一步同樣的操作,插入一個(gè)相同的子表。第4、5兩步所加的兩個(gè)子表其實(shí)是用來加入客戶信息的,所用到到的數(shù)據(jù)都是customers數(shù)據(jù)集里的數(shù)據(jù),這里用兩個(gè)表來進(jìn)行展現(xiàn)完全是為了整體布局的美觀。布局配置完畢,布局編輯器中會(huì)呈現(xiàn)如下圖:3.7.4 將Table綁定數(shù)據(jù)集1 將Table綁定數(shù)據(jù)集:在布局編輯器中選中主表Table,下方出現(xiàn)Table的屬性編輯器Property Edit,選中標(biāo)題欄的Binding欄,從Dat Set中選擇payments數(shù)據(jù)集。彈出窗口選擇“Yes”即可。點(diǎn)擊“Ok”完成。2

47、 設(shè)定排序:接著在Property Edit編輯器中選中“Sorting”欄,點(diǎn)擊“Add”添加排序變量,從彈出窗口的下拉菜單中選擇“CUSTOMERNUMBER”,即按照編號排序,排序方法選擇“Ascending”(升序)。點(diǎn)擊“OK”完成。(讀者根據(jù)實(shí)際情況的需要可以通過同樣的方法選擇按照不同的變量來進(jìn)行排序)3.7.5 設(shè)定主表數(shù)據(jù)1 加入網(wǎng)格:從選用板“Palette”視圖中拖拽一個(gè)Grid至主表Table的第一行“Detail Row”中,設(shè)定其為4列1行。2 插入數(shù)據(jù):展開選擇數(shù)據(jù)資源管理器“Data Explorer”,將數(shù)據(jù)集payment中“CUSTOMERNUMBER”與“

48、AMOUNT”兩個(gè)數(shù)據(jù)項(xiàng)分別拖拽至我們剛插入的Grid的第2格與第4格中。并將其格式都設(shè)定為居左。3 加入數(shù)據(jù)標(biāo)題Lable 從選用板“Palette”視圖中拖拽Lable至Grid的第1格與第3格中,分別輸入“客戶號:”與“金額:”,并將其格式都設(shè)定為居右設(shè)定好之后,視圖如下:3.7.6 設(shè)定子表數(shù)據(jù)1 設(shè)定參數(shù)綁定:在布局編輯器中選中子表Table,下方出現(xiàn)Table的特定編輯器Property Edit,選中標(biāo)題欄的Binding欄,在“”點(diǎn)擊按鈕“Dataset Parameter Binding”,進(jìn)入后雙擊默認(rèn)的變量進(jìn)入進(jìn)行設(shè)置,點(diǎn)擊“Value”標(biāo)簽后的函數(shù)符號“”,進(jìn)入如下界面

49、:如圖依次選擇需要插入的數(shù)據(jù),在第三個(gè)框中,雙擊“CUSTOMERNUMBER”進(jìn)行插入。依次點(diǎn)擊“OK”,完成對另外一個(gè)子表也需進(jìn)行如上操作。2 插入數(shù)據(jù)展開選擇數(shù)據(jù)資源管理器“Data Explorer”,將數(shù)據(jù)集customers中的“CUSTOMERNAM”、“CITY”、“PHONE”、“ADDRESSLINE1”拖拽至第一個(gè)子表Table的第二列中,將第一列的各個(gè)單元格同樣拖拽進(jìn)去一個(gè)“Text”,分別輸入子項(xiàng)標(biāo)題“客戶名”、“城市”、“電話”、“住址”。然后將數(shù)據(jù)集customers中的“POSTALCODE”、“ADDRESSLINE2”、“SALESREPEMPLOYEENU

50、MBER”、“CREDITLIMIT”拖拽至第二個(gè)子表Table的第二列中,將第一列的各個(gè)單元格同樣拖拽進(jìn)去一個(gè)“Text”,分別輸入子項(xiàng)標(biāo)題“郵編”、“所在住所”、“雇員號”、“余額”這樣整個(gè)嵌套報(bào)表的數(shù)據(jù)配置已經(jīng)完畢,如果配置正確,布局將會(huì)如下:結(jié)果預(yù)覽:3.8 交互報(bào)表交互式報(bào)表就是存在與用戶交互的通道,在查詢交互式報(bào)表的結(jié)果時(shí),需要用戶輸入一定的參數(shù),輸出結(jié)果就會(huì)顯示出參數(shù)所對應(yīng)的結(jié)果。在本例中,我們將客戶信息做成交互式報(bào)表,在用戶輸入客戶的編號之后,我們就會(huì)看到對應(yīng)客戶的信息。3.8.1 創(chuàng)建報(bào)表、數(shù)據(jù)源方法同上,報(bào)表名我們定位:PeportOfAlternant.rptdesign

51、3.8.2 創(chuàng)建數(shù)據(jù)集本例我們需要建立3個(gè)數(shù)據(jù)集:1 建立數(shù)據(jù)集CustomerId,所用SQL語句:select EBANK.CUSTOMER.CUSTOMER_ID,EBANK.CUSTOMER.CUSTOMER_NAMEfrom EBANK.CUSTOMERwhere EXISTS (SELECT EBANK.CONTRACTSUM.CUSTOMER FROM EBANK.CONTRACTSUM WHERE EBANK.CUSTOMER.CUSTOMER_ID = EBANK.CONTRACTSUM.CUSTOMER)2 建立數(shù)據(jù)集CustomerInfo:所用SQL語句:select

52、EBANK.CUSTOMER.CUSTOMER_NAME,EBANK.CUSTOMER.TEL,EBANK.CUSTOMER.FAX,EBANK.CUSTOMERTYPE.TYPENAMEfrom EBANK.CUSTOMER,EBANK.CUSTOMERTYPEwhere EBANK.CUSTOMER.CUSTOMERTYPE=EBANK.CUSTOMERTYPE.TYPEIDand EBANK.CUSTOMER.CUSTOMER_ID = ?輸入SQL語句后,還要在數(shù)據(jù)集編輯窗口選擇Parameters選項(xiàng)。雙擊默認(rèn)參數(shù)Pram1或者選擇“Edit”,彈出如下窗口:輸入:Name:Cust

53、ID;Default Value:1;其它默認(rèn)完成后,在Preview Result選項(xiàng)中就可看見結(jié)果預(yù)覽:建立數(shù)據(jù)集Contract:所用SQL語句:select EBANK.CONTRACTSUM.AMOUNT,EBANK.PRODUCT.PRODUCT_NAMEfrom EBANK.CONTRACTSUM,EBANK.PRODUCTwhere EBANK.CONTRACTSUM.PRODUCT = EBANK.PRODUCT.PRODUCT_IDand EBANK.CONTRACTSUM.CUSTOMER = ?同上一步一樣,還需對參數(shù)設(shè)置默認(rèn)值,方法同上。3.8.3 加入響應(yīng)參數(shù).建立好數(shù)據(jù)集之后,展開選擇數(shù)據(jù)資源管理器“Data Explorer”,右鍵點(diǎn)擊“Report Parameters”選擇“New Parameter”,彈出如下窗口:輸入:Name:CustIdPrompt:請輸入用戶編號Data Type:選擇默認(rèn)StringDisplay Type:從下拉菜單中選擇Combo Box. 將Display Type值選為Combo Box后,下方的“List of Value”的兩個(gè)選擇按鈕變亮,選擇“Dynamic”,窗口變?yōu)槿缦拢狠斎霐?shù)據(jù):Data Set:從下拉框中選擇CustomerId;Sel

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論