リモート処理用の ReportViewer の構成
ReportViewer コントロールは、SQL Server Reporting Services レポート サーバーの処理機能を使用するように構成できます。レポート サーバーは、データを処理して、レポートを出力形式で生成します。次に ReportViewer コントロールが、生成された出力を画面に表示します。
サーバー レポートを作成するには、SQL Server 2008 以降の Reporting Services レポート サーバーにアクセスする必要があります。ブラウザー ウィンドウを開き、URL アドレスにレポート サーバーの URL とレポート パスを入力することによって、レポートへのアクセス権があるかどうかを確認できます。レポート サーバーへの接続を構成する場合は、使用するアカウントにレポートを表示する権限が与えられていることを確認してください。
リモート処理用の ReportViewer を構成する方法
リモート処理用に ReportViewer コントロールを構成するには、サーバー レポートをコントロールで使用するように指定します。サーバー レポートを選択するには、次の手順を実行します。
ツールボックスの [レポート] セクションの ReportViewer コントロールを、プロジェクトのフォームまたは Web ページに追加します。
[ReportViewer タスク] スマート タグ パネルの [レポートの選択] で [サーバー レポート] を選択します。
[レポート サーバー] ボックスに、レポート サーバーの URL を入力します。既定の URL 構文は https://localhost/reportserver です。インストールで使用される実際の URL は、レポート サーバーの仮想ディレクトリの設定がどのように構成されているかによって異なる場合があります。
[レポート パス] ボックスに、パブリッシュされたレポートの完全修飾パスを入力します。ネイティブ モードでレポート サーバーのレポートを参照する場合、レポートのパスはスラッシュ (/) で始まります。SharePoint 統合モードのレポート サーバーのレポートを参照する場合、レポートのパスは完全修飾 URL です。次に例を示します。
ネイティブ モード: /Adventureworks 2008 Sample Reports/Company Sales 2008
SharePoint 統合モード: http://MyServer/sites/MySite/MyLibrary/Adventureworks 2008 Sample Reports/Company Sales 2008.rdl
アプリケーションでレポートが正しく表示されるかどうかを確認するために、アプリケーションをビルドまたは配置します。
サーバー レポートの特性について
次の表では、リモートで処理されるサーバー レポートの特性について説明します。
レポート処理 |
サーバー レポートは、SQL Server 2008 以降の Reporting Services レポート サーバー上で実行されます。サーバー レポートは、Business Intelligence Development Studio またはレポート ビルダーで作成されるレポート定義 (.rdl) ファイルです。 |
データ処理 |
サーバー レポートは、結果セットに接続して処理するためにレポート サーバーのデータ処理拡張機能を使用します。既定のデータ処理拡張機能は、SQL Server、Analysis Services、SQL Server Integration Services、Oracle、SAP NetWeaver® Business Intelligence、XML、ODBC、および OLE DB データ ソース用に提供されています。カスタム データ処理拡張機能を作成または使用して、その他の種類のデータもサポートすることができます。 クライアント レポートとは異なり、サーバー レポートでは、レポート定義にデータ ソースの接続情報と 1 つ以上のクエリが含まれます。リモート処理モードでは、データ処理とレポート処理の両方がレポート サーバーで行われます。 |
パラメーター化 |
サーバー レポートを処理する場合、ReportViewer コントロールは、レポートの上部にパラメーターのプロンプト領域を表示できます。これにより、基になるデータ ソースに対してクエリを実行するときに使用するパラメーター値をユーザーが入力または選択できるようになります。ローカル レポートを処理する場合、ReportViewer はデータ取得操作を行わないので、パラメーターのプロンプト領域を表示しません。したがって、ユーザーに対して手動で入力を要求し、ユーザー入力に基づいてアプリケーション内で直接データ処理を行う必要があります。ローカル レポートの詳細については、「ローカル処理のための ReportViewer の構成」を参照してください。 |
外部サーバーへの接続 |
サーバー レポートによって使用されるデータ ソースは、通常、別のサーバーの外部データ ソースからデータを取得します。アプリケーションでサーバー レポートを実行する場合は、レポート サーバーがレポートの外部データ ソースに接続してデータを取得する方法を理解する必要があります。たとえば、レポートで Windows 統合セキュリティを使用する場合は、ネットワークの Kerberos 認証を有効化するなどして、NTLM の "ダブル ホップ" の問題を回避するようにアプリケーションまたはネットワークを設定する必要があります。詳細については、「Authentication Types in Reporting Services」および「Kerberos のダブル ホップについて」を参照してください。 ReportViewer コントロールでは、要求された資格情報のページを提供しません。アプリケーションがフォームベースの認証を使用するレポート サーバーに接続する場合、アプリケーションではログオン ページを提供する必要があります。 |
レポートの管理 |
サーバー レポートは、レポート サーバー上で管理されます。レポート サーバー管理者は、レポートへのアクセス権を提供するロール割り当ての変更、データ ソース接続の再構成、レポートの更新、移動、名前の変更、または削除を行うことができます。これらのどの変更も、アプリケーションでのレポートの実行に影響を与える可能性があり、レポートを実行できなくなる場合もあります。アプリケーションでサーバー レポートを使用する場合は、アプリケーションを配置した後、どのように管理するかを把握しておく必要があります。 |
SQL Server Reporting Services のレポートのデザイン、データの取得、配置、およびセキュリティ設定の詳細については、msdn.microsoft.com の「SQL Server オンライン ブック」を参照してください。
どのような場合にリモート処理を使用するか
サーバーベースのレポートを使用すると、レポートの記憶域および管理を集中化し、レポートやフォルダーにポリシーおよびセキュリティで保護されたアクセスを設定し、レポートを処理および配信する方法を制御し、さらにレポートをビジネスに使用する方法を標準化することができます。Reporting Services は、単一サーバー、分散、およびクラスター構成にインストールできます。レポートに次の特性がある場合は、リモート処理の使用を検討してください。
多くのユーザーがアクセスする。
非常に複雑なクエリまたは大量のデータがレポートに含まれる。
レポートがレポート サーバーに既にパブリッシュされ、作成および配置するアプリケーションにレポートを含める必要がある。
リモート処理を行うには、SQL Server の正規版にアクセスする必要があります。正規版では、サブスクリプション、キャッシュ、セキュリティ、より多くの表示形式など、豊富な機能をアプリケーションで使用できます。SQL Server Reporting Services のリモート処理機能の詳細については、SQL Server オンライン ブックの「Reporting Services and ReportViewer Controls in Visual Studio」を参照してください。