[
|../../index.htm#lansa/l4wdev05_0210.htm]
現在地:
ページの頭書きに会社番号を印字し、本体に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
[
|../../index.htm#lansa/l4wdev05_0210.htm]