外部記述 DS サブフィールドの名前変更と初期化

RPG III の場合には、外部記述データ構造のフィールドの名前変更と初期化 の両方とも行う時には、図 1 のフィールド CHAR に示さ れているように、2 つのソース行を使用しなければなりません。図 2 に示されているように、変換後のソースにも 2 つの ソース行が入っています。フィールドの 2 つのソース行をこれに使用すると、 フィールド CHAR が 2 回定義されているので、コンパイル時エラーが起こりま す。このコーディングを訂正するためには、図 3 に示されてい るように、フィールド CHAR のキーワードを組み合わせて単一行にしなければ なりません。ここでは、キー・フィールド INZ と EXTFLD が組み合わされたの で、フィールド CHAR が 1 つだけ示されています。

図 1. 名前変更され初期化された外部サブフィールドを 持つ RPG III ソース
     IDSONE     E DSEXTREC
     I              CHARACTER                       CHAR
     I I            'XYZ'                           CHAR
     C           CHAR      DSPLY
     C                     SETON                     LR
図 2. 名前変更されたサブフィールドに 2 つの定義を 持つ RPG IV ソース
     D DSONE         E DS                  EXTNAME(EXTREC)
     D  CHAR         E                     EXTFLD(CHARACTER)
     D  CHAR         E                     INZ('XYZ')
     C     CHAR          DSPLY
     C                   SETON                                        LR
図 3. 単一の定義を持つ訂正済みの RPG IV ソース
     D DSONE         E DS                  EXTNAME(EXTREC)
     D  CHAR         E                     EXTFLD(CHARACTER) INZ('XYZ')
     C     CHAR          DSPLY
     C                   SETON                                        LR