前へ |
次へ |
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と同じ位置になります。