Page Server の使用によるレポートの表示

この例では、Page Server によって生成されたレポート ソースを使用してレポートを表示するための、ビューア タグ ライブラリの使用方法を示します。

Page Server を使用してレポートを表示する
  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. この場合、デフォルトの Administrator アカウントを使用して、アプリケーション サーバー マシンと同じマシンで実行している 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. 取得したレポートの Page Server レポート ソースを作成します。
  8. IReportSourceFactory2 reportFactory = (IReportSourceFactory2) es.getService (メメ, メPSReportFactoryモ);

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

  9. ReportSource オブジェクトをセッション変数にキャッシュします。
  10. これで、ビューアでそのオブジェクトが取得されます。

    session.setAttribute("ReportSource", reportSource);

    %>

  11. ビューア タグを作成し、ビューア名、レポート ソースの種類、およびレポート ソース変数を指定します。
  12. この場合、レポート ソースの種類は pageServer であり、レポート ソース変数は ReportSource オブジェクトを格納したセッション変数を参照しています。

    <html>

    <body>

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

    </body>

    </html>

    注    この場合、レポート ソースがセッション変数にキャッシュされており、ビューアで取得する必要がないため、レポート タグは必要ありません。



Business Objects
http://japan.businessobjects.com/
サポート サービス
http://japan.businessobjects.com/services/