ご使用のブラウザはJavaScriptをサポートしていません。このヘルプ・ページを正しく表示するにはJavaScriptが必要です。 再定義
ヘッダーをスキップ
前へ
前へ
 
次へ
次へ

再定義

COBOLでは、フィールドやグループを再定義できます。再定義は、新しいロケーションにデータを定義するのではなく、定義済のデータ文字に定義を追加します。

フィールドの再定義

01  EMPLOYEE-RECORD. 
   05 EMP-ID PIC 9(6). 
   05 EMP-ID-R REDEFINES EMP-ID. 
      10 EMP-ID-GROUP PIC 99. 
      10 EMP-ID-NUM PIC 9999. 
   05 EMP-REGION PIC 9. 
   05 EMP-DEPT PIC 999.

前述の例では、EMP-IDフィールドが6桁の数値フィールドとして定義されています。再定義により、フィールドが2つのフィールドに分割されます。EMP-ID-GROUPは、EMP-IDフィールドの最初の2桁として定義されます。EMP-ID-NUMはEMP-IDフィールドの下4桁として定義されています。EMP-ID-NUMとEMP-ID-GROUPが両方ともレコード内の先頭位置から始まっていることに注意してください。

グループの再定義

01 EMPLOYEE-RECORD.
05 EMP-ID PIC 9(6).
05 EMP-ID-R REDEFINES EMP-ID.
10 EMP-ID-GROUP PIC 99.
10 EMP-ID-NUM PIC 9999.
05 EMP-REGION PIC 9.
05 EMP-DEPT PIC 999.
05 EMP-HIRE-DATE.
10 EMP-HIRE-DATE-MM PIC 99.
10 EMP-HIRE-DATE-DD PIC 99.
10 EMP-HIRE-DATE-YYYY PIC 9999.
05 EMP-SALARY PIC 9(9).
05 EMP-NAME PIC X(15).
05 EMP-SKILLS OCCURS 4 TIMES.
10 EMP-SKILL-LEVEL PIC 99.
10 EMP-SKILL-ID PIC 9(4).
05 EMP-SKILLS-R REDEFINES EMP-SKILLS.
10 EMP-SKILL-LEVEL1 PIC 99.
10 EMP-SKILL-ID1 PIC 9(4).
10 EMP-SKILL-LEVEL2 PIC 99.
10 EMP-SKILL-ID2 PIC 9(4).
10 EMP-SKILL-LEVEL3 PIC 99.
10 EMP-SKILL-ID3 PIC 9(4).

前述の例では、EMP-SKILL配列の再定義により各要素が拡張されて、各要素にフィールドが与えられています。前の例と同様に、EMP-SKILLS-Rの定義によって、EMP-SKILLSと同じデータ領域が定義されています。レコードにおいて、EMP-SKILL-LEVELの最初の発生はEMP-SKILL-LEVEL1と同じ位置になります。