Bonjour,
Je uis très débutant en cobol et j'ia besoin d'aide.
J'ai un programme cobol qui sert a sortir un fichier Excel avec des données proviennent de différents tables de base de données.
Le but qui je doit alimenter une colonne avec un valeur d'une rubrique vient d'une table cette rubrique est sous la format Numérique condensé de longueur 11 dont 2 décimale(s) en gros elle est présenter sous cette format :
"MONTAN NOT NULL NUMBER(11,2)"
Dans mon programme cobol j'ai crée une première variable comme suit :
05 H-ZYSR-MONTAN PIC S9(11)V9(2) PACKED-DECIMAL.
Une deuxième variable pour remplir la colonne comme suit :
* Taux 22
05 W-Z22 PIC -ZZZZZZZZZZZ,99.
05 FILLER PIC X(001) VALUE ';'.
Le but que je doit faire un move de ma rubrique MONTAN dans la variable H-ZYSR-MONTAN puis move de H-ZYSR-MONTAN dans W-Z22 voilà le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 ALIM-WZ22 SECTION. MOVE Z-ZYSR-NOMBRE TO IZYSR. MOVE ZERO TO H-ZYSR-MONTAN. IF Z-ZYSR-NOMBRE > ZERO PERFORM VARYING IZYSR FROM Z-ZYSR-NOMBRE BY -1 UNTIL IZYSR = ZERO IF Z-ZYSR-CODRUB(IZYSR) = 'THF' MOVE Z-ZYSR-MONTAN(IZYSR) TO H-ZYSR-MONTAN MOVE ZERO TO IZYSR END-IF END-PERFORM MOVE H-ZYSR-MONTAN TO W-Z22 END-IF.
Ma question comment je peux affiché les bons valeurs de la rubrique MONTAN car ma décalaration est fausse apparement ca me donne pas les bonnes valeurs
Par exemple :
J'ai un montant = 1234,55 la valeur de sortie Z22 = 0.12 alors que je voulais que ca soit 1234,55 le meme que montan sans avoir la signe plus mais la signe négatif doit s'afficher.
Besoin d'aide.
Déja j'ai essayé de cette façon :
05 H-ZYSR-MONTAN PIC +++++9.99
* Taux
05 W-Z22 PIC -ZZZZ9.99 VALUE ZEROS.
05 FILLER PIC X(001) VALUE ';'.
Resultat :
Z22
0.45
- 88.57
0.00
0.00
0.00
0.00
0.00
0.00
0.00
0.00
10.57
0.00
10.65
10.57
Partager