ページの頭書きに会社番号を印字し、本体にACCOUNTSファイルの内容をレポート出力するRDMLプログラムは、例えば次のようになります。
GROUP_BY NAME(#ACCOUNT)
FIELDS(#COMP #DIV #DEPT #EXPEND #REVNU)
DEF_HEAD NAME(#HEADING)
FIELDS(#COMP) TRIGGER_BY(#COMP *OVERFLOW)
DEF_LINE NAME(#DETAILS)
FIELDS(#DIV #DEPT #EXPEND #REVNU)
SELECT FIELDS(#ACCOUNT) FROM_FILE(ACCOUNTS)
PRINT LINE(#DETAILS)
ENDSELECT
ENDPRINT
これを実行すると次のようなレポートが作成されます。
会社 01 部門 課 支出 収入 1 ADM 400 576 1 MKT 678 56 1 SAL 123 6784 2 ADM 46 52 2 SAL 978 456 3 ACC 456 678 3 SAL 123 679 会社 02 部門 課 支出 収入 1 ACC 843 400 1 MKT 23 0 1 SAL 876 10 2 ACC 0 43
レポート内容を部門番号ごとにグループ分けする、「前置型(LEADING)」のDEF_BREAKコマンドを使うことにより、レポートはもっと見やすくなります。次のようになります。
GROUP_BY NAME(#ACCOUNT)
FIELDS(#COMP #DIV #DEPT #EXPEND #REVNU)
DEF_HEAD NAME(#HEADING) FIELDS(#COMP)
TRIGGER_BY(#COMP *OVERFLOW)
DEF_BREAK NAME(#BREAK01) FIELDS(#DIV)
TRIGGER_BY(#COMP #DIV) TYPE(*LEADING)
DEF_LINE NAME(#DETAILS) FIELDS(#DEPT #EXPEND #REVNU)
SELECT FIELDS(#ACCOUNT) FROM_FILE(ACCOUNTS)
PRINT LINE(#DETAILS)
ENDSELECT
ENDPRINT
DEF_BREAKコマンドは、#COMPまたは#DIVの値が変わったときに、#DIVフィールドを印字する旨を表しています。
その結果作成されるレポートは次のようになります。
会社 01 課 支出 収入 部門 1 ADM 400 576 MKT 678 56 SAL 123 6784 部門 2 ADM 46 52 SAL 978 456 部門 3 ACC 456 678 SAL 123 679 会社 02 課 支出 収入 部門 1 ACC 843 400 MKT 23 0 SAL 876 10 部門 2 ACC 0 43