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

Document created by Masaaki_Iyama Employee on Jun 16, 2015
Version 1Show Document
  • View in full screen mode

文書番号: JTEC000982

製品名: CA-Easytrieve Plus

バージョン: ALL

OS: z/OS, MSP, VOS3

 

Question

初期化する命令はあるか?(ワーク・フィールド)

初期化処理の方法は?(ワーク・フィールド)

配列ワーク・フィールドの初期化は?

RESETパラメータの使い方は?

VALUEパラメータの使い方は? 

 

Answer

ワーク・フィールドとして定義された項目は、特に指定のないかぎり処理の開始時に1回だけフィールドの属性に合わせて初期化されます。処理の開始後、フィールドの初期化をしたい場合には処理の中でイクエート・ステートメント (「=」による移送)またはMOVEステートメントにより行います。

EASYPLUSは、数値フィールドを属性に合わせてゼロに、英字フィールドをスペースに初期化します。他の値で初期化したい場合は 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パラメータと同時に使用できますが配列の再定義フィールドには使用できません。

EASYPLUSの初期処理のクリアでは、 配列フィールドはOCCURSパラメータを指定した最上位のレベルの属性でクリアされます。再定義した場合、数値フィールドもスペースになっています。そのため、あらためてクリアする必要があります。

 

Attachments

    Outcomes