IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Cobol Discussion :

Numérique signé dans numérique


Sujet :

Cobol

  1. #1
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut Numérique signé dans numérique
    Bonjour,

    Dans un fichier, j'ai un montant qui peut être au crédit au ou débit à une certaine rupture je doit écrire une nouvelle ligne avec le montant cumulé en débit ou en crédit.

    Pour l'insant j'ai ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    77 TOT-MONTANT           PIC S9(12). 
    05 MONTANT               PIC  9(12).
    
    IF  DEBIT-CREDIT = 'D'                           
        COMPUTE TOT-MONTANT = TOT-MONTANT - MONTANT  
    ELSE                                             
        COMPUTE TOT-MONTANT = TOT-MONTANT + MONTANT  
    END-IF.
    Il me reste a renseigner le montant pour la nouvelle ligne avec le montant total, mais ma zone est signée.

    Je reprend le cobol après plusieurs années d'abstinence, si quelqu'un peut m'aider.

  2. #2
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    Si tu fais un move d'une zone numérique signée sur une zone non signée, le signe sera simplement forcé à +. Puis en fonction du signe de TOT-MONTANT tu alimentes la colonne débit ou crédit depuis la donnée non signée.
    NB. Il est préférable pour des raisons de performances de déclarer les montants utilisés pour les calculs intermédiaires en COMP-3, en tous cas pour les OS IBM. Attention enfin au fait que la donnée cumulée est de même longueur que la donnée de cumul. La zone de totalisation risque d'être tronquée.

  3. #3
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Merci pour la réponse, je ne me suis peut être pas très bien exprimé, en fait ce que je veux faire c'est valoriser MONTANT (non signé) avec TOT-MONTANT
    (signé) selon le signe un autre champ aura la valeur C (crédit) ou d(Débit)

    Est-ce que je peut faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    If TOT-MONTANT > 0
     MOVE TOT-MONTANT TO MONTANT
     MOVE 'C' TO DEBIT-CREDIT  
    else
     MOVE TOT-MONTANT TO MONTANT
     MOVE 'D' TO DEBIT-CREDIT  
    end if'

  4. #4
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    C'est ça, simplement comme 0 n'est pas un débit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    MONTANT = TOT-MONTANT
    If TOT-MONTANT < 0
      DEBIT-CREDIT = 'D'
    else
      DEBIT-CREDIT = 'C'
    end if

  5. #5
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Bon je n'avais pas bien lu la réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Si tu fais un move d'une zone numérique signée sur une zone non signée, le signe sera simplement forcé à +.
    donc je test et je reviens vers vous si pb.

  6. #6
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    C'est ça, simplement comme 0 n'est pas un débit
    effectivement, très bonne remarque merci Homer-ac, il me semble que ça fonctionne, je dois encore verfier quelques lignes.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lire des données numériques signées
    Par pierre24 dans le forum Administration et Installation
    Réponses: 13
    Dernier message: 18/07/2018, 14h39
  2. promotion numérique signé non signé
    Par Débutant_ASM dans le forum Débuter
    Réponses: 6
    Dernier message: 03/03/2010, 12h56
  3. Signe "-" dans un champ numérique
    Par backdraf dans le forum Développement
    Réponses: 2
    Dernier message: 08/12/2009, 18h43
  4. lecture de valeurs numériques contenues dans un fichier xml
    Par yasse87 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 21/04/2009, 19h13
  5. Cadrage (numérique) à droite dans un élément <INPUT>
    Par Trebor_ dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/02/2008, 16h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo