レポートはレポートそのものにデータセットを関連付けることで改ページを制御しています。そのため、レポートのデータセットとは異なるデータセットを単純にレポートアイテムにデータ連結しても、期待する出力を得ることはできません。
本ページではメインのデータセットに対して関連データを持つ複数のデータセットを使用して、複数の明細を出力する方法を説明します。
サンプルでは以下のテーブルを使用します。
「納品書」テーブル
「品物明細」テーブル
「手数料明細」テーブル
「品物明細」テーブルに以下の設定で数式フィールドを作成します。
新規でレポートを作成し、以下のようにレポートデータソースを設定します。
納品書データソース
品物データソース
手数料データソース
レポートレベルのグループ化を設定します。
デザイン領域の用紙の外側領域をクリックして「レポート」を選択し、[グループ]の[式]を展開して「納品書データソース_DataSet」の「ID」を設定します。この操作により、レポートの[データセット]プロパティには自動的に「納品書データソース_DataSet」が設定されます。
次のようなレイアウトを作成し、「ID」と「納品先」をそれぞれデータ連結します。
TextBoxコントロールの[値]プロパティにそれぞれ「{ID}」、「{納品先}」を設定します。
Tebleデータ領域を次のようにレイアウトし、データセットを設定します。
配置したTableデータ領域全体を選択し、[データセット]プロパティに「品物データソース_DataSet」を設定します。
Tableデータ領域のフィルタを設定します。
Tableデータ領域の[フィルタ]プロパティをクリックし、フィルタを次の図のように設定します。左辺は「品物データソース_DataSet」データセットから「納品ID」選択して入力します。右辺は式エディタを使用して「納品書データソース_DataSet」の「ID」を設定します。
Tebleデータ領域内のTextBoxコントロールにデータ連結を設定します。
2行目の詳細領域に次の図のようにデータ連結を行い、3行目のフッターには「{Sum(小計)}」を設定して合計を出力できるようにします。
Tebleデータ領域を次のようにレイアウトし、データセットを設定します。
配置したTableデータ領域全体を選択し、[データセット]プロパティに「手数料データソース_DataSet」を設定します。
Tableデータ領域のフィルタを設定します。
Tableデータ領域の[フィルタ]プロパティをクリックし、フィルタを次の図のように設定します。左辺は「手数料データソース_DataSet」データセットから「納品ID」選択して入力します。右辺は式エディタを使用して「納品書データソース_DataSet」の「ID」を設定します。
Tebleデータ領域内のTextBoxコントロールにデータ連結を設定します。
2行目の詳細領域に次の図のようにデータ連結を行い、3行目のフッターには「{Sum(金額)}」を設定して合計を出力できるようにします。
品物明細の合計と手数料明細の合計を足した総合計をLookupSet関数を使用して出力します。
TextBoxコントロールの[値]プロパティに「{Sum(LookupSet(ID, 納品ID, 小計, "品物データソース_DataSet")) + Sum(LookupSet(ID, 納品ID, 金額, "手数料データソース_DataSet"))}」を設定します。