<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JAVA—咖啡館

    ——歡迎訪問rogerfan的博客,常來《JAVA——咖啡館》坐坐,喝杯濃香的咖啡,彼此探討一下JAVA技術,交流工作經驗,分享JAVA帶來的快樂!本網站部分轉載文章,如果有版權問題請與我聯系。

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      447 Posts :: 145 Stories :: 368 Comments :: 0 Trackbacks

    簡介

    Eclipse的商業智能和報表工具(BIRT)項目是一個基于當今流行的Eclipse IDE的開源項目,用于在Java或者J2EE環境下構建和部署報表。該項目提供的主要下載項中包括以下內容:

    • BIRT設計器—用來構建報表。
    • Web查看器—一個用來部署報表的J2EE示例,其中包含了一個JSP標簽庫以降低與現存的web應用的耦合。
    • BIRT制圖包—支持構建復雜的圖表。 

    BIRT項目于2005年夏天發布了第一個主版本并且到目前為止已經擁有了超過100萬的下載量。請訪問http://www.eclipse.org/birt來更多地了解BIRT項目,這上面有關于BIRT項目的介紹,指南,下載以及使用的例子。我們將以對BIRT設計器的介紹作為本文的開始,并且以對BIRT查看器的討論作為本文的結束。其中,BIRT設計器用來進行報表的設計,而BIRT查看器則用來部署設計以及產生最終的報表。

    BIRT 2.2 Collage

    BIRT設計器 

    在BIRT的中間位置是由一系列Eclipse插件組成的報表設計器,這些插件構成了一個提供拖拽能力以快速設計報表的設計透視圖。報表是以XML格式創建和存儲的。

     

    Figure 1 - Eclipse BIRT Designer

    此Eclipse透視圖包含了很多視圖,這些視圖提供了創建報表的功能。我們將在后面對此進行闡述。

    報表編輯器

    報表編輯器用來構建報表并且扮演著一個畫布的角色來定位和格式化報表元素。在該視圖中有很多標簽頁,例如布局,母板頁,腳本,XML源以及預覽。

    • 布局標簽頁用來對報表進行可視化布局并且提供了拖拽的功能。
    • 母板頁用來設定整個報表的頭,腳以及背景圖片。例如,該頁通常是所有報表頭的位置。
    • 腳本標簽頁提供了對JavaScript編輯器的訪問。BIRT支持這樣一種事件模型,在該模型中可以使用Java或者JavaScript來改寫事件處理器。我們可以在報表產生和渲染階段調用這些事件處理器,并且這些事件處理器還能修改報表屬性,比如改變字體顏色,數據值以及調用外部代碼。
    • XML源標簽頁可以顯示XML源代碼用于報表設計。盡管通常情況下最好使用布局視圖,但也可以在此標簽頁中編輯XML代碼。
    • 預覽標簽頁允許報表設計者快速地將報表轉化為HTML。 注意你也可以利用工具欄以其他被支持的格式來預覽報表。

    Figure 2 - BIRT Preview

    數據瀏覽

    在構建報表之前,我們通常都要建立數據源。BIRT提供了數據瀏覽視圖以簡化該任務。

    Figure 3 - Data Explorer View

    Eclipse視圖允許設計者向報表設計器中添加數據源和數據集。本質上,一個數據源僅僅就是數據連接。數據集可以被理解為一個可執行的查詢以及該查詢所返回的特定的列。

    BIRT提供了對JDBC,XML,flat file(譯者注:falt file是一個只能連續的讀寫的計算機文件。它包含一條或多條記錄,每個記錄包含一個或多個字段,http://en.wikipedia.org/wiki/Flat_file)和腳本化的數據源的驅動。隨著BIRT2.2的發布,BIRT還提供了一個Web Service數據源和一個改進的flat file驅動,現在該驅動已經支持CSV,TSV,SSV以及PSV文件格式。

    BIRT還提供了一個叫做聯合數據集(Joint Data Set )的特殊數據集以使用內外連接來整合現存的數據集。當從不同的數據源中整合數據集時該特性的作用就顯得尤為明顯。除此之外,現在BIRT數據源具備導入或者鏈接本地連接配置文件的能力以此來達到跨報表的連接共享的目的。

    在增加報表參數和數據體時我們也會使用數據瀏覽視圖。報表參數將呈現給報表的最終用戶并且經常用來為特定的用戶進行報表的個性化定制。例如:報表參數可以依賴數據集參數來修改查詢,我們可以在BIRT的JavaScript表達式中用此來改變報表元素的樣式和可見性,或者在腳本事件中基于選擇的輸出格式來定制內容。

    報表參數可以是靜態或者動態的。靜態參數允許用戶選擇預先定義好的值集或者在文本框中輸入一個值。動態參數可以是綁定到現存的BIRT數據集的一些數據。例如,用戶可以從一個數據集提供的客戶列表中選擇一個客戶。 

    此外,BIRT支持級聯參數,它可以顯示多個下拉列表,并且一個下拉列表顯示的內容會隨著前一個列表的內容的改變而動態改變。例如,一個級聯參數可以在第一個列表中顯示客戶列表,在第二個列表中顯示選中客戶的訂單。

    Figure 4 - Cascaded Parameter

    現在BIRT2.2的動態參數可以支持使用JavaScript表達式來顯示文本和參數值。這個改進使得參數列表以一種更符合邏輯的方式呈現給最終用戶。例如,在開發一個詳細訂單的報表時,你可能希望展示一個所有訂單的動態參數列表。表達式使得你可以為每個訂單增加相應的客戶姓名。圖5顯示了一個動態參數列表。

    Figure 5 - Dynamic Parameter Expression

    數據瀏覽視圖也支持數據體的創建。這是BIRT2.2的新特性,且與新的交叉報表元素聯合使用。BIRT數據體是多維的,基于一個或多個BIRT數據集,使用新的跨標簽數據立方構建器(Cross Tab Cube Builder)來構建的。請參見下面的圖表。

    Figure 6 - Cross Tab Cube Builder 

    除了上面提到的特性,BIRT現在提供兩個新的項目類型使得Java開發者可以創建更多的數據源。這些數據源基于Open Data Access(ODA)框架,該框架由Eclipse Data Tools Platform(DTP)項目提供。我們構建圖形界面時需要使用ODA設計器插件,該插件是報表開發者使用相應的驅動時所需要的。當開發你自己驅動的運行時部分時,需要利用ODA運行時驅動的插件項目。該插件通常部署在一個運行時環境中,主要負責處理對數據源的調用和結果的獲取。

    Figure 7 - BIRT Projects

    調色板

    BIRT調色板視圖用來向報表畫布中添加報表條目。調色板視圖包含了一些報表元素,這些元素用來顯示從數據瀏覽視圖中獲得的數據。僅僅是簡單地從調色板視圖中拖拽報表到報表編輯器中就可以使用該報表了。BIRT報表元素支持所有可在屬性編輯器視圖中配置且可被BIRT的報表對象模型(Report Object Model)描述的屬性。

    Figure 8 - Palette View

    調色板支持以下報表項

    • 標簽元素用來顯示靜態文本。像大多數報表元素一樣,我們可以改變文本的外觀以支持本地化,同時也可以設置超鏈接,字體大小和高亮等屬性。
    • 文本元素與標簽很相似,不過具有更多的屬性:可以顯示多行,格式化良好的HTML。利用BIRT的表達式構建器我們可以將現存的數據集的值,參數,JavaScript函數以及BIRT特有的函數注入到格式化的HTML中。通過使用標簽,文本元素還可以用于創建可在客戶端執行的腳本。
    • 動態文本元素經常用來顯示CLOB數據類型值。這些值也可以利用BIRT的表達式構建器與其他數據聯合使用。
    • 數據元素是用來顯示來自數據源的值的基本元素。可以利用表達式構建器改變和操縱數據值。例如,如果一個數據集具有一個叫做first name的列,還有一個叫做last name的列,那么你可以利用表達式構建器將二者連接起來組成一個新的數據元素。
      dataSetRow["contactLastName"] + ", " + dataSetRow["contactFirstName"]
    • 圖片元素用來管理報表中輸出圖片。BIRT支持獲取URI中的圖片以及嵌入在設計器中的圖片,來自數據源的動態圖片(BLOB)以及文件夾中的圖片文件。
    • 網格元素作為其他報表元素的容器,以一種合乎邏輯的方式來定位元素位置。網格元素被配置為表格格式。例如,如果你的報表顯示產品銷量情況,而你想在表格的右側增加一個圖表,那么你就可以增加一個一行兩列的網格元素來完成這個任務。
    • 列表元素也是作為其他元素的容器。列表不同于其他容器型元素的地方在于列表會迭代綁定到其上的數據集。默認的列表元素有一個頭,一個尾和細節部分。當渲染列表時,頭和尾通常只顯示一次,而綁定到列表的數據集的每一行的細節部分都要顯示。在細節部分中可以包含文本元素或者其他的容器型元素,例如網格,表格或者另一個列表。
    • 表格元素與列表元素很相似,因為他們都是容器元素并且都會迭代綁定到其上的數據集,但是表格元素是以平面列表方式展現的。表格元素的布局很像HTML的表格一樣。表格元素有頭,尾和細節部分以及列。
    • 聚合元素是BIRT2.2新加入的元素類型,其利用新的聚合構建器來向報表中增加聚合元素。該聚合構建器提供了超過25種不同的函數,例如SUM,MIN,MAX和AVERAGE。

    Figure 9 - Aggregation element

    • 圖表元素允許向報表設計器中插入圖表。當一個圖表元素被置于報表編輯器中時,圖表構建器向導將會自動出現。該向導用來設計圖表并提供三個設計標簽頁(選擇圖表類型,選擇數據和選擇圖表格式)。BIRT2.2提供了13種圖表類型以及很多子類型的組合。圖表構建器提供了拖放,圖表預覽,數據過濾和參數化等功能。圖表元素可以以PNG,JPG,BMP和SVG的輸出格式呈現,并且這些輸出格式支持鉆透(drilling through ),高亮(highlighting),開關可視化(toggling visibility)以及客戶端腳本(client side script)。

    Figure 10 - Chart Wizard

    • 跨標簽元素也是BIRT2.2中新出現的元素,用來顯示BIRT數據體中的數據。在BIRT以前的版本中,表格元素中列的數量在設計時就要確定好,而在跨標簽元素的幫助下,列和行的數量都可以動態生成。該元素也支持等級聚合和數據顯示,允許三維的行和列并且會測量數據以便使其顯示在恰當的交叉點上。

    Figure 11 - BIRT Cross Tab element

    庫資源管理器

    庫資源管理器視圖具有拖放功能,使得用戶可以從現存的報表庫中拖放組件到當前報表中。 BIRT中的庫是一些可被其他報表使用的高效報表XML片段。這些庫被使用它們的報表所引用,這意味著庫的改動會自動地反映到所有使用它們的報表中去。一個很好的示例是使用一個報表庫存儲公司標識(logo)。如果公司標識改變了,只需要更新庫就可以了,而不用更新引用它的報表。庫被引用的位置是相對于資源文件夾的,在設計階段通過設計器,在運行階段通過Web查看器都可以配置該資源文件夾。

    Figure 12 - Library Explorer

    屬性編輯器

    屬性編輯器視圖用來對增加到報表上的報表元素設置屬性。視圖中顯示何種條目將決定于報表編輯器中所選的元素類型。屬性窗口中顯示一些通用設置,例如樣式,寬度和字體信息。此外,大多數報表元素支持可視化的屬性設置,這樣就可以動態地隱藏內容了。在屬性標簽的右側,視圖具有如下特性:排序,分組,映射,高亮和過濾頁。

    大多數功能都是自說明的,映射標簽頁允許動態構建(使用表達式構建器),以使得報表元素的顯示值可以動態改變。例如,如果月份行的值是“1”,你可能想顯示“January”。高亮標簽頁根據條件來動態地應用不同的樣式,例如以紅色來顯示低銷售量。大多數功能都允許在一個條目上應用多個條件或者關鍵字。一個條件可能改變字體顏色,而另一個條件可能改變字體大小。一個排序關鍵字可以按字母順序列出結果,而另一個排序關鍵字卻將“Jones”放在列表的最上面。

    Figure 13 - Property Editor

    此外,在BIRT2.2中,當使用高亮時,報表開發者可以指定樣式而不必手動地去設置樣式屬性。

    Figure 14 - Style Highlighting

    大綱 

    大綱視圖展示了報表設計的圖形化繼承體系,同時說明了報表元素與容器的關系。我們可以直接在大綱視圖中選擇報表元素,當報表設計非常復雜時,這個功能非常有用。此外,在BIRT2.2中,大綱視圖可用來導入或者鏈接外部樣式,也可用來查看實現了腳本事件處理器的報表元素。

    Figure 15 - Outline View

    導入一個樣式表會將該樣式表的值復制到報表XML中。使用一個外部樣式表允許你鏈接到BIRT資源文件夾中的樣式表。 

    更多特性

    BIRT2.2還提供了兩個新視圖。一個視圖顯示example報表,另一個視圖顯示example圖表并且提供了Java代碼以產生圖表。當在Java應用中使用圖表引擎時會使用到該視圖。

    Figure 16 - Example Views

    Eclipse BIRT Web查看器

    一旦報表開發完成了,我們就可以使用BIRT的example Web查看器部署它們。在BIRT2.2中該查看器已經得到了改進,它是一個基于AJAX的J2EE應用,說明了如何使用BIRT引擎來產生和渲染報表內容。 

    Web查看器概覽 

    Web查看器可用來產生和渲染報表,同時也支持更多的交互性特征,例如內容表格,以多種格式導出報表內容,客戶端和服務器端打印以及報表分頁。利用查看器導航和工具欄使得這些特征成為可能。下圖展示了使用查看器的一個示例。

    Figure 17 - Example Web Viewer

    Toolbar

    查看器的工具欄有很多圖標,他們可以完成內容表格的顯示,重新運行報表,導出數據,以多種格式導出報表以及客戶端和服務器端打印等任務。一個內容表格是基于報表設計而自動產生的。通過修改報表的分組片段可以定制內容表格。要從example查看器中訪問內容表格,請選擇該圖標

    Figure 18 - Example Table of Contents

    工具欄也提供了一個圖標來重新運行現存的報表。當用戶想要修改用于產生報表的參數集時,這將十分有用。要訪問該特性,請選擇該圖標 

    Figure 19 - Example report parameter dialog containing cascaded parameter

    一個改進的數據導出對話框在BIRT2.2中首次出現。可以通過圖標激活該對話框。

    Figure 20 - Example Export Data Dialog

    結果集被顯示在一個下拉列表中,該下拉列表包含了報表中所有數據綁定控件。這些結果集并不是BIRT的數據集,但卻包含了數據容器中綁定的列,而該數據容器中的數據則來自于一個數據集。這些可用的列顯示在左邊的列表框中,而對話框控制著這些列的導出。數據導出分隔符也已經得到了改進以支持更多的分隔符,例如制表符,分號,冒號,垂直線。此外,數據可以用用戶指定的編碼導出。

    查看器同樣支持以多種格式導出報表。利用導出報表對話框就可以完成報表的導出,我們可以通過選擇圖標來訪問該對話框。

    Figure 21 - Example Export Report Dialog

    該對話框允許報表用戶將報表導出為Word,PowerPoint,PDF,PostScript和XLS 格式。此外,用戶可以選擇導出所有頁面或者指定范圍的頁面。

    BIRT中的客戶端打印是在example查看器中完成的,這是通過用戶選擇圖標將報表轉換為PDF格式實現的。用戶可以利用標準的PDF功能打印或者保存報表。

    Figure 22 - Client Print Example

    BIRT2.2的example查看器也提供了服務器端打印功能。該特性可以通過在web.xml中做如下設置而禁用。

    <context-param>
    <param-name>BIRT_VIEWER_PRINT_SERVERSIDE</param-name>
    <param-value>OFF</param-value>
    </context-param>

    可以通過選擇圖標來訪問服務器端打印功能。
     

    Figure 23 - Example Server Side Print Dialog

    該對話框將列出可用的服務器端打印機以及影響打印結果的各種設置

    Viewer Navigation Bar

    當顯示一個多頁的報表時我們將使用查看器導航條。分頁是由報表元素和分組的分頁符屬性來決定的。這些屬性就像使用前后分頁符或者分頁符間隔那樣簡單,而分頁符間隔則指定了將一個分頁符插入到產生的HTML中之前一個容器元素要處理多少行。當通過Servlet映射來使用查看器時,其默認行為是加載首頁且使得導航條控件可用。導航條包含了可以向前向后或者直接定位頁面的控件。 

    Web查看器部署向導 

    利用Web Tools Platform項目(WTP)的一部分,BIRT2.2現在可以支持Web項目。該項目類型會將example查看器自動部署到你所選擇的應用服務器中。此外,新的BIRT標簽庫也會被部署進去。通過新建項目,在Business Intelligence and Reporting Tools類別下面選擇Web項目,我們可以使用該項目類型。

    Figure 24 - Web Project

    Web查看器標簽庫

    現在Web查看器包含了一個標簽庫,該標簽庫可被用來定制查看器的行為。我們可以通過兩種方式部署該標簽庫,其一是按照通常方式部署查看器;其二是利用BIRT的Web項目部署向導。此外,如果你想將BIRT部署在一個上下文中,并且將標簽庫放置在一個單獨的上下文中,你可以通過復制birt.tld到你的WEB-INF\tlds目錄下并且從查看器庫目錄中復制coreapi.jar,modelapi.jar,viewerservlets.jar和com.ibm.icu_3.6.1v20070417.jar到目錄:新上下文/web-inf/lib下來實現。將下面的代碼添加到你的web.xml文件中:

    <jsp-config>
    <taglib>
    <taglib-uri>/birt.tld</taglib-uri>
    <taglib-location>/WEB-INF/tlds/birt.tld</taglib-location>
    </taglib>
    </jsp-config>

    在這種方式下,報表將通過BIRT查看器被引用,而不是新的上下文。

    查看器標簽庫包含5個標簽:param,paramDef,parameterPage,report和viewer。每個標簽都有多個屬性來控制查看器的行為。

    Figure 25 - BIRT Tag Library

    結論 

    這篇文章介紹了BIRT2.2的一些新特性。請訪問BIRT的網站和BIRT 新聞組 來了解更多信息。

    查看英文原文:An Introduction to the Eclipse Business Intelligence and Reporting Tools


    譯者簡介:張龍,同濟大學軟件工程碩士,現就職于理光軟件研究所。主要從事文檔工作流和辦公自動化解決方案的研發工作。熱衷于Java輕量級框架的研究,對敏捷方法很感興趣。曾有若干年的J2EE培訓講師經歷。參與InfoQ中文站內容建設,請郵件至china-editorial@infoq.com。  

    3 條回復

    回復

    en 發表人 avatar blogbin 發表于 2008年1月31日 下午8時19分
    Re: 迷途的狼 發表人 jack wan 發表于 2008年2月17日 下午7時39分
    Birt報表能否實現訂制 發表人 帥 曾 發表于 2008年4月7日 下午9時10分
    1. 返回頂部

      en

      2008年1月31日 下午8時19分 發表人 avatar blogbin

      birt使用有一段時間,碰到的主要問題是參數多值傳遞和交叉表,其它方面感覺蠻好的

    2. 返回頂部

      Re: 迷途的狼

      2008年2月17日 下午7時39分 發表人 jack wan

      感覺比以前的功能要強大很多了,有時間看看

    3. 返回頂部

      Birt報表能否實現訂制

      2008年4月7日 下午9時10分 發表人 帥 曾

      我希望用birt設計出幾個模版然后讓用戶去自己選哪個表的哪個字段最后形成一張報表,不知道birt是否能實現,希望有經驗的朋友幫幫忙!

    posted on 2008-09-05 14:29 rogerfan 閱讀(1648) 評論(0)  編輯  收藏 所屬分類: 【開源技術】【JAVA-IDE】
    主站蜘蛛池模板: 亚洲色图综合在线| 四虎影视无码永久免费| 久久久久成人片免费观看蜜芽 | 国产精品99久久免费观看| 亚洲成a人无码av波多野按摩| 亚洲精品亚洲人成在线| 青娱乐免费在线视频| 亚洲精品在线网站| 亚欧人成精品免费观看| 亚洲色欲或者高潮影院| 182tv免费观看在线视频| 亚洲精品永久www忘忧草| 18禁成人网站免费观看| 亚洲avav天堂av在线网爱情| 永久免费的网站在线观看| 久久精品国产99国产精品亚洲| 成人免费视频77777| 亚洲日韩一区二区三区| 四虎永久免费地址在线观看| 一级毛片高清免费播放| 亚洲精品乱码久久久久久蜜桃不卡| 在线看片免费人成视频福利| 亚洲精选在线观看| 91嫩草国产在线观看免费| 亚洲GV天堂GV无码男同| 亚洲日韩国产一区二区三区| 免费无码又爽又刺激高潮软件| 亚洲激情校园春色| 日韩黄色免费观看| 精精国产www视频在线观看免费| 亚洲阿v天堂在线| 国产精品久久久久免费a∨| 亚洲大码熟女在线观看| 在线观看亚洲成人| 国产精品视频免费观看| 国产亚洲国产bv网站在线| 亚洲国产一区视频| 亚洲日本在线免费观看| 老司机福利在线免费观看| 亚洲免费观看视频| 欧洲黑大粗无码免费|