使用 Managed RAS 伺服器檢視報表

本範例說明如何使用檢視器標示庫,以使用由 Managed 報表應用程式伺服器取得的報表來源顯示報表。

使用 Managed RAS 伺服器檢視報表
  1. 匯入適當的類別和程式庫
  2. <%@ 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" %>

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

    <%

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

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

  5. 查詢您要檢視的報表。
  6. IInfoObjects infoObjects = infoStore.query("SELECT * FROM CI_INFOOBJECTS WHERE SI_NAME='World Sales Report'");

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

  7. 針對所擷取的報表建立 RAS 報表來源。
  8. IReportSourceFactory2 reportFactory = (IReportSourceFactory2) es.getService ("", "RASReportFactory");

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

  9. 將 ReportSource 物件快取於工作階段變數。
  10. 這樣便可以由檢視器擷取該物件。

    session.setAttribute("ReportSource", reportSource);

    %>

  11. 建立檢視器標示,以指定檢視器名稱、報表來源類型和報表來源變數。
  12. 在這種情況下,報表來源類型是 reportApplicationServer,而報表來源變數則會參考儲存 ReportSource 物件的工作階段變數。

    <html>

    <body>

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

    </body>

    </html>

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



Business Objects
http://www.taiwan.businessobjects.com/
支援服務
http://www.businessobjects.com/services/support/