Easytrieve Plus : 連続したフィールドの定義方法は?

book

Article ID: 185877

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
フィールド定義のスタート位置に「*」を指定します。
Easytrieve Plusでは入出力エリアのフィールドを定義する場合、レコードの何バイト目から始まっているかというスタート位置の情報を与えます。連続するフィールドを定義する場合に各々のフィールドに対しスタート位置を記述するかわりに「*」を記述することで定義が可能です。「*」はそれ以前に定義された最大のポジションに連続するという指定になります。


記述例
(例1) フィールド定義例-1

フィールド位置イメージ (FILEA)
BU     KA     SHAIN-NO ・・・・・・・・・・・・・・・・・・ TEATE-1 TEATE-2
1        6       11                                                                                          87            92                        ← レコード先頭からの開始位置。
 
上記フィールド位置イメージに対する、フィールド定義。
FILE     FILEA
BU          *        5       A
KA          *        5       A
SHAIN-NO      *        5       N
TEATE-1        87       5        P 0
TEATE-2         *        5       P 0

※途中を省略し、連続したフィールドの定義を行う場合には、途中のスタート位置を記述します。


(例2) フィールド定義例-2

FILE     FILEA
DATA     1     150     A
BU         1         5     A
KA          *         5     A
SHAIN-NO       *      5     N

上記のフィールド定義に対するフィールド位置イメージ (FILEA)
BU ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ KA        SHAIN-NO
D A T A (150バイト)
                                                       ↑           ↑
1                                                       151       156            ← レコード先頭からの開始位置。

注意:「*」はそれ以前に定義された最大のポジションに連続するという定義になるため、上記例ではKAはDATAに続くフィールドとして定義される事になります。もし、BUに連続するフィールドとして正しく定義するには以下のとおり記述します。

FILE     FILEA
BU         1      5      A
KA          *      5      A
SHAIN-NO     *      5      N
DATA     1   150     A

Additional Information

Old Japanese Knowledge document ID: JTEC000979