以前、このコーナーでお答えした、複数レコードの読み込みに関して、訪問者の方からご教授いただき、以下のことが分かりました。ここに、訂正するとともに、深くお詫びいたします。
DSPFのソース(レコード様式を3つ)
A CA03(03)
A R FMT01
A OVERLAY
A 4 33'FMT01'
A 4 41'KEY: '
A FLD001 10 0B 4 52
A R FMT02
A OVERLAY
A 9 24'FMT02'
A 9 31'KEY: '
A FLD002 10 0B 9 42
A R FMT03
A OVERLAY
A 16 35'FMT03'
A 16 41'KEY: '
A FLD003 10 0B 16 52
|
RPGのソース
H 1 Y/ 1
F******************************************************
F* D E F I N E F I L E S *
F******************************************************
FTESTD CF E WORKSTN
C******************************************************
C* M A I N - R O U T I N E
C******************************************************
B001 C *IN03 DOUEQ*ON :
001 C WRITEFMT01 :
001 C WRITEFMT02 :
001 C EXFMTFMT03 :
001 C READ FMT01 90:
001 C READ FMT02 91:
B002 C *IN03 IFEQ *OFF :
002 C ADD 100 FLD001 :
002 C ADD 200 FLD002 :
002 C ADD 300 FLD003 :
E002 C END :
E001 C END :
C* :
C MOVE *ON *INLR :
C RETRN : |
実行画面
各のフィールドに、1000,2000,3000と入力して、実行キーを押した。↓
確かに、三つのレコードを読み込んで、各フィールドに加算をしていますね。訪問者からの、情報によれば、WRITE命令の後では、いったんは、READ命令で入力待ちで止まるのですが、EXFMTまたはREADの後では、止まらないようです。貴重な情報ありがとうございます。なお、これは、DDSのキーワードにより、入力待ちで止まってしまう場合もあるようですが、このキーワードを調べる時間はありませんでした。取りあえず、ご報告まで。
以上 |