Easytrieve Plus : 再定義した配列ワーク・フィールドの初期化は?

book

Article ID: 185864

calendar_today

Updated On:

Products

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

Issue/Introduction

Question
再定義した配列ワーク・フィールドの初期化は?

Environment

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

Resolution

Answer
配列フィールドはOCCURSパラメータを指定した最上位のレベルの属性で初期化されます。再定義した場合、数値属性で定義したフィールドもスペース・データで初期化されています。
再定義した配列フィールドをフィールドの各属性に合わせて初期化するには、JOBのSTARTプロシージャとDO WHILEを使って処理します。また、RESETパラメータは再定義フィールドに対し指定することはできません。この場合には、JOBステートメントの直後に初期化の処理を行います。

記述例
(例1) 再定義した配列ワーク・フィールドを初期化する

W-DATA        W                    15     A     OCCURS    100
W-NAME      W-DATA            6     A
W-SURYO    W-DATA +6       4     N 0
W-TANKA     W-DATA +10   5     N 0
I                    W                       2     P
*
JOB   START   INIT-PROC

*
INIT-PROC.   PROC
  I  =  1
  DO WHILE   I  <=   100
      W-NAME(I)      =   ' '
      W-SURYO(I)   =   0
      W-TANKA(I)    =   0
      I   =   I   +   1
  END-DO
END-PROC


(例2) RESETパラメータに代わる処理を行う
W-DATA          W                    15      A     OCCURS  100
W-NAME        W-DATA            6      A
W-SURYO      W-DATA +6       4      N 0
W-TANKA       W-DATA +10   5      N 0
I                      W                       2      P
*
JOB
I   =   1
DO WHILE   I   <=   100
    W-NAME(I)   =   '******'
    W-SURYO(I)   =   9999
    W-TANKA(I)   =   99999
    I = I + 1
END-DO

Additional Information

Old Japanese Knowledge document ID: JTEC000983