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

Bases de données Delphi Discussion :

Afficher un champ dans deux colonnes différentes d'un Dbgrid selon une condition


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 104
    Points : 85
    Points
    85
    Par défaut Afficher un champ dans deux colonnes différentes d'un Dbgrid selon une condition
    Bonjour à tous,

    J'ai dans une table un champ "somme".
    Dans un DBgrid, j'ai deux colonnes (respectivement "Recettes" et Dépenses") qui sont remplies par ce même champ "somme".
    Actuellement, ces deux colonnes contiennent donc les mêmes valeurs.

    Mais je voudrais n'avoir que les sommes positives dans la colonne "Recettes" et les sommes négatives dans la colonne "Dépenses".

    Une piste de recherche à me suggérer ?

    Merci de votre aide

    Jean-Louis

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    une requête sur la table gérerait facilement ce problème sinon il faudra passer par les évènements de dessin des cellules

    des informations telles que version de Delphi, SGBD, composants accès, description de table etc...
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    effectivement dans le ondrawcell de la colonne tu peut gerer le dessin selon certaines condition

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     IF Column.Name = 'RECETTE' THEN
        IF MONTANT > 0 THEN
          JEDESSINNE(MONTANT)
     
       IF Column.Name = 'DEPENSE' THEN
        IF MONTANT < 0 THEN
          JEDESSINNE(MONTANT)
    mais pour moi il est préférable d'utiliser une requête dans lesquels les champs sont correctement renseignés
    de plus il seras plus simple de faire la somme de chaque colonne
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  4. #4
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonjour,

    2 champs calculés RECETTE et DEPENSE de type currency feront l'affaire
    dans l'evenement OnCalcFields de la table ou de la query:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If Table.FieldByName('SOMME').AsCurrency > 0 Then 
    Table.FieldByName('RECETTE').AsCurrency:=Table.FieldByName('SOMME').AsCurrency
    Else If  Table.FieldByName('SOMME').AsCurrency < 0 Then
    Table.FieldByName('DEPENSE').AsCurrency:=Table.FieldByName('SOMME').AsCurrency;
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

Discussions similaires

  1. Deux champs identiques dans deux fichiers différents
    Par Adibou le Flamboyant dans le forum AS/400
    Réponses: 5
    Dernier message: 15/12/2017, 10h00
  2. [XL-2010] DOUBLON dans deux listes différentes avec champs diférents après fusion
    Par polobabou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 27/06/2016, 20h29
  3. [XL-2007] Copier différents groupes de cellules selon une condition
    Par elglantosimpatico dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 08/03/2013, 10h24
  4. [AC-2007] Comparer deux champs dans deux sous formulaires différents
    Par jerome94 dans le forum IHM
    Réponses: 20
    Dernier message: 15/02/2012, 08h35
  5. Réponses: 10
    Dernier message: 17/04/2009, 17h19

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