5. LES NIVEAUX SPÉCIAUX

Parmi les niveaux spéciaux en dehors des niveaux 1 à 49 il existe encore les niveaux 66, 77, 88.

Le niveau 66

Ce niveau s’écrit en marge A comme le 01, il permet de donner un nouveau nom symbolique à une zone élémentaire ou à un groupe. (Equivalant à un COPY BLOC AFTER)

01 DEBUT.
   02 LECODE.
      03 LENUM PIC 999.
      03 LECAR PIC XXX.
   02 LEDEPOT.
      03 NOM   PIC XXXXX.
      03 DEBIT PIC 9999999.
66 COMPTES RENAMES LECODE.

La structure COMPTES regroupe les variables LENUM et LECAR, ce qui permet l’utilisation des CORRESPONDING et l’usage de LECAR of LECODE ou de LENUM in COMPTES.

Le niveau 77

Ce niveau n’est utilisable qu’en WORKING-STORAGE SECTION , et sert à définir directement une zone élémentaire indépendante d’une structure. Il doit être immédiatement après la clause WORKING-STORAGE SECTION.

77 Nom-de-donnée PIC …

77 I PIC 99 VALUE 0.

Le niveau 88

Le niveau 88 permet de définir des NOMS-CONDITIONS.

Supposons, par exemple, que nous devions représenter la situation matrimoniale des individus par 1 pour célibataire, 2 pour les mariés et 3 pour les veufs.

Dans ce cas la description de la variable MATRIMONIAL serait :

01 MATRIMONIAL PIC 9.

Dans la procédure division nous devons écrire :
IF MATRIMONIAL = 1 PERFORM CELIB
IF MATRIMONIAL = 2 PERFORM MARIES
IF MATRIMONIAL = 3 PERFORM VEUFS

Pour éviter cette écriture longue et fastidieuse nous pouvons compléter la description de la variable comme ceci :

01 MATRIMONIAL PIC 9.
   88 CELIBAT VALUE 1.
   88 MARIE VALUE 2.
   88 VEUF VALUE 3.

Et l’utiliser de la manière suivante :
IF CELIBAT PERFORM CELIB
ELSE IF MARIE PERFORM MARIES
ELSE IF VEUF PERFORM VEUFS

Ce qui aura exactement le même résultat mais sera beaucoup plus parlant.
Ce niveau peut inclure plusieurs valeurs pour un même NOM-CONDITION, par exemple :

88 Nom-condition VALUE |littèral-1 THRU littèral-2|
                       |littèral-3 THRU littéral-4|

02 AGE PIC 999.
   88 ENFANT VALUE 1 THRU 17.
   88 ADO    VALUE 18 THRU 25.
   88 ADULTE VALUE 26 THRU 65.
   88 AGES   VALUE 66 THRU 135.

L’utilisation reste inchangée, en procédure il suffit d’écrire :
IF ADO PERFORM PARAG-ADO

Une association de valeurs peut aussi être créée sous la forme suivante :
02 JOUR PIC 99.
   88 PAIR   VALUE 0 2 4 6 8 10 12.
   88 IMPAIR VALUE 1 3 5 7 9 11 13.