Easytrieve Plus : 初期化処理の方法(ワーク・フィールド)
book
Article ID: 185870
calendar_today
Updated On:
Products
EASYPROCLIB
Easytrieve Report Generator
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
Feedback
thumb_up
Yes
thumb_down
No