ページの頭書きに会社番号を印字し、本体に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