Share via


レポート ビューア コントロールの使用方法

レポート ビューア コントロールは、Windows アプリケーションや Web アプリケーションにフォームを追加し、そのフォームでレポートを表示するための .NET コントロールです。

Crystal Reports SDK を使用してアプリケーションのビルドを計画するにあたり最も重要な検討事項の 1 つに、レポート ビューア コントロールの使用方法があります。これらのコントロールに影響を与える SDK の基本を理解することにより、目的の Crystal Reports for Visual Studio プロジェクトに最も適した構造を選択できます。

.NET コントロールとは

Microsoft .NET コントロールは、Visual Studio のツールボックスに表示される特別なタイプのクラスです。これらのコントロールは、GUI オブジェクトとして Web フォームや Windows フォームに追加され、標準の基本コントロール クラスを継承します。標準的な .NET コントロールには、Button、DropDownList、CheckBox、TextBox、および DataGrid があります。

Microsoft .NETの コントロールは、“プレゼンテーション層とビジネス ロジック層の分離”というベスト プラクティスに準拠しています。これらのコントロールは Web フォームや Windows フォーム上で、表示情報をコントロール自体の中にカプセル化します。分離コード クラスでは、.NET コントロールがクラス レベル インスタンスとしてインスタンス化されます。このインスタンス変数を使用して、コントロールのプロパティ、メソッド、およびイベントにアクセスします。

Microsoft .NET コントロールは、Windows フォームと Web フォームの両方で同じように機能します。.NET フレームワークは、Windows アプリケーションでの場合と同様に、各 Web ページをコントロールが含まれるフォームとして表示します。

Crystal Reports がレポートの表示に .NET コントロールを使用する理由

レポート作成ツールの長所の 1 つは、レポート構造やデザイン、表示における複雑な処理を、単純な GUI ツールの中にカプセル化することです。同様に、.NET コントロールは複雑な表示およびデータ入力を、Web フォームや Windows のフォームの単純な GUI オブジェクトにカプセル化します。

.NET コントロールを使用することにより、レポートの作成やその表示に関する複雑な処理を 1 つにまとめることができます。これまで Crystal Reports のスタンドアロン アプリケーションだけでカプセル化されていたすべての複雑なレポート情報は、レポート ビューアとして .NET コントロールの中にカプセル化されるようになりました。

レポート ビューア コントロールの数

Crystal Reports for Visual Studio には、Web アプリケーション用と Windows アプリケーション用の 2 つのバージョンの CrystalReportViewer コントロールが付属しています。CrystalDecisions.Web 名前空間にある CrystalReportViewer コントロールは、ASP.NET Web プロジェクトによって使用されます。CrystalDecisions.Windows.Forms 名前空間にある CrystalReportViewer コントロールは、Windows プロジェクトによって使用されます。

Note

Crystal Reports for Visual Studio では、付属の CrystalReportViewer コントロールにいくつもの重要な強化が行われています。詳細については、「CrystalReportViewer コントロール」を参照してください。

Web ページにレポート パーツのみを表示する場合は、CrystalReportPartsViewer コントロールを使用します。レポート パーツ コントロールを使用する方法については、「チュートリアル:CrystalReportPartsViewer コントロールを使ったレポート パーツの表示」を参照してください。

CrystalReportViewer コントロールを使用してレポートを表示する

CrystalReportViewer コントロールは、1 度に 1 つのレポートだけを表示します。コントロールが表示するレポートは、ユーザーがコードにバインドするレポートによって決まります。表示するレポートをコントロールに指示するには、コントロールの ReportSource プロパティをそのレポートにバインドします。実行時に、コントロールは ReportSource プロパティにバインドされたレポートをロードし、これを表示します。

最も単純なフォームでは、割り当ては次のようになります。

crystalReportViewer1.ReportSource = "C:\WorldSalesReport.rpt"
crystalReportViewer1.ReportSource = "C:\\WorldSalesReport.rpt";

この場合、レポートはファイル ディレクトリのパスからコントロールに直接バインドされています。

これは、レポートを CrystalReportViewer コントロールにバインドするための最も基本的な方法です。レポートをバインドするシナリオの詳細一覧については、「レポートをバインドする適切なシナリオの選択」を参照してください。

CrystalReportViewer コントロールをデータ オブジェクトにバインドするのか。

いいえ。CrystalReportViewer コントロールは、データ オブジェクトではなくレポート オブジェクトにバインドします。

これは、CrystalReportViewer コントロールの目的が他の .NET コントロールとは異なるためです。他の .NET コントロールは、データにバインドして生データをページ上で書式設定します。埋め込み Crystal Reports Designer では、データの取得と表示をカプセル化した定義によって、レポートを作成する度にこの処理が自動的に行われます。そのため、CrystalReportViewer コントロールはレポート オブジェクトの表示のみを行います。

次の表は、.NET データ コントロールにバインドする場合と CrystalReportViewer コントロールにバインドする場合の比較です。

コントロールのタイプ
バインド先
次の層への接続
.NET データ コントロール(DataGrid コントロールなど)
データ オブジェクト(DataSet、DataReader、DataView、IDictionary、ICollection、DataTable)
なし
.NET レポート ビューア コントロール(CrystalReportViewer コントロールなど)
Crystal レポート ファイルをカプセル化するレポート オブジェクト
Crystal レポート ファイルは、組み込みデータ接続を備えています。これは、ODBC や OleDb などの各種データ ソースや、DataReader オブジェクトや DataSet オブジェクトなどに接続します。

CrystalReportViewer コントロールがデータ オブジェクトではなくレポート オブジェクトにバインドすることをわかりやすく示すために、このレポート ビューア コントロールのソース プロパティは DataSource ではなく ReportSource と名付けられています。

レポートの自動バインド

CrystalReportViewer コントロールのバインドに関するもう 1 つの特徴は、大部分の .NET コントロールとは異なり、バインドのためのメソッドを手動で呼び出す必要がないという点です。このコントロールは、自動的にレポート ビューアをレポート オブジェクトにバインドします。レポートのバインドについての詳細は、「レポートをバインドする適切なシナリオの選択」を参照してください。

この節の内容