Page History
[ |../../index.htm#lansa/l4wdev05_0215.htm]
現在地:
...
「後置型(TRAILING)」のDEF_BREAKコマンドは通常、グループ分けしたレコードの合計値などを表す行を出力するために使います。
例えば「4.4.5 前置型のDEF_BREAKコマンドの使い方」で説明したRDMLプログラムを次のように修正し、「前置型の」ブレーク行を表示してみましょう。
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_BREAK NAME(#BREAK02)
...
FIELDS(#DIV #DIVEXP #DIVRNU)
TRIGGER_BY(
...
#COMP #DIV) TYPE(*TRAILING)
DEF_LINE NAME(#DETAILS)
...
FIELDS(#DEPT #EXPEND #REVNU)
DEFINE FIELD(#DIVEXP)
...
REFFLD(#EXPEND)
...
LABEL('Expend')
DEFINE FIELD(#DIVRNU)
...
REFFLD(#REVNU) LABEL('Revenue')
SELECT FIELDS(#ACCOUNT)
...
FROM_FILE(ACCOUNTS)
KEEP_TOTAL OF_FIELD(#EXPEND)
...
IN_FIELD(#DIVEXP)
...
BY_FIELD(
...
#COMP #DIV)
KEEP_TOTAL OF_FIELD(#REVNU) IN_FIELD(#DIVRNU)
...
BY_FIELD(
...
#COMP #DIV)
PRINT LINE(#DETAILS)
ENDSELECT
ENDPRINT
#COMPまたは#DIVの値が変わったときにDEF #COMPまたは#DIVの値が変わったときにDEF_BREAKコマンドが起動されることに注意してください。また、SELECTループにはKEEP_TOTALコマンドも追加されています。これは会社/部門ごとの合計値を自動的に保持するために使います。詳しくはKEEP_XXXXX系コマンドの項を参照してください。 明示した以外の属性は省略値のままで、実際にレポートを作成すると次のようになります。
明示した以外の属性は省略値のままで、実際にレポートを作成すると次のようになります。
会社 01 課 支出 収入 部門 1 ADM 400 576 MKT 678 56 SAL 123 6784 部門 1 支出 1201 収入 7416 部門 2 ADM 46 52 SAL 978 456 部門 2 支出 1024 収入 508 部門 3 ACC 456 678 SAL 123 679 部門 3 支出 579 収入 1357
会社 02 課 支出 収入 部門 1 ACC 843 400 MKT 23 0 SAL 876 10 部門 1 支出 1742 収入 410 部門 2 ACC 0 43 部門 2 支出 0 収入 43
一方、『LANSA
一方、『LANSA/AD ユーザー ガイド』に説明されている「ガイド』に説明されている「レポート設計機能」を使えば、レポート全体のレイアウトを簡単に次のように変更することができます。
会社 01 課 支出 収入 =========== 部門 1 =========== ADM 400 576 MKT 678 56 SAL 123 6784
---- --- - 1201 7416
---- ---- =========== 部門 2 =========== ADM 46 52 SAL 978 456
---- --- - 1024 508
---- ---- =========== 部門 3 =========== ACC 456 678 SAL 123 679
---- --- - 579 1357
---- ---
- 会社 02 課 支出 収入 =========== 部門 1 =========== ACC 843 400 MKT 23 0 SAL 876 10
---- --- - 1742 410
---- --- - =========== 部門 2 =========== ACC 0 43
---- ---- 0 43
---- ----
[ |../../index.htm#lansa/l4wdev05_0215.htm]