推奨されるシナリオの概要
お使いのアプリケーションに最適な、レポートをバインドするシナリオの選択をサポートするため、ここでは推奨シナリオの長所と短所をまとめ、広く使用されているシナリオについてその理由を説明します。
注 |
---|
ほとんどの Web サイトや Windows プロジェクトでは、チュートリアルで手順が説明されている“埋め込みレポートにバインドする”と“埋め込みでないレポートにバインドする”という、最も単純な 2 つのシナリオを使用することができます。したがって、この節を読む前に、「チュートリアル」. のチュートリアルを実行してください。 |
Crystal Reports で推奨されるバインドのシナリオ
通常は、CrystalReportViewer オブジェクト モデルを使用するシナリオよりも、レポートを ReportDocumentオブジェクト モデルにバインドするシナリオをお勧めします(「ReportDocument オブジェクト モデルによるレポートのバインド」および「CrystalReportViewer オブジェクト モデルによるレポートのバインド」を参照してください)。これは、プログラムによるレポートとの対話において ReportDocument オブジェクト モデルの方がより豊富な機能の API を提供するためです。オブジェクト モデルの詳細については、「適切なオブジェクト モデルの選択」を参照してください。
ほとんどの場合、Crystal Reports for Visual Studio では「埋め込みレポート クラスへのバインド」のシナリオが使われます。このシナリオは、パフォーマンスの最適化という点では最善の選択とは言えませんが、最も単純なメソッドを使用します。そのメソッドとは、レポートをプロジェクトに追加してレポート ラッパー クラスを作成し、そのレポート ラッパー クラスをインスタンス化して CrystalReportViewer コントロールに渡すというものです。レポート ラッパー クラスは ReportDocument 基本クラスを継承するため、ユーザーは ReportDocument オブジェクト モデルのすべての機能に対するアクセス権限を持ちます。
Crystal Reports for Visual Studio でのレポートのバインドに広く使用されているもう 1 つの方法は、「ReportDocument クラスにロードされる埋め込みでないレポートへのバインド」で説明されています。このシナリオは、ReportDocument オブジェクト モデルの全機能へのアクセス権をユーザーに付与する点は同じですが、埋め込みでないレポートのメリットも提供するため、ユーザーはアプリケーションの再コンパイルをすることなくレポートを変更できます。
レポートのバインドに ASP.NET Cache オブジェクトを使用するシナリオもあります(「 キャッシュされた埋め込みレポート クラスへのバインド 」および「キャッシュ管理ユーティリティ クラスにロードされる埋め込みでない Report クラスへのバインド」を参照してください)。
Report Application Server(RAS)で推奨されるバインドのシナリオ
アンマネージド Report Application Server(「Report Application Server(RAS)」を参照)のライセンスを Crystal Reports for Visual Studio アプリケーションに追加している場合、次の機能が追加されます。
- RAS レポート エンジンによる高いスケーラビリティ
- 広範なレポート修正機能を提供する ReportClientDocument オブジェクト モデルへのアクセス
RAS の場合、目的のプロジェクトの設定に応じて、次の 3 つのシナリオを使用してレポートをバインドできます。
- RAS 10 で Crystal Reports 10を使用する場合は、1 つのレポートにつき 2 行のコードを追加するだけで、もともと埋め込みレポートを使用して Crystal Reports で作成されたプロジェクトを RAS と ReportClientDocument オブジェクト モデルにポートできます。詳細については、「ReportDocument.Load() メソッドを使ったアンマネージド RAS へのバインド」を参照してください。
- 上記のシナリオを最適化するには、RAS サーバーで埋め込みレポートのコピーを作成し、そのコピーの使用を RAS に指示します。詳細については、「ReportDocument.FileName プロパティを使ったアンマネージド RAS サーバーへのバインド」を参照してください。
- RAS 10 で新しいプロジェクトを作成し、RAS 9 でもこれを操作するには、作成したレポートを ReportClientDocument オブジェクト モデルに直接ロードします。詳細については、「ReportClientDocument.Open() メソッドを使ったアンマネージド RAS サーバーへのバインド」を参照してください。
Crystal Reports Server または BusinessObjects Enterprise で推奨されるバインドのシナリオ
Crystal Reports Server または BusinessObjects Enterprise にアップグレードしている場合、レポートのバインドには次の 4 つのシナリオがあります。どのシナリオを選択するかについては、レポートの修正とスケーラビリティに対するユーザーの必要条件に基づいて決定します。
- プログラムによる修正なしに、最高の速さとパフォーマンスでレポートを表示できます。詳細については、「ReportSource へのバインド(Crystal Reports Server または BusinessObjects Enterprise 11)」を参照してください。
- ReportClientDocument オブジェクト モデルにアクセスすることにより、表示プロセスの一部として、プログラムによってレポートを修正できます。詳細については、「ReportAppFactory.OpenDocument() メソッドを使ったマネージド RAS サーバーへのバインド」を参照してください。
- Crystal Reports Server または BusinessObjects Enterprise で Crystal Reports Developer エディションを使用する場合は、もともと埋め込みレポートを使用して Crystal Reports で作成されたプロジェクトをCrystal Reports Server または BusinessObjects Enterprise にポートすると同時に、その埋め込みレポートのコピーを Crystal Reports Server または BusinessObjects Enterprise に公開することにより既存のレポート コードを維持できます。レポートのコピーの参照については、「ReportDocument.FileName プロパティを使ったマネージド RAS サーバーへのバインド」を参照してください。
- Enterprise フレームワークの InfoObject インスタンスとしてレポートにアクセスすることにより、レポートのスケジュールとそのパラメータを変更することができます。詳細については、「レポートにキャストする InfoObject へのバインド」を参照してください。
このセクションの内容を学習した後、SDK で使用できるすべてのオプションについての理解を深めるために、全シナリオの詳細な一覧が必要になることも予想されます。詳細については、「すべてのシナリオの詳細な一覧」を参照してください。