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

Document created by Masaaki_Iyama Employee on Jun 18, 2015
Version 1Show Document
  • View in full screen mode

文書番号: JTEC000983

製品名: CA-Easytrieve Plus

バージョン: ALL

OS: z/OS, MSP, VOS3

 

Question

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

 

Answer

配列フィールドはOCCURSパラメータを指定した最上位のレベルの属性で初期化されます。再定義 した場合、数値属性で定義したフィールドもスペース・データで初期化されています。

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

 

記述例

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

    W-DATA         W                      15   A       OCCURS100

    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-IF

 

                                          

(例2) RESETパラメータに代わる処理を行う

    W-DATA          W                   15   A        OCCURS100

    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

Attachments

    Outcomes