Archives par mot-clé : PIC

Fonctions d’édition en COBOL

Vous trouverez ci-dessous un ensemble d’exemples sur des fonctions d’édition en COBOL.

Les tableux seront disposés de la facon suivante :

  • Une partie “Expéditeur” qui va représenter la valeur et de son format de départ ;
  • Une partie “Destinataire” qui va réprésenter la valeur sous le format de l’édition souhaitée.

Exemples de suppression de zéros et d’insertion d’astérisques

ExpéditeurDestinataire
PICTUREValeurPICTURERésultats modifiés
9(003)V99123,45$***.99 $123,45
9(003)V99012,34$***.99$*12,34
9(005)V9900234,56$**.***.99$***234,56

Exemples d’insertion d’un signe négatif

ExpéditeurDestinataire
PICTUREValeurPICTURERésultats modifiés
S999– 123-999-123
S999-123999-123-
999123-999123
S999+123-999123
S99V99– 02,34ZZ.99-2.34-

Exemples d’insertion d’un signe négatif et d’un signe positif

ExpéditeurDestinataire
PICTUREValeurPICTURERésultats modifiés
S999+ 123+999+123
S999+ 123999+123+
S999– 123+999-123
S9999V99– 0387,25+Z.ZZZ.99-387,25

Exemples d’insertion CR et DB

ExpéditeurDestinataire
PICTUREValeurPICTURERésultats modifiés
S999– 123999CR123CR
S999– 123999DB123DB
S999+ 123999CR123
S999– 123999DB123

Exemples d’espaces, de zéros et de séparateurs

ExpéditeurDestinataire
IdentifiantPICTUREValeurPICTURERésultats modifiés
NOMBRE9(009)012345678999BB99BB9999012 34 5678
NOMX(010)PASMITHXBXBX(008)P A SMITH
MONTANT9(003)1539990015300
DATE9(008)0603195199/99/999906/03/1951

Modification à l’aide de chaînes flottantes et de l’option BLANK WHEN ZERO

ExpéditeurDestinataire
PICTUREValeurPICTURERésultats modifiés
S999V99 ou S9(003)V9(002)– 01234$$$$.99-$12,34-
S999 ou S9(003)+ 123—-123
S999 ou S9(003)– 005—--5
99 ou 9(002)37++++37
S99 ou S9(002)– 05+++-5
S99 ou S9(002)+ 05++++5
999 ou 9(003)000+++++
999V99 ou 9(003)V9(002)000,00$$$$.990,00 $
999V99 ou 9(003)V9(002)000,00$$$$,99 BLANK WHEN ZERO.

Exemples d’insertion de point décimal et de troncature de chiffres décimaux

ExpéditeurDestinataire
PICTUREValeurPICTURERésultats modifiés
S999V99 ou S9(003)V9(002)008,27Z(003)8
9(003)027Z(003),9927,00
9(003)018Z(003),ZZ18,00
9(003)000Z(003),ZZ(BLANC)

Revue des opérations d’édition

ExpéditeurDestinataire
PICTUREValeurPICTURERésultats modifiés
9(006)123456$ZZZ.ZZZ.99$123 456,00
9999V99 ou 9(004)V9(002)0012,34$Z.ZZZ.99$bbb12,34 (b = blanc)
9(005)V9900001,23$**.***.99$*****1,23
S9(006)– 012345+Z(006)-b12345 (b = blancs)
S9(006)+ 123456-Z(006)123456
S9999V99 ou S9(004)V9(002)+ 1234,56+Z(004)V99+1234.56
S999 ou S9(003)– 123ZZZ-123-
9(006)12345699BBBB999912bbbb3456 (b = blanc)
S99 ou S9(002)– 05$ZZ,99DB$ 5,00DB
999 ou 9(003)123999000123000
S99V99 ou S9(002)V9(002)+ 12,34$ZZ,99CR$12,34CR

4.4 PICTURE D’ÉDITION

Lorsque l’information est entreposée sur un support magnétique les caractères d’édition ne sont pas inclus.
Certaines fonctions d’édition doivent donc être accomplies quand ces données sont imprimées.
Ceci est accompli en utilisant des caractères d’édition dans la PICTURE des items qui doivent être imprimés.

Les fonctions d’édition les plus courantes sont :

  • Suppression des zéros non-significatifs
  • Impression du point décimal
  • Impression des virgules
  • Impression du signe de dollar
  • Impression d’astérisques en guise de protection
  • Impression d’un signe (+ ou -)

Le symbole Z est utilisé pour supprimer l’impression des zéros non-significatifs. Ce symbole peut apparaître plus d’une fois dans un PICTURE.
Le Z a le même effet que le 9, sauf qu’une valeur de 0 qui n’est pas significative est remplacée par un espace.

   01 E-ITEM PIC 9999.
   01 S-ITEM PIC ZZZ9.
   MOVE E-ITEM TO S-ITEM
             E-ITEM    S-ITEM
             0014      • • 14
             0564      • 564
             0000      • • • 0

Le symbole • est utilisé pour indiquer un point décimal. Un seul point peut apparaître dans un nombre.

01 E-ITEM PIC 999V99.
01 S-ITEM PIC 999.99.
MOVE E-ITEM TO S-ITEM
          E-ITEM     S-ITEM
          12345      123.45
          00825      008.25
          00005      000.05

01 E-ITEM PIC 999V99.
01 S-ITEM PIC ZZZ.99.
MOVE E-ITEM TO S-ITEM
          E-ITEM     S-ITEM
          12345      123.45
          00825      • • 8.25
          00005      • • • .05

L’impression d’une virgule est réalisée en plaçant le symbole , à l’endroit désiré dans le PICTURE. Il peut y avoir plus d’une virgule.

01 E-ITEM PIC 9(8)V99.
01 S-ITEM PIC 99,999,999.99.
MOVE E-ITEM TO S-ITEM
          E-ITEM       S-ITEM
          1289344506   12,893,445.06
          0000000835   00,000,008.35

Si le caractère d’édition Z est utilisé avec la virgule, il supprime l’impression des virgules qui sont suivies d’un zéro non-significatif.

01 E-ITEM PIC 9(8)V99.
01 S-ITEM PIC ZZ,ZZZ,ZZ9.99.
MOVE E-ITEM TO S-ITEM
          E-ITEM       S-ITEM
          1289344506   12,893,445.06
          0000000835   • • • • •8.35

Le symbole * est utilisé de la même façon que le Z, sauf que les zéros non-significatifs sont remplacés par des astérisques.

Pour que COBOL distingue entre un nombre positif et un nombre négatif, le programmeur doit indiquer la présence d’un signe en utilisant le symbole S.

01 E-ITEM PIC 9999.
01 S-ITEM PIC S999.

MOVE -37 TO ITEM1, ITEM2.
      ITEM1        ITEM2
      0037         -037

L’utilisation du S indique la présence d’un signe mais celui-ci ne sera pas automatiquement imprimé. Il faut pour cela utiliser le symbole +.

01 E-ITEM PIC S999.
01 S-ITEM PIC +999.
MOVE E-ITEM TO S-ITEM.
      E-ITEM        S-ITEM
      +123          +123
      -014          -014

Le symbole + peut être utilisé au début ou à la fin du PICTURE. Il peut être employé avec les autres caractères d’édition.

01 E-ITEM PIC S9(5)V99.
01 S-ITEM PIC ZZ,ZZZ.99+.
MOVE E-ITEM TO S-ITEM.
     E-ITEM        S-ITEM
     +3490500      34,905.00+
     -0150000      1,500.00 –

Si on désire que le signe ne soit imprimé que si le nombre est négatif, on peut utiliser le symbole – .

01 E-ITEM PIC S9(5)V99.
01 S-ITEM PIC -ZZ,ZZZ.99.
MOVE E-ITEM TO S-ITEM.
     E-ITEM        S-ITEM
     +3490500      34,905.00
     -0150000      - 1,500.00