[Tips14]サブレポート
レポートの中に別レイアウトのレポート(サブレポート)を挿入します。
見積書と発注書といった2枚で1組の帳票の場合、ある1つの見積番号(見積書と発注書共通の番号)を指定して出力すれば見積書(Page1)と発注書(Page2)が1組で出力されますが、見積番号を指定せずに全てのデータを出力(例えば10件)すると、10件の見積書が先に出力され、その後10件の発注書が出力されます。
(Page1:見積書とPage2:発注書の場合の出力順)
見積書と発注書を常に交互(1組)に出力したい場合、「サブレポート」オブジェクトを使用します。
サブレポートは、レポートの中にサブのレポートを配置して1つのレポートとして出力するオブジェクトです。
子バンドを追加して、サブレポートオブジェクトを配置します。(「Subreport」タブが追加されます)
サブレポートを作成する際、メインページのデータソースと別にサブのデータソースを複製して接続させます。
FastReportがデータを読み込むとき、見積書(メインページ)のデータと発注書(サブレポート)のバンド間でデータ参照の干渉が発生し、正しく読み込まれない可能性があるからです。
データソースを分けた上で、データバンドのフィルタでメインページのデータソースの見積番号とサブレポートデータソースの見積番号を紐づけると、見積書と発注書が1:1の1組の書式として出力できるようになります。
見積書と発注書が正しく改ページされて出力されるための設定を続けます。
まず、メインページの先頭(グループヘッダー)を右クリックして、「新しいページを開始」にチェックを入れます。(グループヘッダーのプロパティ「StartNewPage」がTrueになります)
さらに子バンドで同様に StartNewPage:True とします。サブレポート側では特に設定は不要です。
これにより、見積書の先頭と発注書の最後でそれぞれ改ページされて、個別の見積書/発注書が1枚ずつ、1組ずつで出力されます。
(出力結果)


