[集一]中文站點(diǎn):一定要看
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應(yīng)用程序中嵌入報(bào)表
隨著最近BEA WebLogic Workshop的功能集中加入了嵌入式報(bào)表功能,現(xiàn)在已經(jīng)可以在您的JavaServerPage(JSP)中處理和呈現(xiàn)行業(yè)標(biāo)準(zhǔn)的報(bào)表模板了。本文討論了嵌入式報(bào)表的要求,并特別討論了報(bào)表基礎(chǔ)架構(gòu)的一般要求。它還演示了如何把現(xiàn)有的報(bào)表模板添加到Workshop項(xiàng)目中,并把這些報(bào)表部署到WebLogic的J2EE應(yīng)用服務(wù)器上。
本系列隨后的文章將討論基于JDBC/JNDI數(shù)據(jù)源設(shè)計(jì)新報(bào)表,以及在分階段和部署場(chǎng)景下配置數(shù)據(jù)訪問(wèn)的過(guò)程。
手寫代碼的報(bào)表
最近,一項(xiàng)針對(duì)職業(yè)Java開發(fā)人員進(jìn)行的獨(dú)立調(diào)查表明,47%的Java開發(fā)人員通過(guò)手寫代碼的方式在其應(yīng)用程序中實(shí)現(xiàn)報(bào)表。另外的11%意識(shí)到,對(duì)每個(gè)項(xiàng)目從頭開始手動(dòng)生成報(bào)表是一種效率極低的做法,而且他們已經(jīng)內(nèi)部開發(fā)出他們自己的報(bào)表框架。調(diào)查還指出,Java開發(fā)人員要花上三分之一的工作時(shí)間開發(fā)和維護(hù)這些報(bào)表,以滿足最終用戶不甚明確、而且不斷變化的信息需求。
任何定制應(yīng)用程序開發(fā)項(xiàng)目的成功都是由最終用戶社區(qū)采用該應(yīng)用程序的程度來(lái)衡量的。決定成功的最小度量是用戶從應(yīng)用程序中提取有用信息的方便性。因此,報(bào)表是大多數(shù)定制應(yīng)用程序開發(fā)計(jì)劃取得成功的不可或缺的部分。
如果開發(fā)團(tuán)隊(duì)選擇內(nèi)部實(shí)現(xiàn)報(bào)表基礎(chǔ)架構(gòu),那么實(shí)際上,為最終用戶開發(fā)報(bào)表是一個(gè)代碼密集型的過(guò)程,應(yīng)該把這個(gè)過(guò)程合并到每個(gè)項(xiàng)目計(jì)劃中。然而,在定制應(yīng)用程序中嵌入報(bào)表通常在項(xiàng)目的后期階段完成,這種事后做法有助于項(xiàng)目的進(jìn)展。不論開發(fā)團(tuán)隊(duì)選擇構(gòu)建還是購(gòu)買嵌入式報(bào)表功能,應(yīng)該首先估計(jì)最終用戶的報(bào)表需求以及實(shí)現(xiàn)前后的相關(guān)開銷。
嵌入式報(bào)表設(shè)計(jì)模型
在每一個(gè)定制應(yīng)用程序開發(fā)項(xiàng)目中,開發(fā)人員和架構(gòu)師遇到的都是一些重復(fù)性的常見報(bào)表需求。因此,開發(fā)一個(gè)可以滿足這些需求并可跨多個(gè)項(xiàng)目重用的報(bào)表框架是可行的。應(yīng)用于這個(gè)問(wèn)題的常見報(bào)表需求和最佳實(shí)踐集構(gòu)成了一個(gè)報(bào)表設(shè)計(jì)模式,開發(fā)團(tuán)隊(duì)可以利用這個(gè)模式來(lái)降低應(yīng)用程序數(shù)據(jù)表示不足的風(fēng)險(xiǎn)。
一個(gè)嵌入式報(bào)表框架必須支持:
- 對(duì)報(bào)表作者和應(yīng)用程序最終用戶之間的嵌入式報(bào)表進(jìn)行快速、迭代的設(shè)計(jì)時(shí)原型設(shè)計(jì)
- 以多種方式——在線、打印/編頁(yè),以及流行的電子文件格式——查看報(bào)表中包含的信息,而不用針對(duì)每種格式重構(gòu)報(bào)表
- 解除報(bào)表基礎(chǔ)架構(gòu)和核心應(yīng)用程序之間的耦合,以提高可維護(hù)性并減少Q(mào)A開銷
- 胖客戶端表示質(zhì)量和零客戶端范圍內(nèi)的交互性
- 參數(shù)化數(shù)據(jù),以便把結(jié)果集放在環(huán)境中使用
借助Workshop的最新版本,BEA已經(jīng)意識(shí)到嵌入式報(bào)表在應(yīng)用程序開發(fā)生命周期中扮演的角色,并通過(guò)Crystal Report的一個(gè)定制版本提供內(nèi)置的報(bào)表功能。另一種選擇是對(duì)J2EE應(yīng)用程序的報(bào)表方面進(jìn)行手寫編碼,或者開發(fā)一個(gè)內(nèi)部的報(bào)表框架。Crystal Reports for BEA WebLogic Workshop加速了訪問(wèn)、格式化和集成JSP中的應(yīng)用程序數(shù)據(jù)的過(guò)程。
使用頁(yè)面流的嵌入式報(bào)表
Crystal Reports for BEA WebLogic Workshop集成到了Java Page Flow(JPF)中,而JPF又基于利用Struts框架的MVC架構(gòu)。這可以大大減少開發(fā)定制應(yīng)用程序報(bào)表方面所需的時(shí)間。報(bào)表模板文件是底層數(shù)據(jù)模型的代理。視圖是Crystal Viewer,它代表基于瀏覽器的用戶界面的所有可視化元素,其中包括Crystal Viewer支持的事件模型。控制器是Java Reporting Component,它負(fù)責(zé)連接模型和視圖,并使這兩個(gè)組件之間能夠進(jìn)行通信。
出于本文的需要,我們已經(jīng)創(chuàng)建了一個(gè)叫做EmeddedReportingDemo.work的WebLogic Workshop應(yīng)用程序,它包含一個(gè)叫做EmeddedReportingDemoWeb的項(xiàng)目。EmeddedReportingDemoWeb自動(dòng)包含一個(gè)Workshop生成的index.jsp、error.jsp文件,以及一個(gè)Java Page Flow Controller文件(Controller.jpf)。我們將添加一個(gè)報(bào)表查看器給Java Server Page(JSP),并使用向?qū)нx擇一個(gè)隨后能夠在這個(gè)JSP中運(yùn)行的報(bào)表。
如下圖所示,Crystal Reports Java Reporting Component與BEA WebLogic Workshop捆綁在一起,使用保存在WorldSalesReport.rpt模板中的報(bào)表元數(shù)據(jù)來(lái)連接到應(yīng)用程序的JDBC數(shù)據(jù)源并生成所需的數(shù)據(jù)結(jié)果集。然后,格式化的結(jié)果集被傳遞給由viewreport.jsp創(chuàng)建的Crystal Report Viewer,Crystal Report Viewer則將數(shù)據(jù)以HTML的形式傳送給瀏覽器客戶端。Crystal Viewer支持胖客戶端的事件模型,允許瀏覽器客戶端對(duì)聚合的報(bào)表數(shù)據(jù)進(jìn)行操作,可以本地打印報(bào)表,也可以將報(bào)表重新生成各種流行的電子文件形式。EmeddedReportingDemoWeb項(xiàng)目唯一的目的就是提供一個(gè)Crystal Report Viewer處理和表現(xiàn)單一報(bào)表模板文件(.RPT)的工作示例,從JSP頁(yè)面內(nèi)部部署到BEA WebLogic應(yīng)用服務(wù)器。
注意:報(bào)表模板是使用Crystal Reports for BEA WebLogic Workshop桌面報(bào)表設(shè)計(jì)器生成的,您可以在BEA WebLogic Workshop IDE中直接下載這個(gè)設(shè)計(jì)器。
在JSP頁(yè)面中嵌入Crystal報(bào)表
步驟1 創(chuàng)建EmbeddedReportingDemo應(yīng)用程序
要?jiǎng)?chuàng)建該項(xiàng)目,從Workshop File菜單中選擇New/Application。把應(yīng)用程序命名為EmbeddedReportingDemo。選擇“默認(rèn)的”應(yīng)用程序類型。選擇Create。
為了嵌入我們將在這個(gè)例子中使用的定制JSP查看器標(biāo)簽,選擇EmbeddedReportingDemoWeb項(xiàng)目;使用右擊菜單選項(xiàng)選擇Install/Crystal Reports。這將會(huì)安裝Crystal Reports Java Engine(和Crystal Reports Viewer Tags)。在項(xiàng)目目錄節(jié)點(diǎn)下,您將會(huì)看到一個(gè)名為crystalreportviewers10的新子目錄,以及您的/WEB-INF/classer子目錄中的CrystalReportEngine-config.xml文件。它還將在您的WEB-INF子目錄中添加crystal-tags-reportviewer.tld標(biāo)簽庫(kù)定義。
您將注意到,項(xiàng)目已經(jīng)有一個(gè)index.jsp和一個(gè)error.jsp文件。讓我們把index.jsp重新命名為viewreport.jsp,方法是選擇該文件,然后使用右擊菜單選項(xiàng)。雙擊文件controller.jpf。打開Begin動(dòng)作中的代碼,方法是選中它,然后選擇Source選項(xiàng)卡。修改Begin動(dòng)作的forward屬性,使其指向viewreport.jsp,然后對(duì)源代碼進(jìn)行相應(yīng)的修改使其查看viewreport。
步驟2 給您的JPS頁(yè)面添加Crystal Viewer
現(xiàn)在,您需要給您的JSP頁(yè)面添加Crystal Viewer。首先通過(guò)雙擊文件viewreport.jsp來(lái)選擇它。在設(shè)計(jì)視圖中,您可以去掉標(biāo)題“New Web Application Page”,方法是選中并刪除它。從Tag調(diào)色板把Crystal Decisions Viewer拖放到j(luò)sp上您想要看到報(bào)表的地方。一個(gè)向?qū)?huì)出現(xiàn)。鍵入SalesReport作為這個(gè)查看器實(shí)例的名稱。在Existing File欄中瀏覽World Sales Report.rpt報(bào)表。Crystal Reports for BEA WebLogic Workshop桌面報(bào)表設(shè)計(jì)器中也有這個(gè)報(bào)表,具體位置是c:/Program Files/Crystal Decisions/Crystal Reports 10/Samples/En/Reports/General Business。選中該.rpt文件。選擇Next。BEA Workshop需要知道在您的項(xiàng)目結(jié)構(gòu)中,您想在哪里保存報(bào)表模板的一個(gè)副本。選擇WEB-INF。選擇OK。該報(bào)表將被復(fù)制到您的目錄結(jié)構(gòu)中,具體位置是<應(yīng)用程序目錄>/EmbeddedReportingDemo/EmbeddedReportingdemoWeb/WEB-INF。
步驟3 定制查看器
下一個(gè)對(duì)話框允許您定制查看器的外觀和行為。顯示的值是默認(rèn)值;因此,如果您沒(méi)有顯式地設(shè)定值,插入的代碼中不會(huì)設(shè)置屬性。對(duì)于這個(gè)例子來(lái)說(shuō),我們尚未定制Crystal Viewer。
步驟4 編譯您的應(yīng)用程序,將其部署到WebLogic Application Server上
在Workshop IDE的開發(fā)/測(cè)試環(huán)境中,可以直接在WebLogic Server上測(cè)試應(yīng)用程序。選中文件Controller.jpf。如果要在調(diào)試模式中運(yùn)行應(yīng)用程序以檢查錯(cuò)誤,選擇菜單項(xiàng)Debug/Start。
要部署到生產(chǎn)服務(wù)器,或許是遠(yuǎn)程服務(wù)器上,您將要?jiǎng)?chuàng)建一個(gè)EAR文件。要生成一個(gè)EAR文件,選擇Build/Build EAR。現(xiàn)在,在您的應(yīng)用程序根目錄中將有一個(gè)名為EmbeddedReportingDemo.ear的文件。要想現(xiàn)在就把這個(gè)EAR文件部署到生產(chǎn)服務(wù)器上,遵循下面的步驟(您可以在Workshop在線幫助中找到這些步驟):
1. 打開以生產(chǎn)模式運(yùn)行的目標(biāo)服務(wù)器的WebLogic Server控制臺(tái)。
2. 在左邊的導(dǎo)航窗格上,打開Deployments節(jié)點(diǎn)。
3. 在左邊的導(dǎo)航窗格上,打開Applications節(jié)點(diǎn)。
4. 在右邊的內(nèi)容窗格上,點(diǎn)擊Deploy a New Application。
5. 點(diǎn)擊upload your file(s)。
6. 點(diǎn)擊Browse按鈕。
7. 在Choose file對(duì)話框中,定位您要部署的EAR文件,然后點(diǎn)擊Open。
8. 點(diǎn)擊Upload。
9. 選擇您想要部署的EAR文件,然后點(diǎn)擊Continue。
10. 點(diǎn)擊Deploy。
控制臺(tái)將顯示應(yīng)用程序的已部署模塊(EJB和web應(yīng)用程序)的一個(gè)列表。
現(xiàn)在,可以通過(guò)打開您的瀏覽器并鍵入該應(yīng)用程序的URL位置(比如http://vantsmith02:7001/EmbeddedReportingDemoWeb/viewreport.jsp)來(lái)運(yùn)行它。
World Sales Report將由Java Reporting Component進(jìn)行處理。然后,Crystal Viewer實(shí)例將把報(bào)表以HTML的形式呈現(xiàn)在您的瀏覽器界面中。注意,您可以通過(guò)探求多層一直到底層數(shù)據(jù)與報(bào)表交互。您還可以本地打印該報(bào)表,或者將其導(dǎo)出為各種電子文件格式。
步驟5 讓最終用戶與其交互
它非常簡(jiǎn)單。如果您有現(xiàn)成的Crystal報(bào)表,您現(xiàn)在就可以在BEA WebLogic Workshop中使用它們。如果您沒(méi)有,您可以試著使用直觀的設(shè)計(jì)器設(shè)計(jì)。如上所示,只需進(jìn)行一些簡(jiǎn)單的步驟,便可在您的JSP頁(yè)面中呈現(xiàn)報(bào)表。而且,如果最終用戶的需求不斷變化,也可以很容易地更新報(bào)表,而不會(huì)影響到您的核心應(yīng)用程序業(yè)務(wù)邏輯。
其他資源
想要了解關(guān)于Crystal Reports for BEA WebLogic Workshop的其他信息,請(qǐng)參考集成的BEA Workshop在線文檔,或者訪問(wèn)Crystal Decisions JavaZone開發(fā)者社區(qū),網(wǎng)址是http://www.businessobjects.com/products/dev_zone/java/。
[集一]中文站點(diǎn):一定要看
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應(yīng)用程序中嵌入報(bào)表
隨著最近BEA WebLogic Workshop的功能集中加入了嵌入式報(bào)表功能,現(xiàn)在已經(jīng)可以在您的JavaServerPage(JSP)中處理和呈現(xiàn)行業(yè)標(biāo)準(zhǔn)的報(bào)表模板了。本文討論了嵌入式報(bào)表的要求,并特別討論了報(bào)表基礎(chǔ)架構(gòu)的一般要求。它還演示了如何把現(xiàn)有的報(bào)表模板添加到Workshop項(xiàng)目中,并把這些報(bào)表部署到WebLogic的J2EE應(yīng)用服務(wù)器上。
本系列隨后的文章將討論基于JDBC/JNDI數(shù)據(jù)源設(shè)計(jì)新報(bào)表,以及在分階段和部署場(chǎng)景下配置數(shù)據(jù)訪問(wèn)的過(guò)程。
手寫代碼的報(bào)表
最近,一項(xiàng)針對(duì)職業(yè)Java開發(fā)人員進(jìn)行的獨(dú)立調(diào)查表明,47%的Java開發(fā)人員通過(guò)手寫代碼的方式在其應(yīng)用程序中實(shí)現(xiàn)報(bào)表。另外的11%意識(shí)到,對(duì)每個(gè)項(xiàng)目從頭開始手動(dòng)生成報(bào)表是一種效率極低的做法,而且他們已經(jīng)內(nèi)部開發(fā)出他們自己的報(bào)表框架。調(diào)查還指出,Java開發(fā)人員要花上三分之一的工作時(shí)間開發(fā)和維護(hù)這些報(bào)表,以滿足最終用戶不甚明確、而且不斷變化的信息需求。
任何定制應(yīng)用程序開發(fā)項(xiàng)目的成功都是由最終用戶社區(qū)采用該應(yīng)用程序的程度來(lái)衡量的。決定成功的最小度量是用戶從應(yīng)用程序中提取有用信息的方便性。因此,報(bào)表是大多數(shù)定制應(yīng)用程序開發(fā)計(jì)劃取得成功的不可或缺的部分。
如果開發(fā)團(tuán)隊(duì)選擇內(nèi)部實(shí)現(xiàn)報(bào)表基礎(chǔ)架構(gòu),那么實(shí)際上,為最終用戶開發(fā)報(bào)表是一個(gè)代碼密集型的過(guò)程,應(yīng)該把這個(gè)過(guò)程合并到每個(gè)項(xiàng)目計(jì)劃中。然而,在定制應(yīng)用程序中嵌入報(bào)表通常在項(xiàng)目的后期階段完成,這種事后做法有助于項(xiàng)目的進(jìn)展。不論開發(fā)團(tuán)隊(duì)選擇構(gòu)建還是購(gòu)買嵌入式報(bào)表功能,應(yīng)該首先估計(jì)最終用戶的報(bào)表需求以及實(shí)現(xiàn)前后的相關(guān)開銷。
嵌入式報(bào)表設(shè)計(jì)模型
在每一個(gè)定制應(yīng)用程序開發(fā)項(xiàng)目中,開發(fā)人員和架構(gòu)師遇到的都是一些重復(fù)性的常見報(bào)表需求。因此,開發(fā)一個(gè)可以滿足這些需求并可跨多個(gè)項(xiàng)目重用的報(bào)表框架是可行的。應(yīng)用于這個(gè)問(wèn)題的常見報(bào)表需求和最佳實(shí)踐集構(gòu)成了一個(gè)報(bào)表設(shè)計(jì)模式,開發(fā)團(tuán)隊(duì)可以利用這個(gè)模式來(lái)降低應(yīng)用程序數(shù)據(jù)表示不足的風(fēng)險(xiǎn)。
一個(gè)嵌入式報(bào)表框架必須支持:
- 對(duì)報(bào)表作者和應(yīng)用程序最終用戶之間的嵌入式報(bào)表進(jìn)行快速、迭代的設(shè)計(jì)時(shí)原型設(shè)計(jì)
- 以多種方式——在線、打印/編頁(yè),以及流行的電子文件格式——查看報(bào)表中包含的信息,而不用針對(duì)每種格式重構(gòu)報(bào)表
- 解除報(bào)表基礎(chǔ)架構(gòu)和核心應(yīng)用程序之間的耦合,以提高可維護(hù)性并減少Q(mào)A開銷
- 胖客戶端表示質(zhì)量和零客戶端范圍內(nèi)的交互性
- 參數(shù)化數(shù)據(jù),以便把結(jié)果集放在環(huán)境中使用
借助Workshop的最新版本,BEA已經(jīng)意識(shí)到嵌入式報(bào)表在應(yīng)用程序開發(fā)生命周期中扮演的角色,并通過(guò)Crystal Report的一個(gè)定制版本提供內(nèi)置的報(bào)表功能。另一種選擇是對(duì)J2EE應(yīng)用程序的報(bào)表方面進(jìn)行手寫編碼,或者開發(fā)一個(gè)內(nèi)部的報(bào)表框架。Crystal Reports for BEA WebLogic Workshop加速了訪問(wèn)、格式化和集成JSP中的應(yīng)用程序數(shù)據(jù)的過(guò)程。
使用頁(yè)面流的嵌入式報(bào)表
Crystal Reports for BEA WebLogic Workshop集成到了Java Page Flow(JPF)中,而JPF又基于利用Struts框架的MVC架構(gòu)。這可以大大減少開發(fā)定制應(yīng)用程序報(bào)表方面所需的時(shí)間。報(bào)表模板文件是底層數(shù)據(jù)模型的代理。視圖是Crystal Viewer,它代表基于瀏覽器的用戶界面的所有可視化元素,其中包括Crystal Viewer支持的事件模型。控制器是Java Reporting Component,它負(fù)責(zé)連接模型和視圖,并使這兩個(gè)組件之間能夠進(jìn)行通信。
出于本文的需要,我們已經(jīng)創(chuàng)建了一個(gè)叫做EmeddedReportingDemo.work的WebLogic Workshop應(yīng)用程序,它包含一個(gè)叫做EmeddedReportingDemoWeb的項(xiàng)目。EmeddedReportingDemoWeb自動(dòng)包含一個(gè)Workshop生成的index.jsp、error.jsp文件,以及一個(gè)Java Page Flow Controller文件(Controller.jpf)。我們將添加一個(gè)報(bào)表查看器給Java Server Page(JSP),并使用向?qū)нx擇一個(gè)隨后能夠在這個(gè)JSP中運(yùn)行的報(bào)表。
如下圖所示,Crystal Reports Java Reporting Component與BEA WebLogic Workshop捆綁在一起,使用保存在WorldSalesReport.rpt模板中的報(bào)表元數(shù)據(jù)來(lái)連接到應(yīng)用程序的JDBC數(shù)據(jù)源并生成所需的數(shù)據(jù)結(jié)果集。然后,格式化的結(jié)果集被傳遞給由viewreport.jsp創(chuàng)建的Crystal Report Viewer,Crystal Report Viewer則將數(shù)據(jù)以HTML的形式傳送給瀏覽器客戶端。Crystal Viewer支持胖客戶端的事件模型,允許瀏覽器客戶端對(duì)聚合的報(bào)表數(shù)據(jù)進(jìn)行操作,可以本地打印報(bào)表,也可以將報(bào)表重新生成各種流行的電子文件形式。EmeddedReportingDemoWeb項(xiàng)目唯一的目的就是提供一個(gè)Crystal Report Viewer處理和表現(xiàn)單一報(bào)表模板文件(.RPT)的工作示例,從JSP頁(yè)面內(nèi)部部署到BEA WebLogic應(yīng)用服務(wù)器。
注意:報(bào)表模板是使用Crystal Reports for BEA WebLogic Workshop桌面報(bào)表設(shè)計(jì)器生成的,您可以在BEA WebLogic Workshop IDE中直接下載這個(gè)設(shè)計(jì)器。
在JSP頁(yè)面中嵌入Crystal報(bào)表
步驟1 創(chuàng)建EmbeddedReportingDemo應(yīng)用程序
要?jiǎng)?chuàng)建該項(xiàng)目,從Workshop File菜單中選擇New/Application。把應(yīng)用程序命名為EmbeddedReportingDemo。選擇“默認(rèn)的”應(yīng)用程序類型。選擇Create。
為了嵌入我們將在這個(gè)例子中使用的定制JSP查看器標(biāo)簽,選擇EmbeddedReportingDemoWeb項(xiàng)目;使用右擊菜單選項(xiàng)選擇Install/Crystal Reports。這將會(huì)安裝Crystal Reports Java Engine(和Crystal Reports Viewer Tags)。在項(xiàng)目目錄節(jié)點(diǎn)下,您將會(huì)看到一個(gè)名為crystalreportviewers10的新子目錄,以及您的/WEB-INF/classer子目錄中的CrystalReportEngine-config.xml文件。它還將在您的WEB-INF子目錄中添加crystal-tags-reportviewer.tld標(biāo)簽庫(kù)定義。
您將注意到,項(xiàng)目已經(jīng)有一個(gè)index.jsp和一個(gè)error.jsp文件。讓我們把index.jsp重新命名為viewreport.jsp,方法是選擇該文件,然后使用右擊菜單選項(xiàng)。雙擊文件controller.jpf。打開Begin動(dòng)作中的代碼,方法是選中它,然后選擇Source選項(xiàng)卡。修改Begin動(dòng)作的forward屬性,使其指向viewreport.jsp,然后對(duì)源代碼進(jìn)行相應(yīng)的修改使其查看viewreport。
步驟2 給您的JPS頁(yè)面添加Crystal Viewer
現(xiàn)在,您需要給您的JSP頁(yè)面添加Crystal Viewer。首先通過(guò)雙擊文件viewreport.jsp來(lái)選擇它。在設(shè)計(jì)視圖中,您可以去掉標(biāo)題“New Web Application Page”,方法是選中并刪除它。從Tag調(diào)色板把Crystal Decisions Viewer拖放到j(luò)sp上您想要看到報(bào)表的地方。一個(gè)向?qū)?huì)出現(xiàn)。鍵入SalesReport作為這個(gè)查看器實(shí)例的名稱。在Existing File欄中瀏覽World Sales Report.rpt報(bào)表。Crystal Reports for BEA WebLogic Workshop桌面報(bào)表設(shè)計(jì)器中也有這個(gè)報(bào)表,具體位置是c:/Program Files/Crystal Decisions/Crystal Reports 10/Samples/En/Reports/General Business。選中該.rpt文件。選擇Next。BEA Workshop需要知道在您的項(xiàng)目結(jié)構(gòu)中,您想在哪里保存報(bào)表模板的一個(gè)副本。選擇WEB-INF。選擇OK。該報(bào)表將被復(fù)制到您的目錄結(jié)構(gòu)中,具體位置是<應(yīng)用程序目錄>/EmbeddedReportingDemo/EmbeddedReportingdemoWeb/WEB-INF。
步驟3 定制查看器
下一個(gè)對(duì)話框允許您定制查看器的外觀和行為。顯示的值是默認(rèn)值;因此,如果您沒(méi)有顯式地設(shè)定值,插入的代碼中不會(huì)設(shè)置屬性。對(duì)于這個(gè)例子來(lái)說(shuō),我們尚未定制Crystal Viewer。
步驟4 編譯您的應(yīng)用程序,將其部署到WebLogic Application Server上
在Workshop IDE的開發(fā)/測(cè)試環(huán)境中,可以直接在WebLogic Server上測(cè)試應(yīng)用程序。選中文件Controller.jpf。如果要在調(diào)試模式中運(yùn)行應(yīng)用程序以檢查錯(cuò)誤,選擇菜單項(xiàng)Debug/Start。
要部署到生產(chǎn)服務(wù)器,或許是遠(yuǎn)程服務(wù)器上,您將要?jiǎng)?chuàng)建一個(gè)EAR文件。要生成一個(gè)EAR文件,選擇Build/Build EAR。現(xiàn)在,在您的應(yīng)用程序根目錄中將有一個(gè)名為EmbeddedReportingDemo.ear的文件。要想現(xiàn)在就把這個(gè)EAR文件部署到生產(chǎn)服務(wù)器上,遵循下面的步驟(您可以在Workshop在線幫助中找到這些步驟):
1. 打開以生產(chǎn)模式運(yùn)行的目標(biāo)服務(wù)器的WebLogic Server控制臺(tái)。
2. 在左邊的導(dǎo)航窗格上,打開Deployments節(jié)點(diǎn)。
3. 在左邊的導(dǎo)航窗格上,打開Applications節(jié)點(diǎn)。
4. 在右邊的內(nèi)容窗格上,點(diǎn)擊Deploy a New Application。
5. 點(diǎn)擊upload your file(s)。
6. 點(diǎn)擊Browse按鈕。
7. 在Choose file對(duì)話框中,定位您要部署的EAR文件,然后點(diǎn)擊Open。
8. 點(diǎn)擊Upload。
9. 選擇您想要部署的EAR文件,然后點(diǎn)擊Continue。
10. 點(diǎn)擊Deploy。
控制臺(tái)將顯示應(yīng)用程序的已部署模塊(EJB和web應(yīng)用程序)的一個(gè)列表。
現(xiàn)在,可以通過(guò)打開您的瀏覽器并鍵入該應(yīng)用程序的URL位置(比如http://vantsmith02:7001/EmbeddedReportingDemoWeb/viewreport.jsp)來(lái)運(yùn)行它。
World Sales Report將由Java Reporting Component進(jìn)行處理。然后,Crystal Viewer實(shí)例將把報(bào)表以HTML的形式呈現(xiàn)在您的瀏覽器界面中。注意,您可以通過(guò)探求多層一直到底層數(shù)據(jù)與報(bào)表交互。您還可以本地打印該報(bào)表,或者將其導(dǎo)出為各種電子文件格式。
步驟5 讓最終用戶與其交互
它非常簡(jiǎn)單。如果您有現(xiàn)成的Crystal報(bào)表,您現(xiàn)在就可以在BEA WebLogic Workshop中使用它們。如果您沒(méi)有,您可以試著使用直觀的設(shè)計(jì)器設(shè)計(jì)。如上所示,只需進(jìn)行一些簡(jiǎn)單的步驟,便可在您的JSP頁(yè)面中呈現(xiàn)報(bào)表。而且,如果最終用戶的需求不斷變化,也可以很容易地更新報(bào)表,而不會(huì)影響到您的核心應(yīng)用程序業(yè)務(wù)邏輯。
其他資源
想要了解關(guān)于Crystal Reports for BEA WebLogic Workshop的其他信息,請(qǐng)參考集成的BEA Workshop在線文檔,或者訪問(wèn)Crystal Decisions JavaZone開發(fā)者社區(qū),網(wǎng)址是http://www.businessobjects.com/products/dev_zone/java/。
地震讓大伙知道:居安思危,才是生存之道。
