導入
これまでの例では、変数の宣言がすべて 01 から始まっていました。この 01 は何なのでしょうか。実はCOBOLのデータ宣言には、レベル番号という「階層」の概念があります。
説明
レベル番号は、データの親子関係(階層)を数字で表す仕組みです。
01 WS-PERSON.
05 WS-NAME PIC X(10).
05 WS-AGE PIC 9(3).
01… 最も大きな階層(レコード全体)を表す、最上位のレベル番号。05…01の中の、より細かい要素(子項目)を表す番号。
数字が大きいほど、階層が深い(より細かい)ことを表します。数字自体の大小には意味がありますが、飛び番でも構いません(01 の次を 10、20 のように10刻みで書くのが実務での定番の慣習です。将来項目を追加するときに間に 03 や 04 を差し込めるようにするためです)。
主なレベル番号のルールです。
| レベル番号 | 意味 |
|---|---|
01 | レコード全体(最上位)。必ず8列目(Area A)から書く |
02〜49 | 01配下の子項目。数字が大きいほど階層が深い |
77 | 他の項目と無関係な、単独の変数(あまり使われない) |
88 | 条件名(レッスン18で詳しく扱う特殊なレベル) |
01 WS-PERSON. のように、末尾にピリオドが付いて中身を持たない(PIC 句がない)項目を 集団項目(group item) と呼びます。逆に 05 WS-NAME PIC X(10). のように PIC 句を持つ末端の項目を 基本項目(elementary item) と呼びます。この「集団項目と基本項目」の関係が、次のレッスンのテーマです。
試すには
01 の下に 05 を3つ並べたとき、それぞれが独立した変数のように見えて、実は 01 という1つの大きなまとまりの一部である——という感覚を持って、次のレッスンに進んでください。