ReportClientDocument.Open() メソッドを使ったアンマネージド RAS サーバーへのバインド
注 |
---|
このページでは、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 オブジェクト モデルへのフル アクセスを提供します。
注 ReportClientDocument オブジェクト モデルを使用すると、レポート定義ファイルの作成、編集、および変更の保存をプログラミングできます。詳細については、アーキテクチャの「ReportClientDocument オブジェクト モデル(RAS)」を参照してください。
- 直接的なコーディング:ReportClientDocument オブジェクト モデルに直接アクセスできます。
短所
- 潜在的なパフォーマンスの低下:アンマネージド RAS サーバーにアップグレードすると、レポート処理のパフォーマンスが大幅に向上しますが、マネージド RAS サーバーにアップグレードした場合ほどの効果はありません。
ReportClientDocument の Open メソッドを使用してレポートをローカル ファイル ディレクトリから RAS サーバーにロードする
- アンマネージド RAS サーバーのバージョン 9 以降がインストールされ、正しく動作する。
この手順は、「プロジェクトの設定」で作成されたプロジェクトにのみ有効です。「プロジェクトの設定」では、この手順で必要な特定の名前空間の参照とコード設定が説明されており、この設定は、この手順を完了するために必須です。したがって、この手順を始める前にまず、「プロジェクトの設定」の手順を実行しておく必要があります。
RAS サーバーは Web プロジェクトでのみ機能します。
「プロジェクトの設定」で作成した ConfigureCrystalReports() メソッドでは、ローカル レポートへのパスを含む文字列の宣言を追加します。
注 これが、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";
reportPath 文字列を Object 変数に変換します。
注 ReportClientDocument の Open() メソッドは、文字列型ではなく、オブジェクト型としての文字列を必要とします。
Dim reportPathAsObject As Object = CType(reportPath, Object)
object reportPathAsObject = (object)reportPath;
ReportClientDocument を宣言およびインスタンス化します。
Dim myReportClientDocument As ReportClientDocument = New ReportClientDocumentClass()
ReportClientDocument reportClientDocument = new ReportClientDocumentClass();
レポート パス(オブジェクト変数として)および整数 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);
```
ReportClientDocument インスタンスを CrystalReportViewer コントロールにバインドします。
myCrystalReportViewer.ReportSource = myReportClientDocument
crystalReportViewer.ReportSource = reportClientDocument;
レポートを表示するには、プロジェクトをビルドおよび実行してください。