Eclipse BIRT使用之BIRT Designer篇
在開(kāi)源的報表工具中,Eclipse的BIRT(Business Intelligence and Reporting Tools ,簡(jiǎn)稱(chēng)BIRT)應該是很重要的一種。BIRT基于Eclipse IDE開(kāi)發(fā),可以為Java/J2EE應用提供良好的圖形及報表。該報表工具主要包括以下幾大塊組成:
l BIRT Designer:用于進(jìn)行報表的設計,因為以出報表之前,第一步需的做的就是設計模板,幾乎所有的報表工具都采用這樣的模式,如著(zhù)名的JasperReports就有專(zhuān)門(mén)的iReports來(lái)進(jìn)行報表設計。
l Web Viewer:在頁(yè)面上展現報表的工具,提供了大量的JSP標簽庫,方便將BIRT報表集成到J2EE項目中去。
l BIRT Charting包:用于構建成熟的圖表,因為在報表里如果能添加上圖表的話(huà),則可以達到圖文并茂的效果。而BIRT Charting包正提供了這樣的功能。
BIRT項目最初是2005年夏季發(fā)布,如今其下載量已過(guò)百萬(wàn),充分的說(shuō)明了其受歡迎的程度??梢栽L(fǎng)問(wèn)BIRT的官方網(wǎng)站:http://www.eclipse.org/birt,這里有關(guān)于BIRT的介紹、教程、下載包、示例等等。
圖1 Eclipse BIRT報表
一、 BIRT Designer
BIRT的核心就在于BIRT Designer,該設計器使用Eclipse插件功能,可以使設計過(guò)程通過(guò)拖放控件進(jìn)行設計,達到所見(jiàn)即所得的效果。通過(guò)BIRT設計出來(lái)的報表文件,采用XML格式進(jìn)行保存。
圖2 BIRT Designer
在Eclipse BIRT設計器中,提供了多種視圖,以方便進(jìn)行模板文件的設計。各種設計視圖如下:
1.Report Editor:
Report Editor提供了報表設計的畫(huà)板,可以擺放設計元素并將其格式化。包括布局的表格、主頁(yè)面、腳本、XML 文件源及預覽。
l 布局表格:用于對整個(gè)報表界面進(jìn)行整體布局,框架性的組件,支持拖放功能;
l 主頁(yè)面:用于設置模板文件的共用屬性,如報表文件的頭、尾、背景圖片等;
l 腳本:支持對JavaScript腳本的編輯,BIRT支持事件模型,因此可以使用Java或JavaScript來(lái)編寫(xiě)事件處理器,事件處理器存在于報表的生成及渲染過(guò)程,可以用于修改報表的屬性、字體顏色、數據值或調用外部代碼;
l XML 文件源:用于查看報表模板中所用于的XML代碼,可以在這里進(jìn)行XML內容的查看或編輯。
l 預覽:把報表模板快速的渲染成為HTML格式文件進(jìn)行預覽。如下圖所示:
圖3 報表預覽
2.Data Explorer
在進(jìn)行報表設計之前,設置好數據庫連接通常是必須的。為了方便進(jìn)行數據庫的連接設置,BIRT提供了Data Explorer視圖。
圖4 BIRT Data Explorer
這種視圖下可以允許為報表添加數據源及數據集。當然這里的數據源指是的數據庫連接。BIRT提供了對JDBC、XML、腳本數據源等等的支持。隨著(zhù)BIRT 2.2的發(fā)布,將支持Web Service數據源、CSV、TSV、SSV及PSV等數據源。
而數據集可以理解為已經(jīng)被執行的查詢(xún)語(yǔ)句并返回的記錄集。BIRT提供了一種特殊的數據集:Joint Data Set(簡(jiǎn)稱(chēng)聯(lián)合數據集)。它可以對現在的數據集進(jìn)行內連接或是外連接。當使用不同的數據源的,這種功能非常的實(shí)用。
Data Explorer還可以用于添加報表參數及數據立方體。報表參數是暴露給報表模板使用人員的參數,參數傳遞相關(guān)參數值,可以個(gè)性化報表。例如,可以使用數據集參數來(lái)修改查詢(xún)語(yǔ)句,或使用BIRT JavaScript表達式來(lái)改變報表元素的樣式及可見(jiàn)性。
報表參數可以是靜態(tài)的,也可以是動(dòng)態(tài)的。靜態(tài)參數是指用戶(hù)可以從預先定義好的參數值可選取值,進(jìn)行相關(guān)的展示或運算,最簡(jiǎn)單就是文本框中的靜態(tài)內容。動(dòng)態(tài)參數一般指在綁定到BIRT數據集,而用戶(hù)可以從中選取某些需要的數據或記錄。
在BIRT2.2中,動(dòng)態(tài)報表參數支持使用JavaScript表態(tài)式來(lái)動(dòng)態(tài)顯示文本或參數值。這樣即可以動(dòng)態(tài)的顯示最終用戶(hù)所傳遞的參數值。
此外,BIRT還支持聯(lián)動(dòng)報表參數??梢栽O置二級或是三級的聯(lián)動(dòng)下拉框或是List。最明顯的例子如下圖所示:
圖5 BIRT聯(lián)動(dòng)報表參數
在Data Explorer視圖中可以創(chuàng )建數據立方體。這是BIRT2.2的新特性,可以與BIRT中的交叉報表結合使用。BIRT數據立方體是多維的,可以基于多個(gè)數據集,如下圖所示:

圖6 BIRT數據立方體
除了上面的特性外,BIRT還新增了兩種用于支持其它數據源的項目類(lèi)型。這類(lèi)數據源基于Eclipse的DTP(Data Tools Platform)項目所提供的ODA(Open Data Access)框架
圖7 BIRT中ODA設計工具
3.Palette
BIRT Palette視圖用于給報表畫(huà)板添加報表元素。這里的元素可以代表從Data Explorer視圖中所設計的數據。Palette中的元素支持自由的拖放功能,Palette上的元素屬性可以通過(guò)屬性編輯器進(jìn)行設計,也可以通過(guò)ROM(BIRT Reports Object Model)進(jìn)行描述。

圖8 BIRT的Palette視圖
Palette包括以下一些常用的元素:
l Label:標簽元素用于顯示靜態(tài)文本,標簽元素的外觀(guān)可以通過(guò)本地進(jìn)行設置,如設置標簽元素的超級連接、字體大小等屬性;
l Text:文本元素與標簽元素相似,只是文本元素可以顯示多行數據,更加易于格式輸出??梢栽谖谋驹刂惺褂媚_本表達式,然后在客戶(hù)端使用標簽進(jìn)行解析;
l Dynamic Text:動(dòng)態(tài)文本元素通常用于顯示CLOB數據值。CLOB數據可以通過(guò)使用BIRT Expression Builder得到數據;
l Data:數據元素用于顯示數據源的數據,通過(guò)使用Expression Builder來(lái)操作或改變數據值。例如,數據集有包含姓列以及名列,那么可以使用Expression Builder來(lái)將姓列與名列進(jìn)行合并,從而形成包含姓名的一列;
l Image:圖片元素用于在報表模板中顯示圖片。BIRT支持通過(guò)URL獲得圖片,或是從數據庫的取得圖片(BLOB),或是從本地硬盤(pán)上獲得圖片;
l Grid:網(wǎng)格元素用于布局報表中的報表元素,并進(jìn)行統一的管理。例如,想在報表中顯示產(chǎn)品銷(xiāo)售數據表格,同時(shí)又想在右邊顯示一張圖表,此時(shí)則需要使用Grid來(lái)進(jìn)行網(wǎng)格劃分,將報表分成一行兩列;
l List:列表元素也相當于一個(gè)容器,它不同于其它容器的地方在于列表元素可以綁定到數據集上。列表元素包含頭、腳及數據部分。當渲染列表元素時(shí),頭與腳部分一次性渲染完成,而中間的數據部分需要顯示數據集的每一行數據。數據格式可以是文本元素,也可以是表格、列表等元素;
l Table:表格元素與列表元素相似,都可以用于顯示數據集中的數據。表格元素與HTML中的表格元素風(fēng)格相似;
l Aggregation:匯總元素是BIRT 2.2新增的元素,使用Aggregation Builder向報表添加匯總功能。Aggregation Builder提供的匯總功能大概有25項,常見(jiàn)的如:SUM、MIN、MAX、AVERAGE等等;

圖9 BIRT的Aggregation元素
l Chart:圖表元素用于在報表中添加圖表。當在報表中添加了圖表元素時(shí),Chart Builder Wizard自動(dòng)進(jìn)行渲染并顯示。Chart Builder Wizard用于設計圖形,并提供了三大設置區域,分別是:設置圖表類(lèi)型、設置數據、設置圖表格式。BIRT提供了大量的圖表類(lèi)型,同時(shí),圖表格式可以是PNG、JPG、BMP、SVG等輸出格式。
l Cross Tab:交叉報表元素用于顯示BIRT數據立方體中的數據。在BIRT以前的版本中,表格中列數據需要在設計時(shí)就確定,而使用交叉報表元素,則列數據與行數可以動(dòng)態(tài)生成,無(wú)需在報表設計時(shí)確定。

圖10 BIRT的Cross Tab元素
4.Library Explorer
Library Explorer支持從已存在的報表庫中拖放報表元素。因此,各種報表之間即可以共享一些公用的類(lèi)庫元素。同時(shí),修改其中某一公用的類(lèi)庫元素,即可以修改所有的引用至此類(lèi)庫元素的所有報表。例如,可以在類(lèi)庫元素中保存公司的Logo,如果公司的Logo變化,則只需要修改類(lèi)庫的中Logo元素即可,其它引用此Logo的報表無(wú)需修改。

圖11 BIRT的Library Explorer視圖
5.Property Editor
Property Editor視圖用于設置報表中元素的屬性。當然,每種元素的屬性都不盡相同,因此,其界面都有所變化。當然也具有共用的一些屬性,如style、width、font等等。此外,大部分元素都支持是否可見(jiàn)的屬性。

圖12 BIRT的Property Editor視圖
6.Outline
Outline視圖通過(guò)層次關(guān)系來(lái)展現報表設計的內容及其相關(guān)元素的層次關(guān)系??梢詮?/span>Outline中直接選擇元素進(jìn)行查看或修改,當報表設計比較復雜時(shí),Outline是相關(guān)方便有用的輔助工具。

圖13 BIRT的Outline視圖
7. Miscellaneous
BIRT 2.2中提供了對同一組數據進(jìn)行多種視圖或表達的功能。例如,對同一組數據,可以使用報表展示,同時(shí)還可以進(jìn)行圖形的展示。

圖14 BIRT的Miscellaneous視圖
聯(lián)系客服