Easytrieve Plus : PERFORMステートメントにVARYINGは指定できるか? PERFORMステートメントにUNTILは指定できるか?

book

Article ID: 185564

calendar_today

Updated On:

Products

EASYPROCLIB CA Easytrieve Report Generator CA Easytrieve Report Generator for Common Services

Issue/Introduction

Question
PERFORMステートメントにVARYINGは指定できるか?
PERFORMステートメントにUNTILは指定できるか?

Environment

z/OS, MSP, VOS3, IBM, FUJITSU, HITACHI

Resolution

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はどちらも同じ処理が実行されます。

Additional Information

Old Japanese Knowledge document ID: JTEC000999