[集一]中文站點:一定要看
http://www.softonline.com.cn/crystal/index.htm
[集二]API 文檔地址
URL
Viewers Java API Reference
[集三]Crystal Reports for Eclipse: 1.0 [下載]
http://diamond.businessobjects.com/node/440
[集四]功能一覽
http://www.softonline.com.cn/crystal/crystalreports/index.htm
[集五]Crystal Reports for BEA Weblogic Workshop
--在BEA WebLogic Workshop應用程序中嵌入報表
隨著最近BEA WebLogic Workshop的功能集中加入了嵌入式報表功能,現在已經可以在您的JavaServerPage(JSP)中處理和呈現行業標準的報表模板了。本文討論了嵌入式報表的要求,并特別討論了報表基礎架構的一般要求。它還演示了如何把現有的報表模板添加到Workshop項目中,并把這些報表部署到WebLogic的J2EE應用服務器上。
本系列隨后的文章將討論基于JDBC/JNDI數據源設計新報表,以及在分階段和部署場景下配置數據訪問的過程。
手寫代碼的報表
最近,一項針對職業Java開發人員進行的獨立調查表明,47%的Java開發人員通過手寫代碼的方式在其應用程序中實現報表。另外的11%意識到,對每個項目從頭開始手動生成報表是一種效率極低的做法,而且他們已經內部開發出他們自己的報表框架。調查還指出,Java開發人員要花上三分之一的工作時間開發和維護這些報表,以滿足最終用戶不甚明確、而且不斷變化的信息需求。
任何定制應用程序開發項目的成功都是由最終用戶社區采用該應用程序的程度來衡量的。決定成功的最小度量是用戶從應用程序中提取有用信息的方便性。因此,報表是大多數定制應用程序開發計劃取得成功的不可或缺的部分。
如果開發團隊選擇內部實現報表基礎架構,那么實際上,為最終用戶開發報表是一個代碼密集型的過程,應該把這個過程合并到每個項目計劃中。然而,在定制應用程序中嵌入報表通常在項目的后期階段完成,這種事后做法有助于項目的進展。不論開發團隊選擇構建還是購買嵌入式報表功能,應該首先估計最終用戶的報表需求以及實現前后的相關開銷。
嵌入式報表設計模型
在每一個定制應用程序開發項目中,開發人員和架構師遇到的都是一些重復性的常見報表需求。因此,開發一個可以滿足這些需求并可跨多個項目重用的報表框架是可行的。應用于這個問題的常見報表需求和最佳實踐集構成了一個報表設計模式,開發團隊可以利用這個模式來降低應用程序數據表示不足的風險。
一個嵌入式報表框架必須支持:
- 對報表作者和應用程序最終用戶之間的嵌入式報表進行快速、迭代的設計時原型設計
- 以多種方式——在線、打印/編頁,以及流行的電子文件格式——查看報表中包含的信息,而不用針對每種格式重構報表
- 解除報表基礎架構和核心應用程序之間的耦合,以提高可維護性并減少QA開銷
- 胖客戶端表示質量和零客戶端范圍內的交互性
- 參數化數據,以便把結果集放在環境中使用
借助Workshop的最新版本,BEA已經意識到嵌入式報表在應用程序開發生命周期中扮演的角色,并通過Crystal Report的一個定制版本提供內置的報表功能。另一種選擇是對J2EE應用程序的報表方面進行手寫編碼,或者開發一個內部的報表框架。Crystal Reports for BEA WebLogic Workshop加速了訪問、格式化和集成JSP中的應用程序數據的過程。
使用頁面流的嵌入式報表
Crystal Reports for BEA WebLogic Workshop集成到了Java Page Flow(JPF)中,而JPF又基于利用Struts框架的MVC架構。這可以大大減少開發定制應用程序報表方面所需的時間。報表模板文件是底層數據模型的代理。視圖是Crystal Viewer,它代表基于瀏覽器的用戶界面的所有可視化元素,其中包括Crystal Viewer支持的事件模型。控制器是Java Reporting Component,它負責連接模型和視圖,并使這兩個組件之間能夠進行通信。
出于本文的需要,我們已經創建了一個叫做EmeddedReportingDemo.work的WebLogic Workshop應用程序,它包含一個叫做EmeddedReportingDemoWeb的項目。EmeddedReportingDemoWeb自動包含一個Workshop生成的index.jsp、error.jsp文件,以及一個Java Page Flow Controller文件(Controller.jpf)。我們將添加一個報表查看器給Java Server Page(JSP),并使用向導選擇一個隨后能夠在這個JSP中運行的報表。
如下圖所示,Crystal Reports Java Reporting Component與BEA WebLogic Workshop捆綁在一起,使用保存在WorldSalesReport.rpt模板中的報表元數據來連接到應用程序的JDBC數據源并生成所需的數據結果集。然后,格式化的結果集被傳遞給由viewreport.jsp創建的Crystal Report Viewer,Crystal Report Viewer則將數據以HTML的形式傳送給瀏覽器客戶端。Crystal Viewer支持胖客戶端的事件模型,允許瀏覽器客戶端對聚合的報表數據進行操作,可以本地打印報表,也可以將報表重新生成各種流行的電子文件形式。EmeddedReportingDemoWeb項目唯一的目的就是提供一個Crystal Report Viewer處理和表現單一報表模板文件(.RPT)的工作示例,從JSP頁面內部部署到BEA WebLogic應用服務器。

注意:報表模板是使用Crystal Reports for BEA WebLogic Workshop桌面報表設計器生成的,您可以在BEA WebLogic Workshop IDE中直接下載這個設計器。
在JSP頁面中嵌入Crystal報表
步驟1 創建EmbeddedReportingDemo應用程序
要創建該項目,從Workshop File菜單中選擇New/Application。把應用程序命名為EmbeddedReportingDemo。選擇“默認的”應用程序類型。選擇Create。
為了嵌入我們將在這個例子中使用的定制JSP查看器標簽,選擇EmbeddedReportingDemoWeb項目;使用右擊菜單選項選擇Install/Crystal Reports。這將會安裝Crystal Reports Java Engine(和Crystal Reports Viewer Tags)。在項目目錄節點下,您將會看到一個名為crystalreportviewers10的新子目錄,以及您的/WEB-INF/classer子目錄中的CrystalReportEngine-config.xml文件。它還將在您的WEB-INF子目錄中添加crystal-tags-reportviewer.tld標簽庫定義。
您將注意到,項目已經有一個index.jsp和一個error.jsp文件。讓我們把index.jsp重新命名為viewreport.jsp,方法是選擇該文件,然后使用右擊菜單選項。雙擊文件controller.jpf。打開Begin動作中的代碼,方法是選中它,然后選擇Source選項卡。修改Begin動作的forward屬性,使其指向viewreport.jsp,然后對源代碼進行相應的修改使其查看viewreport。

步驟2 給您的JPS頁面添加Crystal Viewer
現在,您需要給您的JSP頁面添加Crystal Viewer。首先通過雙擊文件viewreport.jsp來選擇它。在設計視圖中,您可以去掉標題“New Web Application Page”,方法是選中并刪除它。從Tag調色板把Crystal Decisions Viewer拖放到jsp上您想要看到報表的地方。一個向導將會出現。鍵入SalesReport作為這個查看器實例的名稱。在Existing File欄中瀏覽World Sales Report.rpt報表。Crystal Reports for BEA WebLogic Workshop桌面報表設計器中也有這個報表,具體位置是c:/Program Files/Crystal Decisions/Crystal Reports 10/Samples/En/Reports/General Business。選中該.rpt文件。選擇Next。BEA Workshop需要知道在您的項目結構中,您想在哪里保存報表模板的一個副本。選擇WEB-INF。選擇OK。該報表將被復制到您的目錄結構中,具體位置是<應用程序目錄>/EmbeddedReportingDemo/EmbeddedReportingdemoWeb/WEB-INF。

步驟3 定制查看器
下一個對話框允許您定制查看器的外觀和行為。顯示的值是默認值;因此,如果您沒有顯式地設定值,插入的代碼中不會設置屬性。對于這個例子來說,我們尚未定制Crystal Viewer。


步驟4 編譯您的應用程序,將其部署到WebLogic Application Server上
在Workshop IDE的開發/測試環境中,可以直接在WebLogic Server上測試應用程序。選中文件Controller.jpf。如果要在調試模式中運行應用程序以檢查錯誤,選擇菜單項Debug/Start。
要部署到生產服務器,或許是遠程服務器上,您將要創建一個EAR文件。要生成一個EAR文件,選擇Build/Build EAR。現在,在您的應用程序根目錄中將有一個名為EmbeddedReportingDemo.ear的文件。要想現在就把這個EAR文件部署到生產服務器上,遵循下面的步驟(您可以在Workshop在線幫助中找到這些步驟):
1. 打開以生產模式運行的目標服務器的WebLogic Server控制臺。
2. 在左邊的導航窗格上,打開Deployments節點。
3. 在左邊的導航窗格上,打開Applications節點。
4. 在右邊的內容窗格上,點擊Deploy a New Application。
5. 點擊upload your file(s)。
6. 點擊Browse按鈕。
7. 在Choose file對話框中,定位您要部署的EAR文件,然后點擊Open。
8. 點擊Upload。
9. 選擇您想要部署的EAR文件,然后點擊Continue。
10. 點擊Deploy。
控制臺將顯示應用程序的已部署模塊(EJB和web應用程序)的一個列表。
現在,可以通過打開您的瀏覽器并鍵入該應用程序的URL位置(比如http://vantsmith02:7001/EmbeddedReportingDemoWeb/viewreport.jsp)來運行它。
World Sales Report將由Java Reporting Component進行處理。然后,Crystal Viewer實例將把報表以HTML的形式呈現在您的瀏覽器界面中。注意,您可以通過探求多層一直到底層數據與報表交互。您還可以本地打印該報表,或者將其導出為各種電子文件格式。

步驟5 讓最終用戶與其交互
它非常簡單。如果您有現成的Crystal報表,您現在就可以在BEA WebLogic Workshop中使用它們。如果您沒有,您可以試著使用直觀的設計器設計。如上所示,只需進行一些簡單的步驟,便可在您的JSP頁面中呈現報表。而且,如果最終用戶的需求不斷變化,也可以很容易地更新報表,而不會影響到您的核心應用程序業務邏輯。
其他資源
想要了解關于Crystal Reports for BEA WebLogic Workshop的其他信息,請參考集成的BEA Workshop在線文檔,或者訪問Crystal Decisions JavaZone開發者社區,網址是http://www.businessobjects.com/products/dev_zone/java/。
[集一]中文站點:一定要看
http://www.softonline.com.cn/crystal/index.htm
[集二]API 文檔地址
URL
Viewers Java API Reference
[集三]Crystal Reports for Eclipse: 1.0 [下載]
http://diamond.businessobjects.com/node/440
[集四]功能一覽
http://www.softonline.com.cn/crystal/crystalreports/index.htm
[集五]Crystal Reports for BEA Weblogic Workshop--在BEA WebLogic Workshop應用程序中嵌入報表 隨著最近BEA WebLogic Workshop的功能集中加入了嵌入式報表功能,現在已經可以在您的JavaServerPage(JSP)中處理和呈現行業標準的報表模板了。本文討論了嵌入式報表的要求,并特別討論了報表基礎架構的一般要求。它還演示了如何把現有的報表模板添加到Workshop項目中,并把這些報表部署到WebLogic的J2EE應用服務器上。
本系列隨后的文章將討論基于JDBC/JNDI數據源設計新報表,以及在分階段和部署場景下配置數據訪問的過程。
手寫代碼的報表
最近,一項針對職業Java開發人員進行的獨立調查表明,47%的Java開發人員通過手寫代碼的方式在其應用程序中實現報表。另外的11%意識到,對每個項目從頭開始手動生成報表是一種效率極低的做法,而且他們已經內部開發出他們自己的報表框架。調查還指出,Java開發人員要花上三分之一的工作時間開發和維護這些報表,以滿足最終用戶不甚明確、而且不斷變化的信息需求。
任何定制應用程序開發項目的成功都是由最終用戶社區采用該應用程序的程度來衡量的。決定成功的最小度量是用戶從應用程序中提取有用信息的方便性。因此,報表是大多數定制應用程序開發計劃取得成功的不可或缺的部分。
如果開發團隊選擇內部實現報表基礎架構,那么實際上,為最終用戶開發報表是一個代碼密集型的過程,應該把這個過程合并到每個項目計劃中。然而,在定制應用程序中嵌入報表通常在項目的后期階段完成,這種事后做法有助于項目的進展。不論開發團隊選擇構建還是購買嵌入式報表功能,應該首先估計最終用戶的報表需求以及實現前后的相關開銷。
嵌入式報表設計模型
在每一個定制應用程序開發項目中,開發人員和架構師遇到的都是一些重復性的常見報表需求。因此,開發一個可以滿足這些需求并可跨多個項目重用的報表框架是可行的。應用于這個問題的常見報表需求和最佳實踐集構成了一個報表設計模式,開發團隊可以利用這個模式來降低應用程序數據表示不足的風險。
一個嵌入式報表框架必須支持:
- 對報表作者和應用程序最終用戶之間的嵌入式報表進行快速、迭代的設計時原型設計
- 以多種方式——在線、打印/編頁,以及流行的電子文件格式——查看報表中包含的信息,而不用針對每種格式重構報表
- 解除報表基礎架構和核心應用程序之間的耦合,以提高可維護性并減少QA開銷
- 胖客戶端表示質量和零客戶端范圍內的交互性
- 參數化數據,以便把結果集放在環境中使用
借助Workshop的最新版本,BEA已經意識到嵌入式報表在應用程序開發生命周期中扮演的角色,并通過Crystal Report的一個定制版本提供內置的報表功能。另一種選擇是對J2EE應用程序的報表方面進行手寫編碼,或者開發一個內部的報表框架。Crystal Reports for BEA WebLogic Workshop加速了訪問、格式化和集成JSP中的應用程序數據的過程。
使用頁面流的嵌入式報表
Crystal Reports for BEA WebLogic Workshop集成到了Java Page Flow(JPF)中,而JPF又基于利用Struts框架的MVC架構。這可以大大減少開發定制應用程序報表方面所需的時間。報表模板文件是底層數據模型的代理。視圖是Crystal Viewer,它代表基于瀏覽器的用戶界面的所有可視化元素,其中包括Crystal Viewer支持的事件模型。控制器是Java Reporting Component,它負責連接模型和視圖,并使這兩個組件之間能夠進行通信。
出于本文的需要,我們已經創建了一個叫做EmeddedReportingDemo.work的WebLogic Workshop應用程序,它包含一個叫做EmeddedReportingDemoWeb的項目。EmeddedReportingDemoWeb自動包含一個Workshop生成的index.jsp、error.jsp文件,以及一個Java Page Flow Controller文件(Controller.jpf)。我們將添加一個報表查看器給Java Server Page(JSP),并使用向導選擇一個隨后能夠在這個JSP中運行的報表。
如下圖所示,Crystal Reports Java Reporting Component與BEA WebLogic Workshop捆綁在一起,使用保存在WorldSalesReport.rpt模板中的報表元數據來連接到應用程序的JDBC數據源并生成所需的數據結果集。然后,格式化的結果集被傳遞給由viewreport.jsp創建的Crystal Report Viewer,Crystal Report Viewer則將數據以HTML的形式傳送給瀏覽器客戶端。Crystal Viewer支持胖客戶端的事件模型,允許瀏覽器客戶端對聚合的報表數據進行操作,可以本地打印報表,也可以將報表重新生成各種流行的電子文件形式。EmeddedReportingDemoWeb項目唯一的目的就是提供一個Crystal Report Viewer處理和表現單一報表模板文件(.RPT)的工作示例,從JSP頁面內部部署到BEA WebLogic應用服務器。

注意:報表模板是使用Crystal Reports for BEA WebLogic Workshop桌面報表設計器生成的,您可以在BEA WebLogic Workshop IDE中直接下載這個設計器。
在JSP頁面中嵌入Crystal報表
步驟1 創建EmbeddedReportingDemo應用程序
要創建該項目,從Workshop File菜單中選擇New/Application。把應用程序命名為EmbeddedReportingDemo。選擇“默認的”應用程序類型。選擇Create。
為了嵌入我們將在這個例子中使用的定制JSP查看器標簽,選擇EmbeddedReportingDemoWeb項目;使用右擊菜單選項選擇Install/Crystal Reports。這將會安裝Crystal Reports Java Engine(和Crystal Reports Viewer Tags)。在項目目錄節點下,您將會看到一個名為crystalreportviewers10的新子目錄,以及您的/WEB-INF/classer子目錄中的CrystalReportEngine-config.xml文件。它還將在您的WEB-INF子目錄中添加crystal-tags-reportviewer.tld標簽庫定義。
您將注意到,項目已經有一個index.jsp和一個error.jsp文件。讓我們把index.jsp重新命名為viewreport.jsp,方法是選擇該文件,然后使用右擊菜單選項。雙擊文件controller.jpf。打開Begin動作中的代碼,方法是選中它,然后選擇Source選項卡。修改Begin動作的forward屬性,使其指向viewreport.jsp,然后對源代碼進行相應的修改使其查看viewreport。

步驟2 給您的JPS頁面添加Crystal Viewer
現在,您需要給您的JSP頁面添加Crystal Viewer。首先通過雙擊文件viewreport.jsp來選擇它。在設計視圖中,您可以去掉標題“New Web Application Page”,方法是選中并刪除它。從Tag調色板把Crystal Decisions Viewer拖放到jsp上您想要看到報表的地方。一個向導將會出現。鍵入SalesReport作為這個查看器實例的名稱。在Existing File欄中瀏覽World Sales Report.rpt報表。Crystal Reports for BEA WebLogic Workshop桌面報表設計器中也有這個報表,具體位置是c:/Program Files/Crystal Decisions/Crystal Reports 10/Samples/En/Reports/General Business。選中該.rpt文件。選擇Next。BEA Workshop需要知道在您的項目結構中,您想在哪里保存報表模板的一個副本。選擇WEB-INF。選擇OK。該報表將被復制到您的目錄結構中,具體位置是<應用程序目錄>/EmbeddedReportingDemo/EmbeddedReportingdemoWeb/WEB-INF。

步驟3 定制查看器
下一個對話框允許您定制查看器的外觀和行為。顯示的值是默認值;因此,如果您沒有顯式地設定值,插入的代碼中不會設置屬性。對于這個例子來說,我們尚未定制Crystal Viewer。


步驟4 編譯您的應用程序,將其部署到WebLogic Application Server上
在Workshop IDE的開發/測試環境中,可以直接在WebLogic Server上測試應用程序。選中文件Controller.jpf。如果要在調試模式中運行應用程序以檢查錯誤,選擇菜單項Debug/Start。
要部署到生產服務器,或許是遠程服務器上,您將要創建一個EAR文件。要生成一個EAR文件,選擇Build/Build EAR。現在,在您的應用程序根目錄中將有一個名為EmbeddedReportingDemo.ear的文件。要想現在就把這個EAR文件部署到生產服務器上,遵循下面的步驟(您可以在Workshop在線幫助中找到這些步驟):
1. 打開以生產模式運行的目標服務器的WebLogic Server控制臺。
2. 在左邊的導航窗格上,打開Deployments節點。
3. 在左邊的導航窗格上,打開Applications節點。
4. 在右邊的內容窗格上,點擊Deploy a New Application。
5. 點擊upload your file(s)。
6. 點擊Browse按鈕。
7. 在Choose file對話框中,定位您要部署的EAR文件,然后點擊Open。
8. 點擊Upload。
9. 選擇您想要部署的EAR文件,然后點擊Continue。
10. 點擊Deploy。
控制臺將顯示應用程序的已部署模塊(EJB和web應用程序)的一個列表。
現在,可以通過打開您的瀏覽器并鍵入該應用程序的URL位置(比如http://vantsmith02:7001/EmbeddedReportingDemoWeb/viewreport.jsp)來運行它。
World Sales Report將由Java Reporting Component進行處理。然后,Crystal Viewer實例將把報表以HTML的形式呈現在您的瀏覽器界面中。注意,您可以通過探求多層一直到底層數據與報表交互。您還可以本地打印該報表,或者將其導出為各種電子文件格式。

步驟5 讓最終用戶與其交互
它非常簡單。如果您有現成的Crystal報表,您現在就可以在BEA WebLogic Workshop中使用它們。如果您沒有,您可以試著使用直觀的設計器設計。如上所示,只需進行一些簡單的步驟,便可在您的JSP頁面中呈現報表。而且,如果最終用戶的需求不斷變化,也可以很容易地更新報表,而不會影響到您的核心應用程序業務邏輯。
其他資源
想要了解關于Crystal Reports for BEA WebLogic Workshop的其他信息,請參考集成的BEA Workshop在線文檔,或者訪問Crystal Decisions JavaZone開發者社區,網址是http://www.businessobjects.com/products/dev_zone/java/。
地震讓大伙知道:居安思危,才是生存之道。
posted on 2007-07-20 22:02
小尋 閱讀(1727)
評論(0) 編輯 收藏 所屬分類:
j2se/j2ee/j2me