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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2010
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 109
    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 663
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 663
    Billets dans le blog
    65
    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...

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 493
    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 493
    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

  4. #4
    Membre éprouvé 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
    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;

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