次の方法で共有


ReportClientDocument.Open() メソッドを使ったアンマネージド RAS サーバーへのバインド

Note

このページでは、Crystal Reports for Visual Studio では使用できなかったが、アップグレード バージョンで使用可能になった機能について説明します。Crystal Reports for Visual Studio の詳細については、「Crystal Reports for Visual Studio について」を参照してください。アップグレード バージョンについての詳細情報は、「アップグレード オプション」を参照してください。

オブジェクト モデル

このレポートをバインドするシナリオでは ReportClientDocument を使用しています(「ReportClientDocument オブジェクト モデルによるレポートのバインド(RAS)」を参照)。

レポートの場所

レポートは、アンマネージド RAS サーバー(「Report Application Server(RAS)」を参照)がアクセスを許可されたファイル ディレクトリに保存されます。

説明

このレポートをバインドするシナリオは、ReportClientDocument オブジェクト モデルに直接アクセスします。ファイル ディレクトリ パスをオブジェクトとして渡すほか、整数 0(Visual Basic ではオプションのパラメータ)を ReportClientDocument の Open() メソッドに渡します。サンプル コードは以下の節を参照してください。

長所

  • 下位互換性:RAS 9 以降を使用した ReportClientDocument オブジェクト モデルで、レポートとの対話に実行可能なメソッドが用意されています。
  • パフォーマンスの最適化:Report Application Server(RAS)のレポート エンジンの優れた処理能力によって、パフォーマンスが大幅に向上します。詳細については、「Business Objects レポーティング ソリューションのアーキテクチャの比較」を参照してください。
  • 移植の容易性:ReportDocument オブジェクト モデルを使用してレポートと対話するオリジナル コードをすべて保守し、さらに ReportDocument.ReportClientDocument プロパティを通して基本となる ReportClientDocument オブジェクト モデルへのフル アクセスを提供します。
    Note

    ReportClientDocument オブジェクト モデルを使用すると、レポート定義ファイルの作成、編集、および変更の保存をプログラミングできます。詳細については、アーキテクチャの「ReportClientDocument オブジェクト モデル(RAS)」を参照してください。

  • 直接的なコーディング:ReportClientDocument オブジェクト モデルに直接アクセスできます。

短所

  • 潜在的なパフォーマンスの低下:アンマネージド RAS サーバーにアップグレードすると、レポート処理のパフォーマンスが大幅に向上しますが、マネージド RAS サーバーにアップグレードした場合ほどの効果はありません。

ReportClientDocument の Open メソッドを使用してレポートをローカル ファイル ディレクトリから RAS サーバーにロードする

  • アンマネージド RAS サーバーのバージョン 9 以降がインストールされ、正しく動作する。

この手順は、「プロジェクトの設定」で作成されたプロジェクトにのみ有効です。「プロジェクトの設定」では、この手順で必要な特定の名前空間の参照とコード設定が説明されており、この設定は、この手順を完了するために必須です。したがって、この手順を始める前にまず、「プロジェクトの設定」の手順を実行しておく必要があります。

RAS サーバーは Web プロジェクトでのみ機能します。

  1. 「プロジェクトの設定」で作成した ConfigureCrystalReports() メソッドでは、ローカル レポートへのパスを含む文字列の宣言を追加します。

    Note

    これが、RAS のレポートを保存するディレクトリへのデフォルトのパスになります。RAS サーバーは、他のレポート パスを“アクセス拒否”エラーによって却下する場合があります。

    Dim reportPath As String = "C:\Program Files\Crystal Decisions\" _ & "Report Application Server 10\Reports\" _ & "World Sales Report.rpt"
    
    string reportPath = "C:\\Program Files\\Crystal Decisions" + "\\Report Application Server 10\\Reports" + "\\World Sales Report.rpt";
    
  2. reportPath 文字列を Object 変数に変換します。

    Note

    ReportClientDocument の Open() メソッドは、文字列型ではなく、オブジェクト型としての文字列を必要とします。

    Dim reportPathAsObject As Object = CType(reportPath, Object)
    
    object reportPathAsObject = (object)reportPath;
    
  3. ReportClientDocument を宣言およびインスタンス化します。

    Dim myReportClientDocument As ReportClientDocument = New
    ReportClientDocumentClass()
    
    ReportClientDocument reportClientDocument = new
    ReportClientDocumentClass();
    
  4. レポート パス(オブジェクト変数として)および整数 0(Visual Basic ではオプション)として Options パラメータを、ReportClientDocument インスタンスの Open メソッドに渡します。

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/w5dk7atd.alert_note(ja-jp,VS.90).gif" title="Note" alt="Note" class="note" />注</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>これにより、ローカル ファイル ディレクトリのレポートが開かれ、アンマネージド Report Application Server(RAS)にロードされます。</p></td>
</tr>
</tbody>
</table>

``` vb
myReportClientDocument.Open(reportPathAsObject, 0)
```

``` csharp
reportClientDocument.Open(ref reportPathAsObject, 0);
```
  1. ReportClientDocument インスタンスを CrystalReportViewer コントロールにバインドします。

    myCrystalReportViewer.ReportSource = myReportClientDocument
    
    crystalReportViewer.ReportSource = reportClientDocument;
    
  2. レポートを表示するには、プロジェクトをビルドおよび実行してください。

関連項目