BIRT是一個(gè)優(yōu)秀的報(bào)表插件,本文將涉及它的安裝到簡(jiǎn)單使用的整個(gè)過(guò)程。
一,安裝
1:到http://download.eclipse.org/birt/downloads下載相應(yīng)版本(我的Eclipse是3.2,所以BIRT的版本是2.1M5)的Framework和runtime兩個(gè)包。把Framework包解壓,然后和其它plugin一樣放到Eclipse的plugins和features目錄下;把runtime解壓到任意目錄下,如C:"birtruntime。這里說(shuō)明一點(diǎn):BIRT的runtime在有些時(shí)候并不需要,比如但plugin導(dǎo)出為rcp發(fā)布后,在其它的機(jī)器上就不需要安裝runtime來(lái)運(yùn)行報(bào)表了。
2:BIRT要依賴GEF和EMF,所以你的Eclipse平臺(tái)要正確安裝GEF和EMF。
3:如果想用pdf格式顯示報(bào)表結(jié)果,我們還要做以下兩件事情:到http://prdownloads.sourceforge.net/itext/itext-1.3.jar下載itext,然后拷貝到plugins/org.eclipse.birt.report.engine.emitter.pdf_version/lib目錄下;到http://dev.conio.net/repos/prototype/dist/prototype.js下載prototype.js,然后拷貝到/org.eclipse.birt.report.viewer_version/birt/ajax/lib目錄下。
二,創(chuàng)建報(bào)表
0:配置BIRT環(huán)境,因?yàn)槔訉⒁褂?/span>jdbc做為數(shù)據(jù)源,birt本身并布提供這樣數(shù)據(jù)庫(kù)的驅(qū)動(dòng),所以要把所使用的數(shù)據(jù)庫(kù)驅(qū)動(dòng)文件放到相應(yīng)的目錄。
下載derby.jar,derbyclient.jar,derbynet.jar,derbytools.jar四個(gè)jar,然后把他們拷貝到以下兩個(gè)目錄:
"plugins"org.eclipse.birt.report.data.oda.jdbc_2.1.0.M20060303-0920"drivers
"birt-runtime-2_1_0"ReportEngine"plugins"org.eclipse.birt.report.data.oda.jdbc"drivers
1:創(chuàng)建一個(gè)報(bào)表工程
2:創(chuàng)建一個(gè)report文件,最后一步選空模板。
3:創(chuàng)建數(shù)據(jù)源。BIRT支持多種數(shù)據(jù)源,這里選擇比較復(fù)雜的JDBC數(shù)據(jù)庫(kù)數(shù)據(jù)源,數(shù)據(jù)庫(kù)使用Derby做為例子。假定你的derby數(shù)據(jù)庫(kù)已經(jīng)配置正確并已運(yùn)行,然后在Data Explore navigator視圖下創(chuàng)建新的數(shù)據(jù)源,配置如下圖,如果數(shù)據(jù)庫(kù)訪問(wèn)有用戶名和密碼也正確填寫(xiě):4:創(chuàng)建數(shù)據(jù)集。選擇創(chuàng)建數(shù)據(jù)集后會(huì)有一個(gè)如下的窗口彈出,第一個(gè)是數(shù)據(jù)集的屬性操作切換頁(yè),第二個(gè)窗口列出所有的數(shù)據(jù)表,第三個(gè)是編輯框,可以在里面手寫(xiě)或者在第二個(gè)框里拖動(dòng)我們需要的數(shù)據(jù)庫(kù)的某一列。
5:設(shè)計(jì)報(bào)表。這一步開(kāi)始按照自己的需求來(lái)設(shè)計(jì)報(bào)表,birt提供了豐富的報(bào)表格式,如:柱狀圖、餅狀圖、chart、表等,這里我們用表做為例子,假設(shè)數(shù)據(jù)庫(kù)有一個(gè)consignee的表,表有ID,name和location三列,我們?cè)O(shè)計(jì)一個(gè)報(bào)表,用戶可以在報(bào)表上選擇一個(gè)location,然后報(bào)表給出在這個(gè)location的所有用戶。
5.1:按照需求,用戶可以在報(bào)表上選擇一個(gè)地點(diǎn)來(lái)統(tǒng)計(jì)結(jié)果,所以這里用到BIRT的parameter(參數(shù))的技術(shù),雙擊Data set數(shù)據(jù)源,選擇parameters,創(chuàng)建一個(gè)新的參數(shù),如圖:然后切換到Query界面,添加一句sql語(yǔ)句where location = ?,如下:
5.2 創(chuàng)建一個(gè)叫做Parameter的新數(shù)據(jù)集,此數(shù)據(jù)集只提供動(dòng)態(tài)參數(shù)的數(shù)據(jù)來(lái)源(這個(gè)作用稍后會(huì)更清晰的看見(jiàn))
SQL語(yǔ)句為:
from APP.CONSIGNEE
5.4設(shè)計(jì)報(bào)表的表格。
5.4.1 拖動(dòng)一個(gè)默認(rèn)屬性的table到界面上,然后點(diǎn)右鍵,選擇“Edit Data Binding”,如下圖設(shè)置:5.4.2 把Data Set數(shù)據(jù)集里的三列分別拖到table的第一到第三列,效果如圖:
5.5 預(yù)覽。到這里,簡(jiǎn)單的應(yīng)用都有了,點(diǎn)擊一下preview看一下效果,首先點(diǎn)擊“show Report Parameter”,出現(xiàn)這個(gè):
這個(gè)combobox里面的內(nèi)容就來(lái)自數(shù)據(jù)集Parameter,是動(dòng)態(tài)的。選擇一個(gè)參數(shù)運(yùn)行就能看見(jiàn)結(jié)果了。
三,使用設(shè)計(jì)好的報(bào)表
如果想在另外一個(gè)項(xiàng)目中使用設(shè)計(jì)好的報(bào)表文件,有兩種方式,一個(gè)是用web的方式查看結(jié)果,另一個(gè)是用pdf的方式,這里介紹web方式,例子是一個(gè)單獨(dú)運(yùn)行起來(lái)的birt報(bào)表。
在想顯示報(bào)表的地方使用如下語(yǔ)句:
String path = filePath + "filename.rptdesign";
WebViewer.display(path, WebViewer.HTML, true);
注意最后一句的最后一個(gè)參數(shù),如果想在報(bào)表中使用參數(shù)就為true否則為false。
四,總結(jié)birt的功能很強(qiáng)大,還有柱狀圖等很圖形可供使用,原理都很相似,可以在使用種慢慢摸索。