レポート ソースの作成方法

JSP ページでエクスポート コントロールやビューアを使用するには、まずレポート ソースを取得する必要があります。

レポート ソースは、エクスポート コントロールとビューアによって使用されるレポートの単一インスタンスを表すオブジェクトです。Java Reporting Component、Page Server および RAS を使用してレポート ソースを取得できます。

Java Reporting Component を使用してレポート ソースを作成するために重要なのは、表示またはエクスポートするレポートの場所です。レポートの場所は相対パスまたは絶対パスで指定されます。また、Java Reporting Component がレポートのデータを正しく取得するためには、レポートのデータ ソースが JNDI を通じて正しく指定されているか、レポートが JDBC データ ソースに対して設計されている必要があります。

Java Reporting Component によってレポート ソースを取得する方法は、2 つあります。1 つ(推奨)は、ReportClientDocument クラスを使用してレポート ソースを取得する方法です。もう 1 つは、IReportSourceFactory2 クラスを使用する方法です。

ReportClientDocument を使用してレポート ソース オブジェクトを作成する
  1. ReportClientDocument クラスがインポートされていることを確認します。
  2. import com.crystaldecisions.reports.sdk.ReportClientDocument;

  3. ReportClientDocument クラスのインスタンスを作成します。
  4. ReportClientDocument reportClientDoc = new ReportClientDocument();

  5. ReportClientDocument オブジェクトの open メソッドを呼び出して、目的のレポートのパスおよび現在のロケール設定を渡します。
  6. String report = "/reports/sample.rpt";
    reportClientDoc.open(report, 0);
    Object reportSource = reportClientDoc.getReportSource();

    注    上記のコードで示されるレポートの場所は、相対パスと絶対パスのどちらを使用するかによって異なります。 相対パスを使用する場合、上記のレポートの場所は、<web_app_dir>/WEB-INF/lib/reports/sample.rpt になります。絶対パスを使用する場合、上記のレポートの場所は、最初は <web_app_dir>/WEB-INF/classes/reports/sample.rpt で、次に /reports/sample.rpt になります。

  7. レポート ソースを取得したら、Java Reporting Component を使用してレポート ソースをセッション変数にキャッシュする必要があります。
  8. session.setAttribute("reportSource", reportSource);

注    この例で使用したレポートは、チュートリアルには含まれていません。

IReportSourceFactory2 を使用してレポート ソースを作成する
  1. JPEReportSourceFactory クラスと IReportSourceFactory2 インターフェイスがインポート済みであることを確認します。
  2. <%@ page import="com.crystaldecisions.reports.reportengineinterface.JPEReportSourceFactory" %>

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

  3. 新しい JPEReportSourceFactory オブジェクトを作成します。
  4. IReportSourceFactory2 rptSrcFactory = new JPEReportSourceFactory();

  5. IReportSourceFactory2 オブジェクトの createReportSource メソッドを呼び出して、目的のレポートのパスおよび現在のロケール設定を渡します。
  6. String report = "/reports/sample.rpt";

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

    注    上記のコードで示されるレポートの場所は、相対パスと絶対パスのどちらを使用するかによって異なります。相対パスを使用する場合、上記のレポートの場所は、<web_app_dir>/WEB-INF/lib/reports/sample.rpt になります。絶対パスを使用する場合、上記のレポートの場所は最初は <web_app_dir>/WEB-INF/classes/reports/sample.rpt で、次に /reports/sample.rpt になります。

  7. レポート ソースを取得したら、Java Reporting Component を使用してレポート ソースをセッション変数にキャッシュする必要があります。
  8. session.setAttribute("reportSource", reportSource);

注    この例で使用したレポートは、チュートリアルには含まれていません。



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