Hiérarchisation des données

Niveaux 01, 03, 05… et indentation des lignes COBOL

La hiérarchie des niveaux COBOL organise les variables comme un arbre : le niveau 01 définit un groupe racine, les niveaux 03, 05, 07 décrivent ses sous-éléments, avec une indentation stricte.

Niveaux 01 / 03 / 05 / 07 Colonnes 8 et 12
Regarde comment les niveaux s’imbriquent et se décalent sur la ligne.
Visualisation de l’arborescence EMPLOYE-RECORD
----+----1----+----2----+----3----+----4----+----5----+
01
EMPLOYE-RECORD. col. 8
03
EMPLOYE-NOM. col. 12
05
EMPLOYE-TITRE PIC X(3). détail
05
EMPLOYE-INITIALES PIC X(4). détail
05
EMPLOYE-SURNOM PIC X(30). détail
05
EMPLOYE-SEXE PIC X. même niveau 03
05
EMPLOYE-ADRESSE. groupe
07
EMPLOYE-LIGNE-ADRESSE PIC X(30) OCCURS 4. sous-groupe
05
EMPLOYE-CODE-POSTAL PIC X(8). détail
05
EMPLOYE-SALAIRE PIC 9(5)V99. numérique

Hiérarchie des niveaux COBOL

Étape 1 – Niveaux hiérarchiques

Le niveau 01 définit un groupe principal : ici, EMPLOYE-RECORD est l’enregistrement complet d’un employé.

Les niveaux 03, 05, 07 décrivent les sous-parties de cet enregistrement (nom, adresse, salaire…).

Étape 2 – Indentation et colonnes

Traditionnellement, le niveau 01 commence à la colonne 8, les sous-niveaux (03, 05, 07…) à partir de la colonne 12, ce qui rend la structure visuelle très claire.

Le décalage visuel permet de repérer facilement les groupes et sous-groupes dans un listing COBOL.

Étape 3 – Groupes et éléments

Un niveau qui possède des sous-niveaux (comme EMPLOYE-NOM ou EMPLOYE-ADRESSE) est un groupe, les niveaux les plus profonds sans enfants sont des éléments élémentaires.

Modifier une valeur de groupe impacte toutes ses zones enfant, ce qui est très utile pour initialiser ou déplacer des données.

Exemple – Déclaration EMPLOYE-RECORD
* Hiérarchie des niveaux pour un enregistrement employé * 01 en haut de l'arbre, 03 / 05 / 07 pour les sous-parties 01 EMPLOYE-RECORD. 03 EMPLOYE-NOM. 05 EMPLOYE-TITRE PIC X(3). 05 EMPLOYE-INITIALES PIC X(4). 05 EMPLOYE-SURNOM PIC X(30). 05 EMPLOYE-SEXE PIC X. 05 EMPLOYE-ADRESSE. 07 EMPLOYE-LIGNE-ADRESSE PIC X(30) OCCURS 4. 05 EMPLOYE-CODE-POSTAL PIC X(8). 05 EMPLOYE-SALAIRE PIC 9(5)V99.
Exemple – Utiliser le groupe en bloc
* Initialiser tout l'enregistrement employé d'un coup PROCEDURE DIVISION. MOVE SPACES TO EMPLOYE-RECORD. * Toutes les zones EMPLOYE-* * passent à SPACES en une seule instruction.
Exemple – Accéder à un élément précis
* Afficher un champ élémentaire dans l'arbre DISPLAY "Nom : " EMPLOYE-SURNOM. DISPLAY "Adresse ligne 1 : " EMPLOYE-LIGNE-ADRESSE (1). DISPLAY "Salaire : " EMPLOYE-SALAIRE. * La hiérarchie rend le lien "groupe > détail" * facile à comprendre visuellement.