FILLER

Plusieurs FILLER pour aligner une ligne fixe

Imaginons que vous devez produire une ligne de rapport ou un export texte avec des colonnes fixes (largeur imposée), comme dans beaucoup de listings comptables, relevés ou exports EDI des années 80–2000 encore utilisés aujourd’hui.

Vous voulez que :

Exemple de code

IDENTIFICATION DIVISION.
PROGRAM-ID. LIGNE-FIXE-FILLER.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  LIGNE-REPORT           PIC X(60) VALUE SPACES.

01  DONNEES-CLIENT.
    05  CODE-CLIENT        PIC X(10) VALUE "CUST004567".
    05  FILLER             PIC X(4)  VALUE SPACES.           *> espace fixe entre code et nom
    05  NOM-CLIENT         PIC X(25) VALUE "DUPONT Marie-Jeanne   ".
    05  FILLER             PIC X(6)  VALUE SPACES.           *> espace fixe entre nom et montant
    05  MONTANT            PIC ZZZ,ZZZ,ZZ9.99 VALUE 12487.50.
    05  FILLER             PIC X(8)  VALUE SPACES.           *> remplissage fin de ligne

PROCEDURE DIVISION.
    MOVE DONNEES-CLIENT    TO LIGNE-REPORT

    DISPLAY "Ligne formatee (positions fixes) :"
    DISPLAY LIGNE-REPORT
    DISPLAY " "
    DISPLAY "Longueur totale              : " FUNCTION LENGTH(LIGNE-REPORT)

    STOP RUN.
        
Télécharger le code

Sortie obtenue

Ligne formatée (positions fixes) : CUST004567 DUPONT Marie-Jeanne 12 487,50 Longueur totale : 60

Explication des FILLER dans cet exemple

Pourquoi c’est utile ?

En résumé : les FILLER ne servent pas seulement à « sauter » des données reçues… ils servent aussi à **créer volontairement des zones vides** pour respecter un formatage rigide.