ILE COBOL 解説書

再定義プロセス

再定義は、データ名-1 から始まり、データ名-1 のレベル番号と同じかそれより低いレベル番号が検出された時点で終了します。 データ名-1 とデータ名-2 のレベル番号の間には、それら 2 つより数字の上で低いレベル番号を持つ記入項目があってはなりません。 たとえば、次のとおりです。

05    A PICTURE X(6).
05    B REDEFINES A.
  10 B-1                      PICTURE X(2).
  10 B-2                      PICTURE 9(4).
05   C                        PICTURE 99V99.

この例では、A が再定義される項目で、B が再定義する項目です。 再定義は B から始まって、2 つの従属項目 B-1 と B-2 を含んでいます。 レベル 05 の項目 C を検出すると、再定義が終了します。

再定義される項目のデータ記述記入項目は、OCCURS 文節を含むことがで きません。 しかし、再定義される項目は、データ記述記入項目に OCCURS 文節を含んでいる項目に従属することはできます。 この場合、REDEFINES 文節内の再定義される項目への参照は、添え字付けされてはなりません。 元の項目、再定義項目、およびこれらの項目に従属するすべての項目は、OCCURS DEPENDING ON 文節を含むことができません。

REDEFINES 文節の入ったデータ記述記入項目に GLOBAL 文節を使うと、その文節のサブジェクトだけがグローバル属性をもちます。 EXTERNAL 文節は、REDEFINES 文節と同じデータ記述記入項目に指定してはなりません。 オブジェクトが GLOBAL または EXTERNAL であれば、サブジェクトは属性を継承しません。

データ名-1 (再定義する項目) はデータ名-2 (再定義される項目) より小さくてもかまいません。 データ名-1 (再定義する項目) がデータ名-2 (再定義される項目) より大きくてもかまわないのは、再定義される項目が 01 のレベル番号で指定され、外部データ・レコードであると宣言されていない場合だけです。

同じ記憶域を何回でも再定義できます。その記憶域の新しい記述を与える項目は同じセクションになくてはならず、 再定義される記憶域の直後になければならず、新しい文字位置を定義する項目を間にはさんではなりません。 複数の再定義がある場合、それらはすべてのその記憶域を定義した元の項目のデータ名を使用しなければなりません。 たとえば、次のとおりです。

05    A                       PICTURE 9999.
05    B REDEFINES A           PICTURE 9V999.
05    C REDEFINES A           PICTURE 99V99.

再定義する項目 (データ名-1 によって識別される)、および従属する項目には、VALUE 文節を含めてはなりません 再定義する記入項目に TYPEDEF 文節を含めることはできません。 再定義 する記入項目、再定義される記入項目、および各種の従属記入項目には TYPE 文節を入れてはなりません。


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]