+ Répondre à la discussion
Affichage des résultats 1 à 5 sur 5
  1. #1
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2011
    Messages : 31
    Points : 3
    Points
    3

    Par défaut Texte coloré en Cobol

    Bonjour à tous,

    Voila j'éssaye de mettre un fond de couleur avec une couleur de texte en fonction du montant du solde mais cela ne marche pas

    voici le code :

    * Solution 1 :
    * Affichage couleur en direct avec le DISPLAY
    IDENTIFICATION DIVISION.
    PROGRAM-ID. VOY-CON-SCREEN1.
    ENVIRONMENT DIVISION.
    CONFIGURATION SECTION.


    DATA DIVISION.
    WORKING-STORAGE SECTION.
    *Prendre en compte le masque négatif
    77 SOLDE PIC -z(5).99.
    77 MONTANT PIC -z(5).99.

    PROCEDURE DIVISION.
    PAR.
    DISPLAY "ENCODEZ LE SOLDE - MAX 5 CHIFFRES".
    DISPLAY "---------------".
    * ACCEPT SOLDE.
    COMPUTE SOLDE = 5 + 6.
    * MOVE -123 TO SOLDE.
    * MOVE SOLDE TO MONTANT.

    IF SOLDE > 0
    THEN DISPLAY SOLDE AT LINE 10 WITH FOREGROUND-COLOR IS 2
    BACKGROUND-COLOR IS 7
    ELSE
    DISPLAY SOLDE AT LINE 10 WITH FOREGROUND-COLOR IS 4
    BACKGROUND-COLOR IS 7

    END-IF.

    STOP RUN.




    Meme lorsque le chiffre est positif il me le met en fond blanc et texte en rouge
    Je pense savoir d'où vient l'erreur (le masque de solde) mais je ne sais pas du tout comment la résoudre :s

    Si quelqu'un a une idée, cela serait très gentil

    Merci et bonne soirée à tous

  2. #2
    Expert Confirmé
    Homme Profil pro
    Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    juin 2007
    Messages
    1 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : juin 2007
    Messages : 1 889
    Points : 3 454
    Points
    3 454

    Par défaut

    Bonjour.

    - Il faudrait mettre le code en utilisant les balises CODE (bouton ).

    - Ton programme a l'air de marcher (testé sous Cobol/2), sauf que les couleurs 2 (vert) et 4 (rouge) te semblent peut être trop proches l'une de l'autre. J'ai mis d'autres couleurs qui donnent un meilleur rendu : positif 1/7 et négatif 7/4.

    - bien que ça passe avec certains compilateurs, mais il faudrait éviter d'utiliser les opérateurs de test des numériques avec les numériques édités (pic Z et compagnie).

  3. #3
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2011
    Messages : 31
    Points : 3
    Points
    3

    Par défaut

    Merci pour ta réponse mais je vois bien les couleurs.
    Effectivement si je ne mets pas le masque pic z le programme fonctionne mais j'ai besoin de les utiliser.

    J'utilise Merant sous XP

    Merci

  4. #4
    Expert Confirmé
    Homme Profil pro
    Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    juin 2007
    Messages
    1 889
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : juin 2007
    Messages : 1 889
    Points : 3 454
    Points
    3 454

    Par défaut

    Et si tu faisais :
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    77 SOLDE PIC S9(5)V99.
    77 SOLDEZ PIC -Z(5).99.
    .../...
    MOVE SOLDE TO SOLDEZ.
    IF SOLDE > 0
                   THEN DISPLAY SOLDEZ AT LINE 10 WITH FOREGROUND-COLOR IS 1
                           BACKGROUND-COLOR IS 7
               ELSE
                   DISPLAY SOLDEZ AT LINE 10 WITH FOREGROUND-COLOR IS 7
                           BACKGROUND-COLOR IS 4
    
               END-IF.

  5. #5
    Invité de passage
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2011
    Messages : 31
    Points : 3
    Points
    3

    Par défaut

    Impek !!!!! ça fonctionne

    Merci l'amis

    ++

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •