ActiveReports for .NET 18.0J
データ領域のネストとデータセット結合
ActiveReportsユーザーガイド > 概念 > ページレポート/RDLレポートの概念 > データソースとデータセット > データ領域のネストとデータセット結合

ページレポートおよびRDLレポートでは、異なるデータセットに連結されたデータ領域をネストして使用することができます。データを表示するには、ネストしたデータ領域にフィルタを使用するか、DataSetParametersプロパティにパラメータを設定します。

異なるデータセットへの連結は、ページレポートおよびRDLレポートで提供しているTablixListChartBandedListTableSparklineデータ領域で行うことができます。

以下のレポートは、各在庫商品に対する取引先の担当者名と連絡先の情報を表示しています。レポートレイアウトはネストした3つのTableデータ領域から構成され、各Tableデータ領域は異なるデータセット(Products(Table1)、Invoices(Table2)、およびCustomers(Table3))に連結されています。


フィルタの使用

異なるデータセットに連結され、ネストしたデータ領域にデータを表示する方法の一つは、[Table - フィルタ]ダイアログでフィルタを設定する方法です。このフィルタはネストしたデータ領域の値を左側に、親データ領域の値を右側に含みます。

上記のサンプルレポートでは、2つのフィルタが作成されています。Invoicesデータセットに連結されたTable2データ領域に対しては、式[ProductID]=[ProductID]を使用してフィルタを作成します。Customersデータセットに連結されたTable3データ領域に対しては、式[CustomerID]=[CustomerID]を使用してフィルタを作成します。

これによって、レポートはProductsデータセットから取得した製品名と在庫数量の情報を表示し、Invoicesデータセットから取得した取引先名、Customersデータセットから取得した担当者名と連絡先の情報を製品別に表示します。

パラメータの使用

異なるデータセットに連結され、ネストしたデータ領域にデータを表示するもう一つの方法は、DataSetParametersプロパティにパラメータを設定する方法です。基本的な手順は以下のとおりです。

  1. データ領域のDataSetParametersプロパティに、パラメータを追加します(例 productID)。
  2. データ領域のデータセットにパラメータを追加します(例 productID)。
  3. データ領域のデータセットで、パラメータを含む部分文字列を既存のデータセットクエリに追加します(例 WHERE productID = @productID)。

上記のレポートレイアウトに対して、2つのパラメータが作成されます。Invoicesデータセットに連結されたTable2データ領域に対しては、productIDパラメータを作成して、データセットクエリを「select * from Invoices where productID = @productID」のように変更します。Customersデータセットに連結されたTable3データ領域に対しては、customerIDパラメータを作成して、データセットクエリを「select * from Invoices where customerID = @customerID」のように変更します。

これによって、レポートはProductsデータセットから取得した製品名と在庫数量の情報を表示し、Invoicesデータセットから取得した取引先名の情報と、Customersデータセットから取得した担当者名と連絡先の情報を製品別に表示します。

関連トピック