使用頁面伺服器檢視報表

本範例說明如何使用檢視器標示庫,以使用由頁面伺服器產生的報表來源顯示報表。

使用頁面伺服器檢視報表
  1. 匯入適當的類別和程式庫

    <%@ taglib uri="/crystal-tags-reportviewer.tld" prefix="crviewer" %>

    <%@ page import="com.crystaldecisions.sdk.exception.SDKException" %>

    <%@ page import="com.crystaldecisions.sdk.framework.ISessionMgr" %>

    <%@ page import="com.crystaldecisions.sdk.framework.IEnterpriseSession" %>

    <%@ page import="com.crystaldecisions.sdk.framework.CrystalEnterprise" %>

    <%@ page import="com.crystaldecisions.sdk.occa.managedreports.*" %>

    <%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoObject" %>

    <%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoObjects" %>

    <%@ page import="com.crystaldecisions.sdk.occa.infostore.IInfoStore" %>

    <%@ page import="com.crystaldecisions.sdk.occa.report.reportsource.IReportSourceFactory2" %>



  2. 登入 Crystal Enterprise 並取得 InfoStore 物件

    在這種情況下,會使用預設的系統管理員帳戶,在執行應用程式伺服器的相同電腦上登入執行的 Crystal Enterprise 安裝。

    <%

    IEnterpriseSession es = CrystalEnterprise.getSessionMgr().logon("administrator", "", "localhost", "secEnterprise");

    IInfoStore infoStore = (IInfoStore) es.getService("","InfoStore");



  3. 查詢您要檢視的報表。

    IInfoObjects infoObjects = infoStore.query("SELECT * FROM CI_INFOOBJECTS WHERE SI_NAME='World Sales Report'");

        IInfoObject report = (IInfoObject) infoObjects.get(0);



  4. 針對所擷取的報表建立頁面伺服器報表來源。

    IReportSourceFactory2 reportFactory = (IReportSourceFactory2) es.getService ("", PSReportFactory);

        Object reportSource = reportFactory.createReportSource(report, request.getLocale());



  5. 將 ReportSource 物件快取於工作階段變數。

    這樣便可以由檢視器擷取該物件。

    session.setAttribute("ReportSource", reportSource);

    %>



  6. 建立檢視器標示,以指定檢視器名稱、報表來源類型和報表來源變數。

    在這種情況下,報表來源類型是 pageServer,而報表來源變數則會參考儲存 ReportSource 物件的工作階段變數。

    <html>

    <body>

    <crviewer:viewer viewerName="CrystalViewer" reportSourceType="pageServer" reportSourceVar="ReportSource" />

    </body>

    </html>



    注意    在這種情況下不需要報表標示,因為報表來源已經快取於工作階段變數,不需要由檢視器擷取。


Business Objects
http://www.china.businessobjects.com
Support services
http://www.china.businessobjects.com