Visual Studio の Reporting Services および ReportViewer コントロール

ReportViewer コントロールは、ASP.NET アプリケーション プロジェクトの Web ページや Visual Basic Windows アプリケーションのフォームに追加できる Visual Studio データ コントロールです。このコントロールを使用すると、レポートの処理および表示の機能を直接アプリケーションに埋め込むことができます。また、統合されたデザイン環境が提供されるため、ADO.NET データ オブジェクトのデータを使用してクライアント レポート定義 (.rdlc) を作成できます。完全な機能を備えた API により、コントロールやレポートにプログラムでアクセスできるため、レポートの機能を実行時に構成することができます。

ReportViewer コントロールは Reporting Services と同じ Microsoft レポート テクノロジに基づいていますが、Visual Studio のデータ コントロールとして配布されています。このコントロールは、Reporting Services と一緒に使用することも、豊富なレポート機能を提供する埋め込みデータ コントロールとして使用することもできます。

ReportViewer コントロールの詳細については、Visual Studio 製品マニュアルの「ReportViewer コントロール」を参照してください。

機能の要約

次の表では、ReportViewer コントロールと Reporting Services を、レポート処理、データの取得、配置、レポートのデザインなどについて比較しています。この情報を使用して、どちらの Microsoft レポート テクノロジがアプリケーションに適しているかを判断できます。

機能

ReportViewer コントロール

SQL Server Reporting Services

レポート処理

クライアント アプリケーションでレポートを処理する (ローカル モード) か、リモートの SQL ServerReporting Services レポート サーバーで実行されるサーバー レポートをホストします (リモート モード)。

インターネット インフォメーション サービス (IIS) 上で実行される中間層 Web サービスであるレポート サーバーでレポートを処理します。

レポートの出力形式

Windows アプリケーションで実行されるレポートの場合は GDI、ASP.NET Web ページで実行されるレポートの場合は HTML。

エクスポート形式には、Microsoft Excel と PDF があります。

HTML、MHTML、TIFF、PDF、Excel、CSV、および XML。

カスタムの出力形式を作成することもできます。

レポート機能

多次元データ、リレーショナル データ、およびビジュアル データの対話型レポートと静的レポート。

レポート内で実行するカスタム アセンブリを定義できます。

条件付き書式や集計のための式を使用できます。

ReportViewer コントロールで提供されるすべてのレポート機能を利用できるほか、カスタム レポート コントロールを作成してレポート内で実行できます。

データ ソースの種類とデータの取得

クライアント側の処理 :

ADO.NET データ テーブルに直接バインドして、コントロールに提供される DataTable のインスタンスを使用します。ビジネス オブジェクトに直接バインドすることもできます。データ処理はレポート処理から切り離されています。アプリケーションがレポートに行セットを提供し、その行セットをコントロールがレポートにマージして出力形式に変換します。

サーバー側の処理 :

サポートされている種類のデータ ソースのデータがレポートに含まれます。レポート サーバーでデータの処理とレンダリングが行われた後、ReportViewer コントロールにレポートが読み込まれます。

レポート サーバーとリモート データ サーバーのデータ処理とレポート処理は統合されています。

レポート サーバーのデータ処理拡張機能によって、サポートされるデータ ソースの種類が決まります。既定のデータ ソースには、SQL Server、Analysis Services、SQL ServerIntegration Services、Oracle、XML、および OLEDB があります。

カスタム データ処理拡張機能を作成すると、その他の種類のデータ ソースをサポートできます。

レポートのパラメータ化

クライアント側の処理 :

レポート パラメータの組み込みサポートにより、静的な値に基づく結果セットの条件付き書式とフィルタの機能が提供されます。

クエリ パラメータやレポート パラメータに対するユーザーからの入力を実行時に受け取るには、アプリケーションでそれをサポートするためのコードを記述する必要があります。

Reporting Services のレポートとは違って、ローカル モードで実行される ReportViewer コントロールには、データ処理に使用される値を渡すためのパラメータ入力エリアがありません。ローカル モードの ReportViewer コントロールでは、データ処理とレポート処理は統合されていません。

レポート パラメータは条件付き書式をサポートしており、クエリ パラメータにマップすることができます。これにより、レポート パラメータの値を実行時にクエリに渡すことができます。パラメータ エリアはレポート上に既定で用意されています。パラメータのプロパティをデザイン時に定義して、実行時に管理できます。

レポート デザインと Visual Studio の統合

Visual Studio でクライアント レポート定義 (.rdlc) ファイルを作成します。レポート テンプレートをプロジェクトに追加すると、レポート定義ファイルが作成され、そのファイルがプロジェクトに追加されて、統合されたレポート デザイナが Visual Studio のワークスペースに開かれます。

Visual Studio のデータ ソース ウィザードを使用して、後からレポートで使用するデータをアプリケーションで提供できます。

Visual Studio のレポート デザイナには [プレビュー] タブはありません。レポートをプレビューするには、アプリケーションを実行して、そこに埋め込まれたレポートをプレビューします。

Visual Studio のレポート デザイナは、データ ソース ウィンドウと統合されています。データ ソース ウィンドウからレポートにフィールドをドラッグすると、レポート デザイナによってデータ ソースに関するメタデータがレポート定義ファイルにコピーされます。このメタデータが ReportViewer コントロールによって使用され、データ バインド コードが自動的に生成されます。

Business Intelligence Development Studio を使用して Visual Studio でレポート定義を作成します。Business Intelligence Development Studio は、SQL Server コンポーネントに固有のプロジェクト テンプレートを追加します。レポートを作成するには、レポート サーバー プロジェクト テンプレートまたはレポート サーバー プロジェクト ウィザード テンプレートを選択します。

[データ] タブ、[レイアウト] タブ、および [プレビュー] タブを使用して、データの定義、レポート レイアウトの作成、およびレポートのプレビューを同じワークスペースで行うことができます。

配置と配布

再配布可能なコントロールと .rdlc ファイルをアプリケーションに含めることができます。レポート定義をストリームとして渡すこともできます。

ReportViewer は、作成して配置するアプリケーションのフォームや Web ページでレポートをホストします。

[ReportViewer] ツール バーには、実行時の操作をサポートするためのページ ナビゲーション、印刷、検索、および形式のエクスポートの機能が用意されています。

SQL ServerReporting Services レポート サーバーを配置します。レポート定義はレポート サーバー データベースに格納され、サーバー上で処理されて、ブラウザ ベースのアプリケーションやカスタム アプリケーションで表示されます。

レポート ツール バーには、ページ ナビゲーション、印刷、検索、および形式のエクスポートの機能が用意されています。

表示ツールと SharePoint Web パーツを使用すると、レポートを要求時に表示できます。

配布機能については、サブスクリプションに基づく電子メール アドレスへのレポートの配信やファイル共有の場所を利用できます。

インターネット アクセス

Web ページでホストされる ReportViewer コントロールは、インターネットに接続された Web アプリケーションでレポートを利用できるようにする場合に推奨される方法です。

アプリケーションでサポートされているセキュリティ インフラストラクチャを使用して、コントロールとレポートを既存の Web アプリケーションに組み込むことができます。

インターネット アクセス用に Reporting Services レポート サーバーを構成できます。アプリケーションやユーザーの要件によっては、カスタム認証拡張機能の作成、構成ファイルの変更、Secure Sockets Layer (SSL) 用のサーバーの構成などが必要になる場合もあります。詳細については、「エクストラネット/インターネット配置の計画」を参照してください。

エンタープライズ機能

このコントロールにはエンタープライズ機能はありません。ただし、エンタープライズ機能を提供する他のアプリケーションと一緒に使用できます。

ReportViewer コントロールは、Windows フォーム アプリケーションや ASP.NET Web ページに埋め込まれる定義済みのレポートの提供に理想的です。

ReportViewer コントロールでは、レポート サーバーのスケールアウト配置のレポートをホストできます (レポート サーバーの配置はコントロールに対して透過的です)。

このコントロールは、あらゆる高可用性配置モデルで実行されるカスタム アプリケーションで使用できます。

Reporting Services は、次のエンタープライズ機能をサポートします。

  • スケールアウト配置

  • スケジュールされたレポート処理と要求時のレポート処理

  • 要求時に 1 回だけ使用するために作成したりサーバーに保存したりできるアドホック レポート

  • カスタマイズされたレポート出力を動的な受信者一覧に転送するデータ ドリブン サブスクリプション

  • 管理と構成のツール

カスタマイズ

カスタマイズは API によってサポートされます。

また、レポートや [ReportViewer] ツール バーのプロパティを設定して、表示方法や利用可能な機能を指定できます。

データ処理、レポート配信、カスタム認証、およびレポート表示のサポートを追加する拡張機能を作成できます。

レポート、レポート ツール バー、およびレポート サーバーのプロパティを設定できます。

その他のカスタマイズは、多彩な API によってサポートされます。

サンプルとチュートリアル

Visual Studio 製品マニュアルまたは MSDN の「サンプルとチュートリアル」を参照してください。

Reporting Services のサンプルとチュートリアルについては、「チュートリアルの検索方法」を参照してください。

ドキュメント

Visual Studio 製品マニュアルまたは MSDN の「ReportViewer コントロール (Visual Studio)」を参照してください。

Reporting Services のドキュメントは、SQL Server オンライン ブックに含まれています。