Easytrieve Plus : 連続したフィールドの定義方法は?
book
Article ID: 185877
calendar_today
Updated On:
Products
EASYPROCLIB
Easytrieve Report Generator
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
Feedback
thumb_up
Yes
thumb_down
No