使用eclipse在jsp上顯示水晶報表(一)最簡單例子

來源:互聯網
上載者:User

 

我使用的開發IDE是eclipse3.2,伺服器是tomcat5.5

建立一個 Crystal reports web項目

在Target runtime選擇apache tomcat v5.5

下一步中crystal reports java reporting component、dynamic web module、java是預設選中的,這三個是必需的,你也可添加struts,後面的設定會要求你添加struts的類庫。在最後面預設加入樣本的資料庫和報表。

這樣一個Crystal Reports web項目就建立了(上面的步驟應該是地球人都可以完成吧)

在裡面有個CrystalReport1.rpt和CrystalReport_viewer.jsp

右鍵CrystalReport_viewer.jsp->運行方式->Run on Server,點擊完成。

你應該就可以看到一個空的水晶報表了吧(為什麼空的,當然啦,CrystalReport1.rpt本身是空的)

在看看sample reports檔案夾裡面,有4個樣本的.rpt報表檔案,右擊其中任何一個,選中Crystal Reports-》建立查看器JSP,就會建立一個*-viewer.jsp檔案。運行這個檔案,你應該可以看到一個水晶報表了吧。

我想這對大部分人應該都是沒有問題的,剩下的事情就是好好分析這個項目裡面所有的東東了

-------------------------------------------------------------------------------------------------------------------------------------------------------

上面什麼東西是在任何項目中實現都必須的呢?為此我特意建立一個新的tomcat項目,最好建一個簡單的jsp頁面測試下你的tomcat項目是否可以正常運行.

通過本人的實驗,在其他項目中JSP運行水晶報表的話,需要的類檔案跟配置.

1. 添加一個使用者庫如 CrystalReports Libraries,把下面的*.jar添加進去

commons-collections-3.1.jar,commons-configuration-1.2.jar,
commons-lang-2.1.jar,
commons-logging.jar,
Concurrent.jar,
CrystalCharting.jar
CrystalCommon.jar
CrystalContentModels.jar
CrystalDatabaseConnectors.jar
CrystalExporters.jar
CrystalExportingBase.jar
CrystalFormulas.jar
CrystalQueryEngine.jar
CrystalReportEngine.jar
CrystalReportingCommon.jar
derby.jar
icu4j.jar
jrcadapter.jar
jrcerom.jar
keycodeDecoder.jar
log4j.jar
MetafileRenderer.jar
msbase.jar
mssqlserver.jar
msutil.jar
rasapp.jar
rascore.jar
ReportPrinter.jar
rpoifs.jar
serialization.jar
URIUtil.jar
webreporting.jar
webreporting-jsf.jar
xercesImpl.jar
xml-apis.jar
Xtreme.jar

(總共36個jar,裡面有一些在其他的庫已經有的了,在項目中添加這個自訂庫就行了)

 

2. 把上個例子中的crystalreportviewers檔案夾放在WEB-INF檔案夾同一目錄下。這個就是你能看到水晶報表的基本架構,相當於.net裡面的水晶報表控制項了的原始碼了。

3. 把crystal-tags-reportviewer.tld放在WEB-INF下,主要標籤

 

4. web.xml 在<web-app>中間添加,主要是讀入crystalreportviewers

    <context-param>
    <param-name>crystal_image_uri</param-name>
    <param-value>crystalreportviewers</param-value>
    </context-param>
    <context-param>
        <param-name>crystal_image_use_relative</param-name>
        <param-value>webapp</param-value>
    </context-param>

 

5. 把CRConfig.xml放在src檔案夾下,水晶報表的設定檔,如果你有註冊,註冊碼也會在這檔案裡面

CRConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<CrystalReportEngine-configuration>
    <reportlocation>../..</reportlocation>
    <timeout>0</timeout>
    <ExternalFunctionLibraryClassNames>
     <classname/>
    </ExternalFunctionLibraryClassNames>
</CrystalReportEngine-configuration>
配置逾時間隔

利用 CRConfig.xml 檔案,您可以配置確定何時丟棄不活動報表源的逾時間隔(以分鐘為單位)。這是必要的,因為不活動報表源仍然會消耗系統資源(如資料庫連接、伺服器記憶體以及臨時檔案使用的磁碟空間)。可以通過在 CRConfig.xml 檔案中設定 timeout 標記的值來指定逾時間隔。預設情況下,逾時間隔為 10 分鐘。通過將該值設定為 0,可以將 Java Reporting Component 配置為沒有逾時。

逾時間隔僅適用於不活動報表 -- 正在處理的報表不會因超出此值而逾時。每次成功完成一個報表源請求時,逾時定時器將會重設。如果在逾時間隔內沒有使用某個報表源,則會丟棄該報表源,並將其資源提供給其他進程使用。

6.  在jsp頁面插入這段代碼

<%@ taglib uri="/crystal-tags-reportviewer.tld" prefix="crviewer" %>
<crviewer:viewer reportSourceType="reportingComponent" viewerName="rcname-viewer" reportSourceVar="rcname" isOwnPage="true">
<crviewer:report reportName="rcname.rpt" />
</crviewer:viewer>

感覺像在用.net裡面的水晶報表控制項一樣,不只viewer,連partviewer也可以的.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.