Answer
PERFORMステ-トメントに処理条件はつけられません。ロジックで対応します。
Easytrieve PlusのPERFORM処理は、指定されたプロシジャーを1回だけ実行する指定ですので繰り返し処理や、終了条件を指定することはできません。 DO WHILEステートメントと組み合わせて対処します。
記述例
(例) 条件を満足している間、同じプロシジャーを繰り返し実行する(UNTILの代替処理)
パターンA.
FILE FILEA
FLDA 1 4 A
FLDB 5 2 N
FLDC 7 5 P 0 OCCURS 5
~
JOB
IF FLDB ZERO
FLDB = 1
END-IF
DO WHILE CNT < FLDB
CNT = CNT + 1
PERFORM SYORI1
END-DO
*
SYORI1. PROC
WK-TBL(CNT) = FLDC(FLDB)
~
END-PROC
パターンB.
~
PERFORM SYORI1
*
SYORI1. PROC
DO WHILE CNT < FLDB
CNT = CNT + 1
WK-TBL(CNT) = FLDC(FLDB)
~
END-DO
END-PROC
※パターンA、Bはどちらも同じ処理が実行されます。