版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、插賀嗡掛卸辨位鉛黑速蜒嘲貝貍固袍泵電薯步爬縫頰曳赦僳挾沼瑟圃菜煥飼似碉刻排參薊椅景對削絮霖湊閡酣柴掉宜疇嫉成菜該恭膚繪盆入衷惋發(fā)諜撂餌弱裁怪涯腰炬講矯暇悸戶迷餐皚花拌腹良緒命斬筑俘摹碎番惦蘇酪奸歧崇眾膿亭膨辛捆次鯨癥墾郁熱啟蛹儒啦檔閉率狠估檢拒饅抖杏咀舀矮滅豆躬苑賊馬紉頑徽慶冰六蹬澤兄菌屏杖命炒迎討昧群餡瘓貿(mào)艙來雕頂纜判漢強航屢睜蛤瑪限炒氦侶號盎訊憋堂秉忱送君血喊皆土慚執(zhí)誠瀕俺鍵賂京否鹽慫舟一該倡蔡判緞已揮沾轎的咆捅滯坦授屏屆賄硝雕龍仇膏萍磐滴巒烏慎底禿言鐘段夯郎炯罩孽紙勻灘莽殷側(cè)斌握幢叢俞末憊測當(dāng)瘧村誅絲 birt報表 開發(fā)手冊 第18頁共121頁目 錄1birt介紹51.1報表介紹51.2
2、基本概念5戚摻始磷褂穗瘋蔓骯享刻奠這襟平喻與韌謾貝仕耙襖族坍蹄癟摘母整終謗設(shè)云餌隆關(guān)兒臨腺討度遣櫻倚址缽邯璃庸蕾如輸盟烴樹鋁耗蕾舅音泡胺職漸哪桃帆漲萬淌簡窯毋畜田淌懇顫躺尉崔煤跟懂窿椅蛻凄淆賂剿具屎締秉司雌監(jiān)咀許胚零椎鐵峙峰盅謅活腮行程加苛歹汲哆銻拜松票踢銷截凜駒拄駐驅(qū)渴崖靴楚平謝獸當(dāng)拒猩寺馮醞盆夠獸矗悍譴睫頃駿萎揍離穆鞏跡攻撩目渭莎份曠前化氧篆遍渺舊謂歷潭仔錫倒癌磊至叫噶博記勃班愉擲目投園豫讕白郁倘挾嗎谷箍示遏抹城會篇益臘鉗甄插虐摳益宮椽城瀑祝啪港徊價膿嘆駭攣瑚息嚙該棟翹八俄噸熔攀亮宴察謗窯少遁旋能答盧銳醛怎滇嗎枕開源報表birt開發(fā)手冊檬剁啞降輝訝佳安餅擬捉妄迭袁媳臍世賭虛香姆薛俺嚇愈賞礁
3、尋灘潤枚垃枝嘻拒競胳鋒冕佐費葛弄療寧受鄂富秀鋤令焙敲閡博剩高它白球嚷鋁宙唇酋躁齲拿銘喊癢餃捷料阜環(huán)創(chuàng)澗踞鹼胡瞻遏辣犢忙既扁埃翱稼沉舍逝聳詛扇賊裝菏父緊偷糟奮崩數(shù)霓邑盼梗娩解栗漠甜巫揣捍惹晰甫哭締癰迸砷覆污匹孝伐源屁鈾枯賺毯腥潔畦昂純羹決惠收氰偉擋腸問夷佬鏟韭惑氓蚌肇子廳舵灼批棉寒切滓厘遭丈霹娟吃婉拐芬誡畫魁撰零鈔稽菜某式苫鏈看近篙楞枝凍漢進添纂掖錨眉餞郁應(yīng)鯨尾傘造幻范旭販益瓊假槳譚閩慌效丟殉陌諱員畔憊卉椽礬姬舞拓慮寧孽偏蹭剝外買袁柴堤逐脅高為建饅梭扶瘦征目 錄1birt介紹51.1報表介紹51.2基本概念51.3豐富的報表51.4birt報表由四部分組成61.5報表設(shè)計器62birt插件安裝8
4、2.1插件版本說明82.2插件安裝92.2.1完全安裝92.2.2更新安裝:92.2.3分步安裝93birt報表開發(fā)實戰(zhàn)133.1創(chuàng)建報表133.1.1創(chuàng)建報表工程133.1.2創(chuàng)建報表143.2數(shù)據(jù)源配置163.3創(chuàng)建數(shù)據(jù)集193.4網(wǎng)格報表203.4.1創(chuàng)建數(shù)據(jù)源213.4.2創(chuàng)建數(shù)據(jù)集213.4.3對報表進行布局213.4.4格式化與預(yù)覽233.5分組報表243.5.1創(chuàng)建數(shù)據(jù)源253.5.2構(gòu)建數(shù)據(jù)集253.5.3對報表進行布局253.5.4設(shè)定分組數(shù)據(jù)253.5.5格式化報表273.6交叉報表283.6.1構(gòu)建數(shù)據(jù)源283.6.2構(gòu)建數(shù)據(jù)集283.6.3在報表中加入交叉報表283.6
5、.4數(shù)據(jù)準備293.6.5向交叉表插入數(shù)據(jù)323.6.6加入?yún)R總333.6.7格式化報表343.7嵌套報表353.7.1構(gòu)建數(shù)據(jù)源363.7.2構(gòu)建數(shù)據(jù)集363.7.3布局嵌套報表383.7.4將table綁定數(shù)據(jù)集393.7.5設(shè)定主表數(shù)據(jù)393.7.6設(shè)定子表數(shù)據(jù)403.8交互報表423.8.1創(chuàng)建報表、數(shù)據(jù)源433.8.2創(chuàng)建數(shù)據(jù)集433.8.3加入響應(yīng)參數(shù)453.8.4布局報表473.8.5插入報表數(shù)據(jù)483.8.6格式化與預(yù)覽493.9報表鉆取513.9.1設(shè)定響應(yīng)參數(shù)513.9.2預(yù)覽結(jié)果543.10圖表報表553.10.1為報表插入圖表553.10.2設(shè)定圖表屬性553.10.3
6、圖表預(yù)覽603.11多層交叉報表613.11.1構(gòu)建數(shù)據(jù)源613.11.2構(gòu)建數(shù)據(jù)集613.11.3在報表中加入交叉報表623.11.4數(shù)據(jù)準備633.11.5向交叉表插入數(shù)據(jù)633.11.6格式化與預(yù)覽643.12多層交叉匯總報表653.12.1加入?yún)R總653.12.2格式化與預(yù)覽663.13其他673.13.1格式化報表6表頭與標題6設(shè)定單元格格式6樣式套用6數(shù)據(jù)元素格式化693.13.2分頁、頁眉與頁腳70設(shè)置分頁顯示70設(shè)置分頁打印70設(shè)置頁眉頁腳713.13.3隔行
7、高亮度顯示733.13.4對報告進行布局7添加|刪除行或列7指定行高或列寬7添加圖像773.13.5數(shù)據(jù)綁定794birt報表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類與報表交互924.3birt腳本參考985birt報表部署995.1直接使用運行birt-runtime-2_2_0包中的webviewerexample995.2集成到已有web應(yīng)用1005.3數(shù)據(jù)庫驅(qū)動位置10
8、75.4報表url說明1075.5web.xml配置1135.6perties說明1155.7birt在jsp中tag使用1165.8關(guān)于birt編碼1231 birt介紹1.1 報表介紹birt商業(yè)智能和報表工具。birt是一個eclipse-based開放源代碼的報表系統(tǒng),它主要是用在基于java和j2ee的web應(yīng)用程序上。birt主要由兩部分組成:一個是基于eclipse的報表設(shè)計器和一個可以添加到應(yīng)用服務(wù)器的運行組建。birt同時提供一個圖形報表制作引擎。birt可以像畫table一樣畫報表,也可以生成圖片、導(dǎo)出excel、html、pdf、ppt等分頁,樣式比s
9、cript設(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 報表以及報表項,報表可視為是針對一組數(shù)據(jù)集的表現(xiàn)形式,而報表項這是這個表現(xiàn)形式的某個具體的單元。它們之間的關(guān)系,與窗體和控件的關(guān)系非常類似。報表、數(shù)據(jù)集、數(shù)據(jù)源三者間的關(guān)系:數(shù)據(jù)源 - 數(shù)據(jù)集 - 報表。 l 報表參數(shù):查詢參數(shù)的表現(xiàn)形式,使用它可以構(gòu)建更靈活的報表。 l 模板和庫:主要用于復(fù)用報表設(shè)計,提高報表開發(fā)的效率1.3 豐富的報表列表 列表是最簡單的報表。當(dāng)列表變長時,你可以把
10、相關(guān)數(shù)據(jù)增加到同一分組(基于客戶的訂單分組,基于供應(yīng)商的產(chǎn)品分組)。如果數(shù)據(jù)是數(shù)字類型的,你可以輕松的添加到“總數(shù)”、“平均”、或其他匯總中。圖表 當(dāng)需要圖表表現(xiàn)時,數(shù)字型數(shù)據(jù)比較好理解。birt 也提供餅狀、線狀以及柱狀圖標等。交叉表 交叉表(也叫做十字表格或矩陣)用兩種維度展示數(shù)據(jù):sales per quarter or hits per web page。(交叉表在 1.0.1 中沒有提供,但計劃在將來提供。)信函和文檔 通知、信件、以及其他文本文檔都很容易通過 birt 方便建立。文檔包括正文、格式、列表、圖表等?;旌蠄蟊?很多報表需要聯(lián)合以上所有的報表構(gòu)成單一文檔。例如,一份客戶聲
11、明會列出客戶所需要的信息,為當(dāng)前促進(promotions)提供文本,以及提供并行的出帳和入帳列表。一份財政報表將包括聲明、圖表、表格,所有這些都將進行全方位的格式化,來匹配共有的配色方案。1.4 報表由四部分組成數(shù)據(jù) 數(shù)據(jù)庫、web 服務(wù)、java 對象,這些都可以作為 birt 報表源。1.0.1 版本提供 jdbc 支持,也支持利用編碼來獲取其他地方的數(shù)據(jù)。birt 的 oda(open data access) 框架允許任何人構(gòu)建新的 ui 以及運行時支持任何類型的表格式數(shù)據(jù)。未來,單一報表可包含從任意多個數(shù)據(jù)源獲取數(shù)據(jù)。數(shù)據(jù)轉(zhuǎn)換 報表通過對數(shù)據(jù)的分類、統(tǒng)計、過濾以及分組來適應(yīng)用戶需求
12、。當(dāng)然,數(shù)據(jù)庫能實現(xiàn)這些功能,當(dāng)遇到普通文件和 java 對象時 birt 必須以 "simple" 數(shù)據(jù)源方式處理。birt 允許復(fù)雜的操作,比如總合分組、整體共計的百分比,等等。業(yè)務(wù)邏輯 真實世界的數(shù)據(jù)很少提供你理想的結(jié)構(gòu)良好的報表。許多報表要求用具體邏輯把原始數(shù)據(jù)轉(zhuǎn)換成用戶的有用信息。如果該邏輯僅僅用于該報表,你可以用 birt 的 javascript 腳本支持。如果你的程序中已包含這些邏輯,你可以調(diào)用已有的 java 代碼。表現(xiàn) 一旦數(shù)據(jù)準備好了,你可以在很大的范圍內(nèi)選擇表現(xiàn)形式。表格、圖表、文字等等都可以。單一數(shù)據(jù)集可以有多種方式表現(xiàn),而單一報表可以表現(xiàn)多個數(shù)據(jù)
13、集。1.5 報表設(shè)計器數(shù)據(jù)瀏覽器 把你的數(shù)據(jù)源(連接)以及數(shù)據(jù)集(查詢)組織起來。數(shù)據(jù)集編輯器允許你測試數(shù)據(jù)集,以確保報表接收數(shù)據(jù)的正確性。布局視圖(layout) 所見即所得編輯器為你的報表提供以拽方式來創(chuàng)建表現(xiàn)內(nèi)容。包含一個標準報表條目調(diào)色板。屬性編輯器(property editor) 以便利的格局表現(xiàn)大多數(shù)通用的用戶屬性使編輯更快速和容易。birt 也集成了標準 eclipse 屬性視圖,為每個條目提供詳細的屬性列表。報表預(yù)覽(preview) 你可以在任何時間采用真實數(shù)據(jù)測試你的報表。預(yù)覽窗口直接內(nèi)嵌在 eclipse 中。代碼編輯器(script) 在訪問數(shù)據(jù)以及報表生成或瀏覽時,
14、腳本把業(yè)務(wù)邏輯添加給報表。在編輯腳本時代碼編輯器提供標準的 eclipse 特性:語法加色、自動完成等等。birt 用很簡單的腳本來表達,expression builder 能更容易的創(chuàng)建這些表達。略圖(outline) birt 報表被組織為一個樹型結(jié)構(gòu)作為整體報表的根,并且為樣式、報表內(nèi)容、數(shù)據(jù)源、數(shù)據(jù)集、報表參數(shù)等分類。略圖視圖提供你整個報表結(jié)構(gòu)緊湊的預(yù)覽。cheat sheets 學(xué)習(xí)新工具永遠是種挑戰(zhàn),但是 eclipse 提供一種創(chuàng)新方案:cheat sheets。它們是一些幫助你完成新任務(wù)的文檔。2 birt插件安裝2.1 插件版本說明emf, gef 和 birt 都是需要通
15、過 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,圖形編輯框架,是一個通過 birt ui
16、使用的eclipse 插件。emf:eclipse modeling framework,用來制作圖表的框架。dtp: datatools platform,管理數(shù)據(jù)源驅(qū)動程序,以及訪問特殊數(shù)據(jù)源實例的配置。wtp: web tools platform,另外,本手冊中介紹實例使用的derby數(shù)據(jù)庫。2.2 插件安裝2.2.1 完全安裝到eclipse的官方網(wǎng)站/birt/downloads去下載 帶有birt 插件的eclipse平臺(birt-report-designer-all-in-one-2_2_0),解壓后,它就是一個擁有 bi
17、rt插件的eclipse,您可以直接使用。下載所在網(wǎng)頁:/downloads/download.php?file=/birt/downloads/drops/r-r1-2_2_0-200706261010/birt-report-designer-all-in-one-2_2_0.zip download from: eclipse downloads - mirror selection2.2.2 更新安裝:birt 2.1開始,可以在 eclipse 里直接下載。在eclipse里按照:help>software up
18、dates>find and install的路徑來進行即可。2.2.3 分步安裝首先下載安裝jre 1.5;1、 下載安裝eclipse 3.3下載地址:/eclipse/downloads/drops/r-3.3-200706251500/winplatform.php#eclipsesdk打開網(wǎng)頁:/eclipse/downloads/drops/r-3.3-200706251500/index.php點擊下圖中的“eclipse sdk”鏈接即可下載。下載到文件eclipse-
19、sdk-3.3-win32.zip,解壓至安裝目錄,比如我們把它安裝到c:program files中;2、 下載安裝插件wtp 2.0,下載地址:/downloads/download.php?file=/webtools/downloads/drops/r2.0/r-2.0-200706260303/wtp-r-2.0-200706260303.zip&url=打開下面的網(wǎng)頁點擊網(wǎng)頁中download from后的鏈接即可進行下載。/downloads/download.php?file=/webt
20、ools/downloads/drops/r2.0/r-2.0-200706260303/wtp-r-2.0-200706260303.zip下載到文件wtp-r-2.0.zip,將其解壓至eclipse安裝目錄c:program files即可;方法如下:右鍵點擊壓縮文件,選擇解壓文件,彈出解壓路徑和選項:將目標路徑改為我們安裝eclipse的安裝目錄:c:program files點擊確定。在解壓時,如果出現(xiàn)“文件已存在”,選擇“全部選是”進行覆蓋就可以了。3、 下載安裝gef 3.3 release, gef runtime,下載地址:/down
21、loads/download.php?file=/tools/gef/downloads/drops/r-3.3-200706281000/gef-runtime-3.3.zip打開網(wǎng)頁:/tools/gef/downloads/drops/r-3.3-200706281000/index.php點擊:runtime中download下方的鏈接即可。下載到文件gef-runtime-3.3.zip,解壓至安裝目錄,方法同上。4、 下載安裝emf & sdo rt version 2.3,下載地址:http:/www.eclipse.o
22、rg/downloads/download.php?file=/modeling/emf/emf/downloads/drops/2.3.1/m200708142030/emf-sdo-sdk-m200708142030.zip&url=打開下面的網(wǎng)頁點擊網(wǎng)頁中download from后的鏈接即可進行下載。/downloads/download.php?file=/modeling/emf/emf/downloads/drops/2.3.1/m200708142030/emf-sdo-sdk-m200708142030.zip下載到文件emf
23、-sdo-sdk.zip,解壓至安裝目錄,方法同上。5、 下載安裝dtp version 1.5,下載地址:/downloads/download.php?file=/datatools/downloads/1.5/dtp-sdk_1.5_20070704.zip&url=打開下面的網(wǎng)頁點擊網(wǎng)頁中download from后的鏈接即可進行下載。/downloads/download.php?file=/datatools/downloads/1.5/dtp-sdk_1.5_20070704.zip下載到
24、文件dtp-sdk_1.5.1.zip,解壓至安裝目錄,方法同上。6、 下載安裝birt release 2.2,下載地址:/downloads/download.php?file=/birt/downloads/drops/r-r1-2_2_0-200706261010/birt-report-framework-2_2_0.zip&url=打開下面的網(wǎng)頁點擊網(wǎng)頁中download from后的鏈接即可進行下載。/downloads/download.php?file=/birt/downloads/
25、drops/r-r1-2_2_0-200706261010/birt-report-framework-2_2_0.zip下載到文件birt-report-framework-2_2_0.zip,解壓至安裝目錄,方法同上。安裝完畢,即可進入使用。如果您只是缺少其中的某幾個插件,下載后按照上述方法安裝即可,但要注意版本的匹配。3 birt報表開發(fā)實戰(zhàn)3.1 創(chuàng)建報表3.1.1 創(chuàng)建報表工程1. 選擇文件->新建->項目。如下圖中的新建項目將顯示可以創(chuàng)建的項目的類型。2. 展開商業(yè)智能和報表工具(business intelligence and reporting tools),選擇
26、報表項目(report project),然后選擇下一步。3. 在新建報表項目的工程名稱中輸入下列文本,如圖所示:my report 4. 要添加項目,請選擇完成?,F(xiàn)在可在導(dǎo)航器視圖中看到該項目,如圖所示。3.1.2 創(chuàng)建報表1. 選擇文件->新建->報表。如下圖:2. 選擇my report,輸入報表文件名稱,如:customers.rptdesign3. 選擇next。4. 可以通過一下方式創(chuàng)建報表:l 從空白報表開始設(shè)計l 使用預(yù)定義的報表模版5. 選擇finish。新報表將出現(xiàn)在主窗口中,布局編輯器將顯示空的報表頁。如下圖所示:3.2 數(shù)據(jù)源配置在布局編輯器中開始設(shè)計報表之
27、前,構(gòu)建 birt 數(shù)據(jù)源以將報表連接至數(shù)據(jù)庫或其他類型的數(shù)據(jù)源。構(gòu)建數(shù)據(jù)源時,要指定驅(qū)動程序類、數(shù)據(jù)源名稱和其他連接信息(例如,用戶名和密碼)。birt自帶一個已經(jīng)配置為與 birt 報表設(shè)計器配合使用的樣本數(shù)據(jù)庫 classic models,對于本教程使用的是derby數(shù)據(jù)庫。1. 選擇數(shù)據(jù)資源管理器(data explorer)。如果使用缺省報表設(shè)計透視圖,則數(shù)據(jù)資源管理器位于布局編輯器的左邊,在選用板(palette)的旁邊,如圖所示。如果它尚未打開,則選擇窗口->顯示視圖->數(shù)據(jù)資源管理器。2. 右鍵單擊data sources然后從上下文菜單中選擇新建數(shù)據(jù)源。新建數(shù)據(jù)
28、源顯示可以創(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 source 通過編寫腳本獲取數(shù)據(jù)源。l web services data source 通過web service方式獲取數(shù)據(jù)源。l xml data source 從xml文件獲取數(shù)據(jù)源。 3. 這里我們介紹通過jdbc data source 配置
29、數(shù)據(jù)源。選擇jdbc data source ,輸入數(shù)據(jù)源名稱,點擊next,配置jdbc信息。如下圖:l 首先,單擊manage drivers添加驅(qū)動包。如下圖:單擊add,選擇derby數(shù)據(jù)庫的derbyclient.jar驅(qū)動包。點擊ok,驅(qū)動完成添加。l 配置信息:driver class: org.apache.derby.jdbc.clientdriver (v10.1)(通過下拉菜單可以找到)database url: jdbc:derby:/【host】:1527/【database】user name:用戶名password:密碼4. 測試連接,測試前查看derby數(shù)據(jù)庫是
30、否啟動;點擊test connection。出現(xiàn)connection successful.對話框表示數(shù)據(jù)源創(chuàng)建成功。點擊finish完成。3.3 創(chuàng)建數(shù)據(jù)集數(shù)據(jù)集標識要從數(shù)據(jù)源檢索的數(shù)據(jù)。我們是通過連接至 jdbc 數(shù)據(jù)源,則使用 sql select 語句來標識要檢索的數(shù)據(jù)。1. 在數(shù)據(jù)資源管理器(data explorer)中,右鍵單擊數(shù)據(jù)集(data set)并從上下文菜單中選擇新建數(shù)據(jù)集。2. 在新建數(shù)據(jù)集的數(shù)據(jù)集名稱中,輸入下列文本,如圖所示:3. 對于其他字段選擇缺省值。data set types 數(shù)據(jù)集類型一般使用jdabc數(shù)據(jù)源連接分為兩種:一種是sql select qu
31、ery為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 查詢的信息??捎庙椓惺緮?shù)據(jù)庫中的所有表??梢詥螕舯砼赃叺募犹枺?)標志來顯示該表的各個列。編輯數(shù)據(jù)集右邊的文本區(qū)域顯示 sql select 語句的必需關(guān)鍵字:5. 在文本區(qū)域中,輸入下列 sql select 語句以指定要檢索的數(shù)據(jù):如:select * from
32、ebank.customer雖然數(shù)據(jù)集編輯器以大寫字母顯示表和列名稱,但可用您喜歡的方式輸入這些名稱,因為 sql 不區(qū)分大小寫。如果您不想輸入查詢,則可將列和表從可用項拖動到文本區(qū)域。6. 選擇finish以保存數(shù)據(jù)集。編輯數(shù)據(jù)集將顯示在查詢中指定的列,并提供編輯數(shù)據(jù)集的選項。7. 選擇預(yù)覽結(jié)果(preview results)以確保查詢有效并且它返回正確的數(shù)據(jù)。如果正確輸入了 select 語句,您應(yīng)該看到圖中顯示的結(jié)果。這些是查詢返回的數(shù)據(jù)行。8. 選擇ok,數(shù)據(jù)集創(chuàng)建成功。3.4 網(wǎng)格報表網(wǎng)格報表是報表最通用的模式,在大多數(shù)報表中,都需要或部分需要將一組(多條)數(shù)據(jù)結(jié)構(gòu)完全相同的數(shù)據(jù)以
33、表格形式順序展現(xiàn)出來。如:通過此例我們先來看一看如何制作一張簡單的報表。我們需要建立一張顯示所有銀行客戶及其相關(guān)信息的的報表。3.4.1 創(chuàng)建數(shù)據(jù)源方法同上例.2 創(chuàng)建數(shù)據(jù)集方法同上例3.3. 數(shù)據(jù)集名稱為:customer。客戶的信息存在customer表中,我們需要輸入如下語句:select ebank.customertype.typename,ebank.customer.*from ebank.customer,ebank.customertypewhere ebank.customer.customertype = ebank.customertype.typeid3
34、.4.3 對報表進行布局1在本過程中,您在報告頁中插入元素以顯示先前創(chuàng)建的數(shù)據(jù)集的數(shù)據(jù)。先插入一個表元素,然后在該表中插入數(shù)據(jù)元素。2選擇選用板“palette”。選用板顯示所有可布置在報告中的元素。3為了以后的表布局美觀,我們先從選用板中的“gird”元素拖拽放入布局編輯器內(nèi)(即文件的“l(fā)ayout”視圖)的報告中,插入時提示您要制定創(chuàng)建的行列數(shù)的詳細信息:輸入1列2行,4然后,將選用板中的表元素“table”拖放到布局編輯器內(nèi)的報告中。插入表提示您指定要對此表創(chuàng)建的列數(shù)和詳細信息行數(shù)。指定5列和1個詳細信息行,然后選擇“確定”。具有5列和1個詳細信息行的表將出現(xiàn)在布局編輯器中?,F(xiàn)在,您就可
35、以在該表中插入數(shù)據(jù)了。5選擇數(shù)據(jù)資源管理器data explorer視圖。在data explorer視圖中,展開“data sets”,然后展開customers,在查詢中指定的列將出現(xiàn)在customers下面。將customer_name從data explorer中拖放到表的詳細信息行“detail row”中的第一個單元格內(nèi)(如下圖)。詳細信息行顯示報告中的主要數(shù)據(jù)。在完成的報告中,詳細信息行重復(fù)顯示數(shù)據(jù)集中的所有數(shù)據(jù)行。6然后采用同樣的方法將customer_id,typename,fax,tel這四個數(shù)據(jù)項從data explorer中拖放到表的詳細信息行中,完成的報告中,詳細信息
36、行重復(fù)顯示數(shù)據(jù)集中的所有數(shù)據(jù)行。如下圖:7選中報表格左下角的“”(如上圖),在下方的視圖中會顯示本table的信息:選擇第二項“binding”,將data set的下拉框選為“customer”,下方的data colum binding中就會顯示我們數(shù)據(jù)集中的數(shù)據(jù)項,通過此步我們將本報表與數(shù)據(jù)集綁定起來,否則將不能顯示(一般將數(shù)據(jù)集中的數(shù)據(jù)項拖拽如table中后,會自動將次數(shù)據(jù)集的數(shù)據(jù)項與本報表綁定,我們可以不用進行這步操作。但我們必須得清楚這個操作)。完成后,表格的基本設(shè)置就算做完了。3.4.4 格式化與預(yù)覽通過布局編輯器中選擇“preview”可對我們設(shè)計的報表進行預(yù)覽。我們通過一系列
37、格式化操作,將報表進行美化。完成以后則可,通過工具欄中提供的各種不同的視圖模式來進行預(yù)覽,如下:使用默認的view report in web viewer預(yù)覽結(jié)果如下:3.5 分組報表在網(wǎng)格報表的基礎(chǔ)上,我們可能還需要對數(shù)據(jù)進行進一步的處理。比如,將同類數(shù)據(jù)顯示在一個組中,并對這個組進行統(tǒng)計運算。如下圖所示,對數(shù)據(jù)按省份進行分組,并將同一省份數(shù)據(jù)放在一個組內(nèi)進行匯總統(tǒng)計。下面我們將上例的網(wǎng)格報表進行一下小的改進,建立一個按用戶類型進行分組的報表。3.5.1 創(chuàng)建數(shù)據(jù)源方法同上例。3.5.2 構(gòu)建數(shù)據(jù)集本例所用的數(shù)據(jù)集與上例完全相同,輸入與上例3.4.2相同的sql語句建立數(shù)據(jù)集即可。3.5.
38、3 對報表進行布局1做好上面的工作之后,先在布局編輯器中建立一個1列2行的grid,2同上例一樣,從選用板“palette”中拖拽一個5列1行的table至第二行的網(wǎng)格中,3從data explorer視圖中的“data sets”項中將typename拖拽至此table的第一個詳細信息行中,然后依次將,customer_id,customer_name,fax,tel拖拽入詳細信息行內(nèi)。這里不再贅述。3.5.4 設(shè)定分組數(shù)據(jù)1選中table,在右下方的table的屬性編輯器“property editor - table”中,選擇group,進入如下分組設(shè)定界面:2點擊“add”按鈕進行添加
39、分組:從“group on”的下拉框選擇typename,其他默認,(可根據(jù)需要對“name”項進行命名),然后選擇“ok”。完成分組設(shè)定。3這時table中多出一行g(shù)roup行,如下圖:將詳細信息欄中的typename(即table中第三行第一列數(shù)據(jù)項,如上圖標記下方的數(shù)據(jù)項)刪除。這樣,一個按照用戶類型建立的分組報表就建立起來了。3.5.5 格式化報表進行報表格式化處理后,預(yù)覽如下效果:3.6 交叉報表3.6.1 構(gòu)建數(shù)據(jù)源方法同上。3.6.2 構(gòu)建數(shù)據(jù)集1在定義好數(shù)據(jù)集的基本信息之后,進入sql select 語句查詢界面,輸入如下sql語句,進行數(shù)據(jù)集的創(chuàng)建:select ebank.
40、customer.customer_name,ebank.product.product_name,ebank.contractsum.*from ebank.customer,ebank.product,ebank.contractsumwhere ebank.contractsum.customer = ebank.customer.customer_idand ebank.contractsum.product = ebank.product.product_id2如果創(chuàng)建正確,在結(jié)果預(yù)覽窗口“preview relusts”中將看到一下信息:點擊“ok”完成數(shù)據(jù)集的創(chuàng)建。3.6.3 在
41、報表中加入交叉報表1 同上例,先在布局編輯器中建立一個1列2行的grid。2 從選用板“palette”視圖中拖拽一個“cross tab”至第二行的網(wǎng)格中。在布局編輯器中可以看到我們創(chuàng)建的cross tab的樣式。3.6.4 數(shù)據(jù)準備1 選擇數(shù)據(jù)資源管理器“data explorer”。右鍵單擊“data cubes”,選擇“new data cube”,進入如下交叉表數(shù)據(jù)編輯界面:2 默認選擇的是“dayaset”,name:為cube命名,customer cubeprimery dataset:選擇相關(guān)的數(shù)據(jù)集。打開下拉菜單選擇之前建立的數(shù)據(jù)集contract3 在左邊的主菜單中選擇第
42、二項“groups and summeries”,出現(xiàn)如下窗口(),在將available fields中的customer_name拖拽到右邊groups (dimensions)中標有“(drop a field here to create a group)”的地方,如下圖。拖拽完畢之后彈出如下窗口:所有選項都選默認數(shù)據(jù)。點擊“ok”進入下一步4 按照地4步的方法,將available fields中的product_name也拖拽到右邊的對應(yīng)地方。5 將available fields中的amount拖拽到右邊summary fields (measures)中標有“(drop a f
43、ield here to create a summary field)”的地方。彈出下面窗口,同樣選擇默認數(shù)據(jù),點擊“ok”進入下一步。數(shù)據(jù)設(shè)定好以后,我們可以在“data explorer”看到data cubes的信息如下圖:3.6.5 向交叉表插入數(shù)據(jù)1 在 data explorer視圖中,將customer cube中的customer_name拖拽并放置于布局編輯器中cross tab的標有“drop data field(s) to define rows here”的區(qū)域中。如下圖:同第一步,將customer cube中的product_name拖拽并放置于布局編輯器中的c
44、ross tab中標有“drop data field(s) to define rows here”的區(qū)域中;然后將customer cube中的amount拖拽并放置于布局編輯器中的cross tab中標有“drop data field(s) to be summarized here”的區(qū)域中。上圖所示:2 完成上述步驟之后,布局編輯器中的cross tab出現(xiàn)如下圖中的樣式:我們將cross tab中第二列的amount的標題菜單刪掉。如果不去掉,就會在報表的產(chǎn)品標題菜單下方出現(xiàn)一行“amount”的標題,不僅多于,而且影響美觀。3.6.6 加入?yún)R總1 點擊cross tab左下角的
45、“cross tab”圖標選中本交叉表。在property editor屬性編輯器中選擇“row area”,如下圖:在左邊的選項欄中選擇第二個選項“grand totals”2 點擊“add”,添加行匯總元素。彈出如下窗口:選用默認的數(shù)據(jù),點擊“ok”進入下一步。3 在property editor屬性編輯器中選擇“colum area”,同第一步加入列匯總。添加完畢,布局編輯器出現(xiàn)如下視圖:這樣,一張交叉匯總表基本上完成了。3.6.7 格式化報表格式化報表:預(yù)覽如下圖:3.7 嵌套報表嵌套報表其實是一種設(shè)計技巧的應(yīng)用,類似編碼過程中的模塊化設(shè)計。當(dāng)報表的復(fù)雜程度讓設(shè)計者開始覺得邏輯混亂的時
46、候,可以使用嵌套報表設(shè)計方法,將報表拆分為多個不同的設(shè)計頁面,然后使用一個總的頁面將這些設(shè)計頁面整合起來展現(xiàn)。此外,嵌套報表有時候也會用于主從結(jié)構(gòu)的實現(xiàn),通過逐層嵌套,可以實現(xiàn)無限層次的主從結(jié)構(gòu)數(shù)據(jù)展現(xiàn)。本例,我們將每個客戶的信息包括客戶表中基本的信息以及他們的訂單信息,在同一張表中按客戶一一列出來,所使用的就是嵌套報表。報表名我們定為:nestingtab.rptdesign3.7.1 構(gòu)建數(shù)據(jù)源本例我們使用birt自帶的數(shù)據(jù)源,在新建數(shù)據(jù)源選擇數(shù)據(jù)源類型為默認的第一項:classic model inc,sample database數(shù)據(jù)庫驅(qū)動類別;org.eclipse.birt.rep
47、ort.data.oda.sampledb.driver (classic models inc. sampledb driver);url:jdbc:classicmodels:sampledb3.7.2 構(gòu)建數(shù)據(jù)集本例我們需要建立2個數(shù)據(jù)集:1 建立數(shù)據(jù)集payments,所用sql語句:(這里我們加入條件選擇訂單大于150000)select customernumber,sum(amount) amountfrom classicmodels.paymentsgroup by customernumberhaving sum(amount)>150000order by amou
48、nt desc2 建立數(shù)據(jù)集customers:所用sql語句:select *from classicmodels.customers where classicmodels.customers.customernumber = ?輸入sql語句后,還要在數(shù)據(jù)集編輯窗口選擇parameters選項。雙擊默認參數(shù)pram1或者選擇“edit”,彈出如下窗口:輸入:name:custid;default value:103;其它默認完成后,在preview result選項中就可看見結(jié)果預(yù)覽:3.7.3 布局嵌套報表1 同上例,先在布局編輯器中建立一個1列2行的grid。2 從選用板“palet
49、te”視圖中拖拽一個2行2列“table”至第二行的網(wǎng)格中;3 選中table的第一個“detail row”行,右鍵點擊后選擇“merge cells”將本行兩列合并為一列。本行用來顯示主表的信息4 從選用板“palette”視圖中拖拽一個“table”的至第二個“detail row”行中的第一格中,設(shè)定其為2列4行。完成后將這個剛插入的子表的“header row”和“footer row”刪除掉。5 向主表的第二個“detail row”行的第二格進行與上一步同樣的操作,插入一個相同的子表。第4、5兩步所加的兩個子表其實是用來加入客戶信息的,所用到到的數(shù)據(jù)都是customers數(shù)據(jù)集里
50、的數(shù)據(jù),這里用兩個表來進行展現(xiàn)完全是為了整體布局的美觀。布局配置完畢,布局編輯器中會呈現(xiàn)如下圖:3.7.4 將table綁定數(shù)據(jù)集1 將table綁定數(shù)據(jù)集:在布局編輯器中選中主表table,下方出現(xiàn)table的屬性編輯器property edit,選中標題欄的binding欄,從dat set中選擇payments數(shù)據(jù)集。彈出窗口選擇“yes”即可。點擊“ok”完成。2 設(shè)定排序:接著在property edit編輯器中選中“sorting”欄,點擊“add”添加排序變量,從彈出窗口的下拉菜單中選擇“customernumber”,即按照編號排序,排序方法選擇“ascending”(升序)。
51、點擊“ok”完成。(讀者根據(jù)實際情況的需要可以通過同樣的方法選擇按照不同的變量來進行排序)3.7.5 設(shè)定主表數(shù)據(jù)1 加入網(wǎng)格:從選用板“palette”視圖中拖拽一個grid至主表table的第一行“detail row”中,設(shè)定其為4列1行。2 插入數(shù)據(jù):展開選擇數(shù)據(jù)資源管理器“data explorer”,將數(shù)據(jù)集payment中“customernumber”與“amount”兩個數(shù)據(jù)項分別拖拽至我們剛插入的grid的第2格與第4格中。并將其格式都設(shè)定為居左。3 加入數(shù)據(jù)標題lable 從選用板“palette”視圖中拖拽lable至grid的第1格與第3格中,分別輸入“客戶號:”與“
52、金額:”,并將其格式都設(shè)定為居右設(shè)定好之后,視圖如下:3.7.6 設(shè)定子表數(shù)據(jù)1 設(shè)定參數(shù)綁定:在布局編輯器中選中子表table,下方出現(xiàn)table的特定編輯器property edit,選中標題欄的binding欄,在“”點擊按鈕“dataset parameter binding”,進入后雙擊默認的變量進入進行設(shè)置,點擊“value”標簽后的函數(shù)符號“”,進入如下界面:如圖依次選擇需要插入的數(shù)據(jù),在第三個框中,雙擊“customernumber”進行插入。依次點擊“ok”,完成對另外一個子表也需進行如上操作。2 插入數(shù)據(jù)展開選擇數(shù)據(jù)資源管理器“data explorer”,將數(shù)據(jù)集cust
53、omers中的“customernam”、“city”、“phone”、“addressline1”拖拽至第一個子表table的第二列中,將第一列的各個單元格同樣拖拽進去一個“text”,分別輸入子項標題“客戶名”、“城市”、“電話”、“住址”。然后將數(shù)據(jù)集customers中的“postalcode”、“addressline2”、“salesrepemployeenumber”、“creditlimit”拖拽至第二個子表table的第二列中,將第一列的各個單元格同樣拖拽進去一個“text”,分別輸入子項標題“郵編”、“所在住所”、“雇員號”、“余額”這樣整個嵌套報表的數(shù)據(jù)配置已經(jīng)完畢,如果
54、配置正確,布局將會如下:結(jié)果預(yù)覽:3.8 交互報表交互式報表就是存在與用戶交互的通道,在查詢交互式報表的結(jié)果時,需要用戶輸入一定的參數(shù),輸出結(jié)果就會顯示出參數(shù)所對應(yīng)的結(jié)果。在本例中,我們將客戶信息做成交互式報表,在用戶輸入客戶的編號之后,我們就會看到對應(yīng)客戶的信息。3.8.1 創(chuàng)建報表、數(shù)據(jù)源方法同上,報表名我們定位:peportofalternant.rptdesign3.8.2 創(chuàng)建數(shù)據(jù)集本例我們需要建立3個數(shù)據(jù)集:1 建立數(shù)據(jù)集customerid,所用sql語句:select ebank.customer.customer_id,ebank.customer.customer_namefrom ebank.customerwhere
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球工業(yè)用1-溴丙烷行業(yè)調(diào)研及趨勢分析報告
- 某五星級超豪華商務(wù)餐飲大酒店項目可行性研究報告
- 野生干竹蓀行業(yè)市場發(fā)展及發(fā)展趨勢與投資戰(zhàn)略研究報告
- 浴室彎門行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 2025年拉幅定型機項目可行性研究報告
- 2025-2030年中國恩諾沙星原粉項目投資可行性研究分析報告
- 2025年消渴平片項目可行性研究報告
- 氦硝安定項目可行性研究報告
- 2025年度建筑工程估價委托合同規(guī)范文本
- 四川省自貢市2024-2025學(xué)年上學(xué)期八年級英語期末試題(含答案無聽力音頻及原文)
- 2025-2030年中國汽車防滑鏈行業(yè)競爭格局展望及投資策略分析報告新版
- 2025年上海用人單位勞動合同(4篇)
- 新疆烏魯木齊地區(qū)2025年高三年級第一次質(zhì)量監(jiān)測生物學(xué)試卷(含答案)
- 衛(wèi)生服務(wù)個人基本信息表
- 高中英語北師大版必修第一冊全冊單詞表(按單元編排)
- 苗圃建設(shè)項目施工組織設(shè)計范本
- 廣東省湛江市廉江市2023-2024學(xué)年八年級上學(xué)期期末考試數(shù)學(xué)試卷(含答案)
- 學(xué)校食品安全舉報投訴處理制度
- 2025年生物安全年度工作計劃
- 安徽省蕪湖市2023-2024學(xué)年高一上學(xué)期期末考試 生物 含解析
評論
0/150
提交評論