birt開發(fā)文檔_第1頁
birt開發(fā)文檔_第2頁
birt開發(fā)文檔_第3頁
birt開發(fā)文檔_第4頁
birt開發(fā)文檔_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Birt 開發(fā)文檔一 前言BIRT (Business Intelligence and Reporting Tools), 是為 Web 應(yīng)用程序開發(fā)的基于 Eclipse 的開源報表系統(tǒng),特別之處在于它是以 Java 和 J2EE 為基礎(chǔ)。BIRT 有兩個主要組件:基于 Eclipse 的報表設(shè)計器,以及部署到應(yīng)用服務(wù)器上的運行時組件。Birt有以下幾點優(yōu)點:1、開發(fā)方便,Birt是Eclipse的一個插件可以很好的集成在Eclipse中,圖形編輯框架下可以在幾分鐘之內(nèi)做出一個報表。2、可以很方便地在一個報表中混合展現(xiàn)概要數(shù)據(jù)和詳細數(shù)據(jù)。3、操作界面友好大方。4、提供了強大靈活的樣式定義,

2、對于熟悉CSS的設(shè)計人員來說,應(yīng)該可以設(shè)計出相當(dāng)出色的報表樣式。5、集成在Eclipse中,不用再開啟別報表開發(fā)工具窗口,對于習(xí)慣于Eclipse開發(fā)的程序員來說這點非常重要。6、Birt的本地化做的很好,安裝以后操作界面就是中文的(這點我在使用過程中沒有充分體現(xiàn),我使用了Birt的中文語言包)。7、開源的報表產(chǎn)品,有源代碼,可以進行深層的定制開發(fā)。8、生成的報表完全是XML格式,擴展性好。9、容易和應(yīng)用系統(tǒng)結(jié)合。10、最重要一點是開源免費的。二 開發(fā)環(huán)境安裝目前最新的birt版本是4_0_0_M4(2.5.1與2.6.2版本比較穩(wěn)定,效率較高),為了方便使用可以直接下載安裝。Myeclips

3、e9.1,已經(jīng)集成好的birt插件,安裝好之后可以直接進行開發(fā)使用,比較適合程序員的開發(fā)習(xí)慣,但需注意的是birt2.6需要有JDK1.6的支持(本人使用的是MyEclipse8.0)。另一種開發(fā)birt的環(huán)境birt-report-designer-all-in-one是官網(wǎng)所提供的類似于eclipse操作界面的環(huán)境,還提供了一個birt運行的一個平臺Birt-runtime類似于tomcat服務(wù)器一樣,同樣的也可以在tomcat服務(wù)器上運行。三 報表分類所有報表大致分為四類:清單表、固定格子表、交叉表、chart圖表1.清單表也就是最為普遍和簡單的報表形式,無需特殊的處理,只需要根據(jù)sql

4、語句直接進行展現(xiàn),數(shù)據(jù)會自動的向下延展。2.固定格子表所謂固定格子表其實就是一個格子對應(yīng)一個數(shù)據(jù),而對于表的其他的位置可以根據(jù)業(yè)務(wù)需要自由的定義表頭,雖然靈活性非常好,但是對于字段數(shù)據(jù)過多的情況出表的效率還是有點低,不方便維護。3.交叉表交叉表和清單表一樣出現(xiàn)的頻率較高,交叉表的好處在于后臺的靈活度可以提高,因為在前臺進行展示的時候,其實只是看到了一個字段而已,但是它會根據(jù)后臺的數(shù)據(jù)可以實現(xiàn)自動的向右進行延展靈活程度大大的提高了,對于補錄數(shù)據(jù)也提供了方便。4.chart圖表所謂chart就是一種圖表技術(shù),它可以讓用戶更為直觀的通過圖表倆分析數(shù)據(jù)的起伏變化,相比于表格來說更容易快速的得到結(jié)果,如

5、果圖表旁邊再配上數(shù)據(jù)表分析起來就更為了直觀了。而birt所提供的圖表支持也是較為豐富,例如:餅圖、線性圖、折線圖、柱狀圖等近十余種圖表技術(shù),給用戶提供了大量的空間進行開發(fā)。四 報表開發(fā)對于在團隊中進行項目的開發(fā)時候為了考慮后期的維護和開發(fā)的完整性則需要引入公共的模板,主要介紹Library公共數(shù)據(jù)源以及樣式模板和自定義javascript文件的導(dǎo)入:首先定義公共數(shù)據(jù)源,在myeclipse中新建一個報表工程,new -> report web project, 建好工程之后可以看到report-viewer這個目錄放置了birt運行時用戶能夠看到所有的jsp頁面以及一些css樣式和一些a

6、jax相關(guān)的js文件等,如有需要可以根據(jù)個人興趣自行修改樣式(具體的修改會在后面做介紹),reports目錄這個里面就是你所制作的報表了,其他的目錄和web工程的目錄是一樣的,至于lib目錄是個人建立的目錄,里面放的是library的公共類庫,用戶可以在這個目錄下新建一個library文件new -> library,建立好后雙擊打開,這里需要打開一個outline的面板window -> show view里面找到此面板打開(左邊為工程目錄,右邊為outline中l(wèi)ibrary的目錄),如圖:接下來就可以在Data Sources中建立鏈接數(shù)據(jù)庫的數(shù)據(jù)源,點擊鼠標(biāo)右鍵新建New

7、Data Sources,彈出的窗口選擇第一個JDBC數(shù)據(jù)源設(shè)置好名字點擊下一步,這里有Driver和jndi兩種方式,通常會選擇第一個進行數(shù)據(jù)庫的配置,當(dāng)然如果你已經(jīng)在DB brower中已經(jīng)配置好數(shù)據(jù)庫的鏈接在這里就可以直接選擇它。當(dāng)然建立好數(shù)據(jù)源,同樣的你也可以建立數(shù)據(jù)集和數(shù)據(jù)參數(shù)或者交叉表的cube。如果已經(jīng)全部弄好接下來就可以進行開發(fā)一個簡單的報表了。1. 清單表首先在reports目錄中右鍵新建一張報表new -> reports,彈出窗口進行命名以及在哪一個目錄下面,點擊下一步會出現(xiàn)一個template下面就是公共的報表模板了,不過第一次做還是選擇blank,點擊下一步直接

8、完成就會生成一張報表。生成報表第一步還是建立數(shù)據(jù)源,因為我們之前已經(jīng)在library中已經(jīng)建立了數(shù)據(jù)源,此時我們就用那個作為報表開發(fā)的數(shù)據(jù)源,同樣的在show view中打開library explorer窗口里面可以看到這個項目下的目錄打開lib下面的library展開它,把數(shù)據(jù)源拖動到報表中的Data Source這樣就會出現(xiàn)一個綁定的數(shù)據(jù)源,這樣做的好處就是如果開發(fā)的報表數(shù)量較大,這樣以后如果移植數(shù)據(jù)庫只需要去修改library中的數(shù)據(jù)源,而其他的報表就會跟著自動都修改過來。接下來我們就可以定義數(shù)據(jù)集了,在Data Sets中新建,命名好了就點擊下一步,彈出來的窗口左邊就會顯示數(shù)據(jù)庫的信

9、息,所有的表都會在里面顯示,而右邊是你所寫的sql,birt會根據(jù)你的sql生成相應(yīng)的視圖,點擊下一步,可以看到這個窗口中的query就是你的sql和數(shù)據(jù)庫信息,data Source就是數(shù)據(jù)源,Out Column會顯示根據(jù)你的sql生成視圖的信息包括輸出字段、類型等,Computed Column就是計算列,這里可以手動給表添加一列,通過在aggregation中選擇計算類型,expression中寫出你定義的表達式,命名好之后就會在后面顯示一列,parameter就是用來給報表綁定參數(shù),filters是用來對報表進行數(shù)據(jù)過濾,在里面可以根據(jù)表達式對報表進行數(shù)據(jù)的過濾,Property b

10、inding中可以給寫script代碼,做各種業(yè)務(wù)邏輯的處理,下面的query timeout可以設(shè)置查詢超時,preview是可以對數(shù)據(jù)進行預(yù)覽,會顯示sql生成視圖的數(shù)據(jù),如圖:但我們定義好了數(shù)據(jù)集之后我們就可以把這個數(shù)據(jù)集手動直接拖到中間報表的layout的界面這樣就會自動生成一個table表格,如果不做任何的樣式處理就可以直接在下面的preview中直接預(yù)覽報表,或者在上面的工具欄中有一個viewer report這里面有各種格式展示報表。同樣的在數(shù)據(jù)集的下面會生成你sql所規(guī)定的字段,也可以單獨拖動某一個字段到table中,對于后期如果有字段添加或者修改就可以用這種方式進行。單純的這

11、樣展現(xiàn)報表是不夠的,可能會根據(jù)業(yè)務(wù)的需求,需要相應(yīng)的參數(shù)給用戶進行選擇,例如文本框,下拉框之類的選擇,報表會根據(jù)不同的參數(shù)來進行展現(xiàn)這樣就會更為的直觀了,接下來就進行參數(shù)的定義:例如:select * from test where name=?這一段sql如果沒有條件會查出所有的數(shù)據(jù)但是現(xiàn)在有了where條件,報表會根據(jù)這個條件查出數(shù)據(jù),至于birt的規(guī)則規(guī)定凡是參數(shù)都設(shè)置為等于?,這樣才能夠識別它,接下來我們就在外面的Report parameters中定義參數(shù),先定義最簡單的文本框,同樣還是新建會彈出窗口如圖:Name定義參數(shù)的名字會顯示在report parameters中的名字,同樣

12、也會顯示在報表運行時的參數(shù)名字,這里建議使用英文(后面會說明原因),下面會有prompt text這個就是可以替代name來定義中文名字例如:日期,這樣既可以讓用戶看的直觀也不會影響后期開發(fā),Data Type為數(shù)據(jù)的類型,display type這里面可以定義參數(shù)的類型,包括文本框,下拉框,單選框,以及多選框,而右邊的help text其實就是鼠標(biāo)放在參數(shù)框的時候會出現(xiàn)你所定義的提示信息,下面則是格式的規(guī)定里面提供了一些校驗,至于最后的4個復(fù)選框,其中包括該參數(shù)是否為必須填的參數(shù)和隱藏參數(shù)、不允許重復(fù)輸入、可以進行多選的四種格式,同樣的還可以給參數(shù)框提供一個默認的值,在里面可以根據(jù)業(yè)務(wù)需要在

13、script中定義默認的參數(shù),這樣我們的文本框就定義好了。如何將定義好的參數(shù)和報表關(guān)聯(lián)起來,這個時候就需要關(guān)注之前有介紹到的數(shù)據(jù)集中的parameters點擊新建在linked to report parameters連接到你所定義的參數(shù),這樣就完成了報表定義,sql中的where條件后的?就可以接收到了用戶所輸入的內(nèi)容進行查詢,(注意:?和參數(shù)的順序必須一致,有多少個?就要有多少個參數(shù))。有時候根據(jù)業(yè)務(wù)需要,可能會根據(jù)某一個字段進行分組,這樣顯示起來就比較美觀,點擊detail行,右鍵insert group就會彈出分組的窗口設(shè)置,如圖:這里可以設(shè)置分組的名字,以及設(shè)置以那個字段作為分組條件

14、,在下面的item Expression中可以設(shè)置這個組顯示為那個字段,例如按照某個id來分組,但是顯示的是相應(yīng)的描述來給用戶看更為的直觀。當(dāng)我們插入分組后還需要一些調(diào)試可以看到在detail行上面增加了一個group行,我們只要把detail行的ind_dsc去掉就可以正常的顯示分組后的數(shù)據(jù)了,但是birt的問題會出現(xiàn)某些先太粗之類的情況,這個需要你手動的針對粗的地方在border中把相應(yīng)的邊線只要去掉,多次測試后就可以正常顯示了,最后運行的樣子:2. 固定格子表所謂固定格子就是一個方格一條數(shù)據(jù)的實現(xiàn)方式,這種方式的實現(xiàn)就不能用上面介紹的table來實現(xiàn)了,需要用到grid網(wǎng)格來進行操作,首

15、先在show view中打開palette,這個里面提供了一些birt的控件,例如label,text等。這里我們將grid拖到報表中會彈出一個窗口選擇幾行幾列,我們根據(jù)要求建好之后就可以開始制作了,我們可以從數(shù)據(jù)集的下拉框中找到所需要的數(shù)據(jù)把這些數(shù)據(jù)字段一個一個放置到自己所規(guī)定的位置中,可以在grid自由的定制表頭,而數(shù)據(jù)就可以拖到相應(yīng)表的位置進行展示,這樣的報表沒什么太大的難度就是根據(jù)表樣來把字段拖到相應(yīng)位置,如果定義表頭可以插入label進行定義表頭,這樣很容易就完成了固定格子報表的展現(xiàn)。但是這種類型的報表的弊端就是開發(fā)起來的效率不是太好,尤其是字段過多的時候就會很慢,而且很容易出錯。所

16、以這種報表的出現(xiàn)率不是太高。3. 交叉表這中報表形式是出現(xiàn)率比較大的形式,優(yōu)點就是方便后臺的維護,同時也相對很靈活。和之前的表一樣,定義數(shù)據(jù)源和數(shù)據(jù)集,之后在Data cube中新建一個交叉表的數(shù)據(jù)集,也就是把在data sets中定義好的拖到交叉表的相應(yīng)的位置,Dataset中的Primary dataset定義需要的數(shù)據(jù)集在group and summery中定義交叉表的分組和明細,如圖:左邊就是所有的數(shù)據(jù)集,右邊就是你要展現(xiàn)交叉表定義的數(shù)據(jù)集,首先看groups這個就是創(chuàng)建分組,對應(yīng)表中也就是表的左下角的位置,而下面的summary fields就是定義最終交叉表中展現(xiàn)的中間數(shù)據(jù),也就是

17、表中右下角位置,其實表中的右上角也可以放入分組的字段作為表的表頭,將所有的數(shù)據(jù)集都拖放到交叉表中就可以把定義好的表拖到報表的制作頁面了,可以直接將cube拉到展現(xiàn)頁面中就可以生成,也可以在palette中把cross table拖到頁面中,針對每個位置自己手動把在cube中定義的每個部分拖放到相應(yīng)的位置,如圖交叉表的空白結(jié)構(gòu):交叉表拖放完字段的結(jié)構(gòu):注意:如果在創(chuàng)建分組的時候,可能有些分組會有相應(yīng)的子組,就可以把子組拖到父組的下面,不用在新的組了,例如:國家可能包含城市,城市包含地區(qū)等。接下來還可以對行列添加分組小計和總計,當(dāng)你點擊左邊的分組的這個的時候會出來相應(yīng)的選項,第一個就是顯示和隱藏分

18、組的,可以根據(jù)需要把不想顯示的組前面的勾去掉就可以隱藏掉。第二個選項就是total這個里面可以添加行列的小計和合計,不過這里需要注意你的分組情況來勾選相應(yīng)小計,最左側(cè)的也就是最大分組級別,這樣出來的就是所有組的合計會顯示在最下面如果點擊的是第二組級別那么出來的就是相應(yīng)組的小計,如果需要給最右側(cè)添加行的合計可以點擊右上角的分組字段的total勾選相應(yīng)的字段可以實現(xiàn)右側(cè)的合計,如圖:最后就可以進行預(yù)覽報表了。有的時候可能客戶對于表中展現(xiàn)的數(shù)據(jù)有些順序的要求,這樣報表中只能按照升序或者降序的方式排列,無法滿足,但是我們有方法可以實現(xiàn)就是在數(shù)據(jù)庫中提前給那些需要排序的中文添加個id按照數(shù)字大小排列好,

19、將id這個字段作為組放到交叉表中,把這個id字段拖到需要排序的字段的前面或者上面就可以限制他的順序,正如上圖中的org_id,左側(cè)的org_id_type都是限定后面的漢字的順序,不過需要注意的時候要隱藏這些id字段,在屬性里面有個visibility中可以隱藏輸出,選擇all就可以了,但是還需要在advance中的box把相關(guān)的邊框?qū)挾榷荚O(shè)置為0,因為默認是1,以及屬性中的高度或者寬度都設(shè)置為0,就能實現(xiàn)了。4. Chart圖表以線性圖為例子,之前的定義是一樣的,只是在報表頁面要么在palette中把chart拖到右側(cè)頁面,要么在右側(cè)頁面鼠標(biāo)右鍵有一個insert chart就會彈出一個頁面

20、:可以看出birt提供了多種圖表的形式,開發(fā)者可以根據(jù)需求來選擇相應(yīng)的圖表,這里我選擇line線性圖作為例子來說明,對于線性圖提供了3種類型的樣式,下面可以選擇是2D還是3D,以及輸出圖片的格式,目前2.6支持四種格式的輸出,同樣還可以選擇多個Y軸,F(xiàn)lip axis其實就是x和y顛倒了,選擇好之后就點擊下一步可以看到這個頁面就是定義x和y需要顯示的數(shù)據(jù)集,在select data中選擇user data from 也就是之前外面定義好的數(shù)據(jù)集,分別在x軸和y軸定義自己需要的數(shù)據(jù)集中的字段,y軸可以定義多條曲線的也就是多個字段都可以展示,全部定義好了就可以下一步了,到format chart,

21、這里就是對圖表的界面樣式進行設(shè)置,例如定義圖表的標(biāo)題,x和y軸的名字,顏色,字體,位置,大小以及各種事件的定義,如圖:Series中主要是定義圖表點的連線的樣式,以及Y軸左側(cè)的數(shù)據(jù)的密度,可以自由設(shè)置從多少到多少,每個數(shù)據(jù)的間隔的倍數(shù),可以使各種格式,百分號等等,也可以對每個線在interactivity中定義事件,包括onmouseover、onclick等多種事件處理,控制圖標(biāo)展示的效果Chart Area可以定義X軸的一系列的屬性,下面的Title、plot、legend都是對標(biāo)題進行設(shè)置的,每條線的顏色對應(yīng)的是什么含義都可以自己規(guī)定,還有圖表的位置、標(biāo)題的位置、大小等屬性的設(shè)置。五 報表的參數(shù)使用之前有介紹過文本框的使用,接下來在介紹下其他的三種參數(shù)的使用方法:1. Combobox下拉框,作為非常常用的一種控件,其他合文本框一樣,區(qū)別就是他在sel

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論