次の方法で共有


レポートのデータ ソースの作成

ReportViewer コントロールの処理モードによって、レポートで使用できるデータの種類が決まります。

SQL Server 2005 レポート サーバー上でレポートが処理されるリモート処理モードでは、レポート サーバーのデータ処理拡張機能によって、使用できるデータ ソースの種類が決まります。既定のデータ処理拡張機能は、SQL Server、Analysis Services、SQL Server Integration Services、Oracle、SAP NetWeaver® Business Intelligence、XML、ODBC、および OLE DB で使用できます。データ ソースへの接続とレポートのデータを取得するクエリは、Business Intelligence Development Studio (SQL Server 2005 に同梱されているレポート デザイン ツール) でレポートを作成する際のデザイン時にレポート定義で指定します。クエリで返されるフィールドは、レポートのデザイン画面にドラッグしてレポート レイアウトで使用できます。サーバー レポートのデータを操作する方法の詳細については、SQL Server オンライン ブックの「データ ソースへの接続 (Reporting Services)」を参照してださい。

アプリケーション内のコントロールによってレポートが処理されるローカル処理モードでは、Visual Studio データ ソースおよびフィールドを指定してレポートのデータを定義できます。データ ソースへの接続とレポートのデータを取得するクエリは、デザイン時にアプリケーション プロジェクトで定義します。クライアント レポートでは、ADO.NET DataTable またはビジネス オブジェクトの列挙可能なコレクションとして指定できるソースであれば、どのソースからでもデータを使用できます。データ テーブルまたはビジネス オブジェクトは、レポートで使用できるフィールドの一覧を返します。フィールドには、データベース フィールドへのポインタおよび Name プロパティが含まれています。フィールドを [データ ソース] ウィンドウからレポート レイアウトにドラッグできます。

レポートへのデータのバインド

レポート定義では、データ領域を使用してレポートにデータにバインドします。さまざまなデータ領域を選択することにより、レポートでさまざまなデータ構造をサポートできます。レポート定義で使用できるデータ領域には、テーブル、マトリックス、グラフ、一覧などがあります。レポートにデータをバインドするには、次の操作を実行する必要があります。

  • レポートで使用するデータ ソースおよびデータセットを定義します (この方法については、このトピックで示す情報およびリンクを参照してください)。[データ ソース] ウィンドウに、使用できるデータ ソースおよびフィールドが表示されます。

  • 使用するデータ領域をレポートのツールボックスからデザイン画面にドラッグします。

  • 個々のフィールドを [データ ソース] ウィンドウからデータ領域にドラッグします。

    各データ領域では、1 つのデータセット内のフィールドを使用できます。ReportViewer コントロールもレポート サーバーも、異なるデータセット間の結合は実行できません。たとえば、ビジネス オブジェクトを使用している場合、結合はビジネス オブジェクト内で実行する必要があります。データ領域の詳細については、「レポートへのデータ領域の追加 (Visual Studio レポート デザイナ)」を参照してください。

ReportViewer レポートのデータ ソースを追加する方法

クライアント レポート定義でデータ ソースを使用できるように設定するには、次の方法をお勧めします。

  • アプリケーション プロジェクトにデータ ソースを追加し、基になるデータへのデータ接続を構成します。基になるデータ ストアでは、使用する特定のデータを選択します。レポートで使用するデータは、[データ ソース] ウィンドウで使用できる必要があります。データ テーブルの場合は、データ ソースにクエリから返された列名が表示されます。ビジネス オブジェクトの列挙可能なコレクションの場合は、クラス オブジェクトによって公開される単純データ型のパブリック プロパティの一覧がデータ ソースに表示されます。

  • データ テーブルを作成するには、プロジェクトにデータセットを追加し、TableAdapter ウィザードを使用してデータ テーブルを構成します。TableAdapter ウィザードでは、クエリ結果をすぐに確認できるようにクエリ ビルダとデータ プレビュー機能が提供されています。

  • ビジネス オブジェクトを作成するには、[プロジェクト] メニューの [新しい項目の追加] コマンドを使用し、クラス オブジェクトを選択します。デザイン時に使用する単純データ型のパブリック プロパティを公開する実装を指定します。実行時に使用するプロパティの列挙可能なコレクションを返す方法を指定します。

データ ソースを構成すると、バインド可能なデータが [データ ソース] ウィンドウの階層に表示されます。レポートにデータをバインドするには、展開されている階層のノードをレポート レイアウトのテキスト ボックスまたはデータ領域にドラッグします。レポートを定義した後でデータセットを変更する場合は、レポートおよびコントロールのデータ バインドを更新する必要があります。詳細については、「データ ソース参照の更新および再バインド (Visual Studio レポート デザイナ)」を参照してください。

プロジェクトには、データ ソースをいくつでも含めることができます。レポートで実際に使用されるデータ ソースの一覧を表示するには、[レポート] メニューの [データ ソース] をクリックします。アプリケーションでレポートとそのデータをプレビューするには、アプリケーションをビルドまたは配置して、目的のデータが含まれているレポートを確認する必要があります。コントロールの構成およびレポート レイアウトの定義の詳細については、「ローカル処理のための ReportViewer の構成」および「クライアント レポート定義 (.rdlc) ファイルの作成」を参照してください。

すぐに作業を開始するには、次のチュートリアルを使用して、各種類のデータ ソースをプロジェクトに追加する方法を学習します。

ビジネス オブジェクトの使用

ビジネス オブジェクトは、単純データ型のパブリック プロパティを公開するアプリケーション オブジェクトです。ビジネス オブジェクトの例としては、基になるデータ ストアからの Customer オブジェクトのコレクション、アプリケーションによって作成される Book Title オブジェクトの配列、または RSS XML ソースから作成する Channel オブジェクトの一覧があります。

データ ソースとしてアクセスできるようにするには、コレクションで IEnumerable がサポートされている必要があります。バインド可能なデータは [データ ソース] ウィンドウの階層ビューに表示されます。ビジネス オブジェクトの場合は、クラス オブジェクトによって公開されている単純データ型のパブリック プロパティの一覧がデータ ソースに表示されます。それらをレポート定義のデータ領域およびテキスト ボックスにバインドできます。

ビジネス オブジェクトのコレクションを指定するには、プロジェクトにクラスを追加するか、クラスのアセンブリへの参照を追加します。

データ テーブルの使用

DataTable は、ADO.NET DataSet の一部であり、[プロジェクト] メニューから [新しい項目の追加] をクリックすることによってプロジェクトに簡単に追加できます。データ接続を構成するには、TableAdapter 構成ウィザードを起動します。[データ] メニューの [追加] をクリックし、[TableAdapter] をクリックします。また、クエリを定義して結果セットを制限することもできます。ウィザードを終了すると、DataTable の列は [データ ソース] ウィンドウを使用してアクセスできるようになるので、クライアント レポート定義のデータ領域およびテキスト ボックスにそれらの列をバインドできます。

ReportViewer Web サーバー コントロールのデータ ソースの定義

データ ソース コントロールでは、データ アクセス層の抽出がサポートされているので、Web ページ上のコントロールはデータ ソースにバインドされ、このデータ ソースは実際のデータにバインドされます。これにより、データの 1 つずつにすべてのコントロールを再バインドしなくても、データ ソースを効率的に変更できます。

Web ページをデザインする場合、ツールボックスの [データ] セクションに、SqlDataSourceXmlDataSource のようないくつかのデータ ソース コントロールが一覧表示されます。データ ソース コントロールには、Web ページのページ メモリをサポートするものと、共有データを使用するものがあります。レポートではページ メモリが使用されないので、ReportViewer Web サーバー コントロールには、ObjectDataSource コントロールの使用をお勧めします。このコントロールは、インメモリ キャッシュ オブジェクト (DataTable またはビジネス オブジェクト コレクション) とレポート データ領域をつなぐ役割を果たします。ReportViewer コントロールを Web ページに追加すると、ObjectDataSource コントロールは自動的に追加および構成されます。

余分なコードを記述する必要性を最低限に抑えるために、Web ページの ASP.NET サポートでは、バインド可能なビジネス オブジェクトを提供するコレクションを検出するための処理がバックグラウンドで実行されます。ビジネス オブジェクトとして識別できるオブジェクトのコレクションを返すプロジェクトにクラスを追加すると、コレクションは Web サイト データ ソース ウィンドウに自動的に追加されます。

参照

リファレンス

Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing

概念

リモート処理用の ReportViewer の構成
データ ソース参照の更新および再バインド (Visual Studio レポート デザイナ)

その他のリソース

TableAdapter の概要
サンプルとチュートリアル