最初のページに戻ります。

総合の目次があるページに戻ります。

よく使うマニュアルです

Wiki

updated on 2004.06.23

7.5.DOUEQ3合計

[ Previous ] [ HOME ] [ Upper ] [ Next ]


DOUEQで大中小の3つの合計を取るパターンです。第一サイクルを識別するフラグを使用(*IN80)しています。明細があるときのみ、合計を出力するように、*IN81で判定しています。だらだらと長い部分はサブルーチンに入れるとすっきりします。

     C******************************************************
     C*     DEFINITION  MODULE  ( PLIST   FIELD   KLIST )  *
     C******************************************************
     C*                                                    :
     C*  DEFINE FILED                                      :
     C*                                                    :
     C*                                                    :
     C           *LIKE     DEFN A1FLD1    W1OLD1           :小
     C           *LIKE     DEFN A1FLD2    W1OLD2           :中
     C           *LIKE     DEFN A1FLD3    W1OLD3           :大
     C******************************************************
     C*             M A I N -  R O U T I N E                
     C******************************************************
     C                     EXSR @HED                       :
     C*                                                    :
B001 C           *IN90     DOUEQ*ON                        :
 001 C                     READ AFILE                    90:
B002 C           *IN90     IFEQ *OFF                       :
 002 C*                                                    :
B003 C           *IN80     IFEQ *OFF                       :
 003 C                     MOVE *ON       *IN80            ;第一サイクル
 003 C                     MOVE A1FLD1    W1OLD1           :
 003 C                     MOVE A1FLD2    W1OLD2           :
 003 C                     MOVE A1FLD3    W1OLD3           :
E003 C                     END                             :
 002 C*
B003 C           A1FLD1    IFNE W1OLD1                     :小KEY BREAK
+003 C           A1FLD2    ORNE W1OLD2                     :中KEY BREAK
+003 C           A1FLD3    ORNE W1OLD3                     :大KEY BREAK
 005 C                     EXSR @TOL1                      :小計
 005 C                     EXSR @CLR1                      :小計消去
 003 C                     MOVE A1FLD1    W1OLD1           :
E003 C                     END                             :
 002 C*
B003 C           A1FLD2    IFNE W1OLD2                     :中KEY BREAK
+003 C           A1FLD3    ORNE W1OLD3                     :大KEY BREAK
 003 C                     EXSR @TOL2                      :中計
 003 C                     EXSR @CLR2                      :中計消去
 003 C                     MOVE A1FLD2    W1OLD2           :
E003 C                     END                             :
 002 C*
B003 C           A1FLD3    IFNE W1OLD3                     :大KEY BREAK
 003 C                     EXSR @TOL3                      :大計
 003 C                     EXSR @CLR3                      :大計消去
 003 C                     MOVE A1FLD3    W1OLD3           :
E003 C                     END                             :
 002 C*                                                    :
 002 C                     MOVE *ON       *IN81            ;明細有
 002 C*                                                    :
 002 C                     EXSR @SUM1                      :小計
 002 C                     EXSR @SUM2                      :中計
 002 C                     EXSR @SUM3                      :大計
 002 C*                                                    :
 002 C                     EXSR @DTL                       :明細
 002 C*                                                    :
E002 C                     END                             :
E001 C                     END                             :
     C*                                                    :
B001 C           *IN81     IFEQ *ON                        ;明細有
 001 C                     EXSR @TOL1                      :小計
 001 C                     EXSR @TOL2                      :中計
 001 C                     EXSR @TOL3                      :大計
E001 C                     END                             :
     C*                                                    :
     C                     EXSR @END                       :終了
     C*                                                    :
     C                     MOVE *ON       *INLR            :
     C                     RETRN                           :               
 

[ Previous ] [ HOME ] [ Upper ] [ Next ]

You are at K's tips-n-kicks of AS/400

 

SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送