4.4.6 後置型のDEF_BREAKコマンドの使い方

「後置型(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_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/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                     

                              ----      ----