Easytrieve Plus : 初期化する命令はあるか?(ワーク・フィールド) 初期化処理の方法は?(ワーク・フィールド) 配列ワーク・フィールドの初期化は? RESETパラメータの使い方は? VALUEパラメータの使い方は?

book

Article ID: 185870

calendar_today

Updated On:

Products

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

Issue/Introduction

Question
初期化する命令はあるか?(ワーク・フィールド)
初期化処理の方法は?(ワーク・フィールド)
配列ワーク・フィールドの初期化は?
RESETパラメータの使い方は?
VALUEパラメータの使い方は?

Environment

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

Resolution

Answer
ワーク・フィールドとして定義された項目は、特に指定のないかぎり処理の開始時に1回だけフィールドの属性に合わせて初期化されます。処理の開始後、フィールドの初期化をしたい場合には処理の中でイクエート・ステートメント (「=」による移送)またはMOVEステートメントにより行います。
Easytrieve Plusは、数値フィールドを属性に合わせてゼロに、英字フィールドをスペースに初期化します。他の値で初期化したい場合は VALUE パラメータを使用します。
RESETパラメータを指定すると、JOBステートメントまたはSORTステートメントが実行されるたび(レコードの入力が行われるたび)に初期化されます。
複数JOBの場合、2番目以降のJOBでは自動的な初期化は行われませんので、その前のJOBでセットされた内容がそのまま有効となります。

[VALUEオプションの指定]
[DEFINE]   フィールド名    スタート位置    フィールド長    属性    VALUE 初期値

[RESETオプションの指定]
[DEFINE] フィールド名     スタート位置    フィールド長    属性    RESET

注意: RESETオプションは、バージョン6.0 以降に有効なパラメータです。これ以前のバージョンの場合、または別のタイミングで初期化したい場合には、ロジック処理で対応します。


記述例
(例1) ワーク・フィールドを「0」または「スペース」で初期化する

FLD-A     W      3      A
FLD-B     S       3      P

上記、FLD-AはAタイプなのでスペースで、FLD-BはPタイプの0で処理開始時にそれぞれ初期化されます。


(例2) VALUEパラメータの指定により任意の初期値を設定する

FLD-A     W     3     A     VALUE  'ABC'
FLD-B     S      3     P    VALUE   1

上記、FLD-Aは「ABC」、FLD-BはPタイプの1で処理開始時にそれぞれ初期化されます。


(例3) RESETパラメータの指定でレコード入力のたびに初期化する

FLD-A     W     3     A     RESET

上記、FLD-Aはレコード入力のたびにスペースで初期化されます。


(例4) VALUEパラメータとRESETパラメータとを併用し、レコード入力のたびに任意の初期値で初期化する

FLD-A     W     3     P     VALUE   1    RESET

上記、FLD-Aはレコード入力のたびにPタイプの1で初期化されます。

注意:RESETパラメータはWタイプのワーク・フィールドに対してのみ指定できます。RESETパラメータは配列定義を行うOCCURSパラメータと同時に使用できますが配列の再定義フィールドには使用できません。
          Easytrieve Plusの初期処理のクリアでは、 配列フィールドはOCCURSパラメータを指定した最上位のレベルの属性でクリアされます。再定義した場合、数値フィールドもスペースになっています。そのため、あらためてクリアする必要があります。

Additional Information

Old Japanese Knowledge document ID: JTEC000982