ページレポートおよびRDLレポートでは、異なるデータセットに連結されたデータ領域をネストして使用することができます。データを表示するには、ネストしたデータ領域にフィルタを使用するか、DataSetParametersプロパティにパラメータを設定します。
異なるデータセットへの連結は、ページレポートおよびRDLレポートで提供しているTablix、List、Chart、BandedList、Table、Sparklineデータ領域で行うことができます。
以下のレポートは、各在庫商品に対する取引先の担当者名と連絡先の情報を表示しています。レポートレイアウトはネストした3つのTableデータ領域から構成され、各Tableデータ領域は異なるデータセット(Products(Table1)、Invoices(Table2)、およびCustomers(Table3))に連結されています。
異なるデータセットに連結され、ネストしたデータ領域にデータを表示する方法の一つは、[Table - フィルタ]ダイアログでフィルタを設定する方法です。このフィルタはネストしたデータ領域の値を左側に、親データ領域の値を右側に含みます。
上記のサンプルレポートでは、2つのフィルタが作成されています。Invoicesデータセットに連結されたTable2データ領域に対しては、式[ProductID]=[ProductID]を使用してフィルタを作成します。Customersデータセットに連結されたTable3データ領域に対しては、式[CustomerID]=[CustomerID]を使用してフィルタを作成します。
これによって、レポートはProductsデータセットから取得した製品名と在庫数量の情報を表示し、Invoicesデータセットから取得した取引先名、Customersデータセットから取得した担当者名と連絡先の情報を製品別に表示します。
異なるデータセットに連結され、ネストしたデータ領域にデータを表示するもう一つの方法は、DataSetParametersプロパティにパラメータを設定する方法です。基本的な手順は以下のとおりです。
上記のレポートレイアウトに対して、2つのパラメータが作成されます。Invoicesデータセットに連結されたTable2データ領域に対しては、productIDパラメータを作成して、データセットクエリを「select * from Invoices where productID = @productID」のように変更します。Customersデータセットに連結されたTable3データ領域に対しては、customerIDパラメータを作成して、データセットクエリを「select * from Invoices where customerID = @customerID」のように変更します。
これによって、レポートはProductsデータセットから取得した製品名と在庫数量の情報を表示し、Invoicesデータセットから取得した取引先名の情報と、Customersデータセットから取得した担当者名と連絡先の情報を製品別に表示します。