サブレポートやドリルスルー レポートを使用すると、関連するレポートをリンクできます。
サブレポートは、親レポートの本文内に埋め込まれるコントロールです。概念的に、サブレポートは、他の Web ページ コンテンツにコンテナを提供する Web ページ内のフレームに似ています。サブレポートは、そのサブレポートを含んでいる親レポート内に表示されます。どちらのレポートも同時に処理されて表示されます。
ドリススルー レポートは、レポート アイテムでドリルスルー アクションを設定すると開きます。通常このアクションによって、親レポートと同じ領域に、関連するレポートまたはパラメータが異なる同一のレポートが開きます。ドリルスルー レポートは通常、データを介して親レポートに関連付けられています。一般的なドリルスルー レポートの例は、月次売上レポートです。このレポートには、その月の個々の販売注文へのリンクがあります。ドリルスルー リンクをクリックすると、親レポートが、サポートする詳細を提供する別のレポートに置換されます。
ドリルスルー レポートとサブレポートはどちらも、親レポートと子レポートの概念をサポートしています。レポートを関連付けるには、リレーションシップを設定するデータを渡すために使用できるレポート パラメータを作成する必要があります。実行時にレポートをリンクするには、その接続をサポートするコードを記述する必要があります。関連するレポートを配置するときは、ファイル システムの同じフォルダにクライアント レポート定義 (.rdlc) ファイルが一緒に保存されるようにしてください。
次のイベントには、ReportViewer コントロールでのサブレポートおよびドリルスルー アクションの実装方法を示すサンプル コードが含まれています。
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
レポートにドリルダウンの対話機能を含める方法については、「レポート アイテムを非表示にする方法と、レポート アイテムの表示切り替えを定義する方法 (Visual Studio レポート デザイナ)」を参照してください。
サブレポートの追加
サブレポートとその親レポートは、共有パラメータによって関連付けることができます。まず、各レポートにパラメータを追加します。そのパラメータは、親レポートにサブレポートを追加する前に構成する必要があります。サブレポートを追加するときは、サブレポートにパラメータを渡すように親レポートを設定します。
サブレポートを追加するには、次の操作を行います。
グラフィック デザイン モードでクライアント レポート定義ファイル (.rdlc) を開きます。
ツールボックスの [サブレポート] をクリックします。
デザイン画面で、サブレポートを任意のサイズにドラッグします。または、デザイン画面をクリックして、固定サイズのサブレポートを作成します。
[!メモ]
プロジェクトにサブレポートがある場合、ソリューション エクスプローラからデザイン画面にレポートをドラッグして、サブレポートを作成できます。
サブレポートを右クリックし、[プロパティ] をクリックします。
[サブレポート] で、サブレポート領域に表示するレポートを選択します。
[パラメータ] タブで、次の操作を行います。
[パラメータ名] に、サブレポートのパラメータ名を入力します。この名前は、ReportName プロパティで名付けたレポートのレポート パラメータと一致する必要があります。
[パラメータ値] に、サブレポートに渡す値を入力します。この値には、静的テキストか、親レポートのフィールドまたは他のオブジェクトをポイントする式を使用できます。
手順 2. を繰り返して、サブレポートに渡す別のパラメータを追加します。
[!メモ]
サブレポートに必要なすべてのパラメータを [パラメータ] 一覧に含める必要があります。必要なパラメータがない場合、サブレポートは親レポート内に正しく表示されません。
サブレポートにデータを提供するには、アプリケーションで LocalReport オブジェクトの SubreportProcessing イベントを処理する必要があります。SubreportProcessing イベント ハンドラ メソッドに渡される引数の 1 つは、SubreportProcessingEventArgs です。イベント ハンドラでは、アプリケーションによって、SubreportProcessingEventArgs の Parameters プロパティを使用してサブレポートに渡されるパラメータの値が確認されます。次に、SubreportProcessingEventArgs の DataSources プロパティを使用してサブレポートにデータを提供する必要があります。
ドリルスルー レポートの構成
ドリルスルー レポートを構成するには、サポートするデータが含まれているセカンダリ レポートへのナビゲーションを親レポートから提供する、ドリルスルー アクションを定義します。
通常、ドリルスルー レポートには、親レポートから渡されるパラメータが含まれています。売上要約レポートの例では、ドリルスルー レポートには注文を値として受け取るパラメータが含まれています。要約レポートには、各注文番号に対応するドリルスルー レポート リンクが含まれていて、リンクがクリックされると対応する詳細レポートが開かれ、この詳細レポートに注文 ID が渡されます。
レポート サーバーに格納されるレポートはすべて、ドリルスルー レポートとして使用できます。ドリルスルー リンクは、テキスト ボックスおよび画像にのみ追加できます。
ドリルスルー レポート リンクを追加するには、次の操作を行います。
グラフィック デザイン モードでクライアント レポート定義ファイル (.rdlc) を開きます。
リンクを追加するテキスト ボックスまたは画像を右クリックし、[プロパティ] をクリックします。
[ナビゲーション] タブで、[レポートに移動] をクリックします。
レポート名を入力または選択します。レポートは、同じプロジェクトの一部である .rdlc ファイルにする必要があります。
ドリルスルー レポートに渡すパラメータを設定するには、[パラメータ] をクリックして、次の操作を行います。
[パラメータ名] に、ドリルスルー レポート内のレポート パラメータの名前を入力します。
[!メモ]
パラメータの一覧にある名前は、対象となるレポートで予測されるパラメータと正確に一致する必要があります。これらの名前が一致しない場合、または予測されるパラメータが一覧にない場合は、ドリルスルー レポートは失敗します。
[パラメータ値] には、ドリルスルー レポートのパラメータに渡す値を入力または選択します。
[!メモ]
レポート パラメータに渡す値には、結果が値になる式を指定できます。値の一覧にある式には、現在のレポートのフィールドの一覧が含まれています。
ドリルスルー レポートにデータを提供するには、アプリケーションで ReportViewer オブジェクトの Drillthrough イベントを処理する必要があります。Drillthrough イベント ハンドラ メソッドに渡される引数の 1 つは、DrillthroughEventArgs です。DrillThroughEventArgs には、ドリルスルー レポートを表す Report プロパティがあります。イベント ハンドラでは、ホスト アプリケーションによって、ドリルスルー レポートで GetParameters() メソッドを呼び出して、ドリルスルー レポートに渡されるパラメータの値が確認されます。次に、ドリルスルー レポートの DataSources プロパティを使用してドリルスルー レポートにデータを提供する必要があります。
参照
概念
レポートでのレポート パラメータの定義 (Visual Studio レポート デザイナ)
レポートへの対話機能、表示設定、およびナビゲーションの追加 (Visual Studio レポート デザイナ)