posts - 15,  comments - 8,  trackbacks - 0

          BIRT是一個(gè)優(yōu)秀的報(bào)表插件,本文將涉及它的安裝到簡(jiǎn)單使用的整個(gè)過(guò)程。

          一,安裝

          1:到http://download.eclipse.org/birt/downloads下載相應(yīng)版本(我的Eclipse3.2,所以BIRT的版本是2.1M5)的Frameworkruntime兩個(gè)包。把Framework包解壓,然后和其它plugin一樣放到Eclipsepluginsfeatures目錄下;把runtime解壓到任意目錄下,如C:"birtruntime。這里說(shuō)明一點(diǎn):BIRTruntime在有些時(shí)候并不需要,比如但plugin導(dǎo)出為rcp發(fā)布后,在其它的機(jī)器上就不需要安裝runtime來(lái)運(yùn)行報(bào)表了。

          2BIRT要依賴GEFEMF,所以你的Eclipse平臺(tái)要正確安裝GEFEMF

          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.jarderbyclient.jarderbynet.jarderbytools.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的表,表有IDnamelocation三列,我們?cè)O(shè)計(jì)一個(gè)報(bào)表,用戶可以在報(bào)表上選擇一個(gè)location,然后報(bào)表給出在這個(gè)location的所有用戶。

                 51:按照需求,用戶可以在報(bào)表上選擇一個(gè)地點(diǎn)來(lái)統(tǒng)計(jì)結(jié)果,所以這里用到BIRTparameter(參數(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ǔ)句為:

          select DISTINCT APP.CONSIGNEE.LOCATION

          from APP.CONSIGNEE
                53 創(chuàng)建一個(gè)新的Report Parameter(報(bào)表參數(shù))。

          54設(shè)計(jì)報(bào)表的表格。

                 541 拖動(dòng)一個(gè)默認(rèn)屬性的table到界面上,然后點(diǎn)右鍵,選擇“Edit Data Binding”,如下圖設(shè)置:

                  542 Data Set數(shù)據(jù)集里的三列分別拖到table的第一到第三列,效果如圖:

                  55 預(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ǔ)句:

          DtpManifestExplorer.getInstance().getExtensionManifests();
          String path 
          = filePath + "filename.rptdesign";
          WebViewer.display(path, WebViewer.HTML, 
          true);


          注意最后一句的最后一個(gè)參數(shù),如果想在報(bào)表中使用參數(shù)就為
          true否則為false

          四,總結(jié)birt的功能很強(qiáng)大,還有柱狀圖等很圖形可供使用,原理都很相似,可以在使用種慢慢摸索。
          posted on 2008-06-20 12:59 lvq810 閱讀(961) 評(píng)論(0)  編輯  收藏 所屬分類: IDE

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 易门县| 阜新| 股票| 阿克苏市| 留坝县| 呼玛县| 桦甸市| 锡林浩特市| 克拉玛依市| 南开区| 汶川县| 苏尼特左旗| 禄丰县| 大埔区| 平谷区| 扬中市| 惠东县| 灵川县| 隆子县| 筠连县| 蒲江县| 重庆市| 博白县| 天全县| 沈丘县| 安阳县| 习水县| 奉化市| 肃宁县| 平乡县| 新乐市| 西和县| 义马市| 交口县| 三亚市| 阿合奇县| 射洪县| 固安县| 德州市| 南川市| 南皮县|