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 :

somme sur plusieurs lignes d'un dbgrid


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 102
    Points
    102
    Par défaut somme sur plusieurs lignes d'un dbgrid
    bonjour
    est-il possible de faire la somme dans un champ du dbgrid, sur quelques lignes de celui-ci?

  2. #2
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    Le DBGrid ne contient pas les données.
    Donc la somme à effectuer sera faite en ventilant les lignes de ton DataSet.

    2 solutions, 1 requete, la meme que celle que tu as utilisée pour afficher tes données, mais avec SUM( tonchamp ).

    Ou bien, le cycle classique

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Valeur := 0;
    DataSet.First;
    while not Dataset.Eof do
      try
      Valeur := Valeur + TableTonChamp.AsFloat;
      finally DataSet.Next; end;
    en ce qui concerne la somme, seuelement sur certaines lignes, dans la 2eme solution c'est à toi d'imposer le critere pour effectuer la somme ou non.
    Par requete, il faut ajouter la condition nécessaire...

    bon courage !
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 102
    Points
    102
    Par défaut
    Excuse moi pour ce retard

    en fait c'est plus compliqué que ça je voudrais que le résultat s'affiche dans une ligne du champ d'un dbgrid en fait c'est pour une fiche de paie c'est pour me calculer le salaire brut : salaire de base + prime + commission.

  4. #4
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    vous pouvez formuler votre fiche de paie autrement
    dans un stringgrid (il vous faut une procédure d'affichage).
    ou en utilisant une table temporaire qui va contenir toutes les rubriques.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 102
    Points
    102
    Par défaut
    merci beaucoup

    mais est-ce que vous pourriez m'en dire un peu plus?

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2004
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Andorre

    Informations forums :
    Inscription : Juin 2004
    Messages : 219
    Points : 241
    Points
    241
    Par défaut
    Salut

    Si j'ai bien compris..... tu veux faire cette somme chaque ligne? Si est oui, tu peux utiliser un champ calculé

    A+

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    479
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 479
    Points : 102
    Points
    102
    Par défaut
    merci pour la réponse

    mais je voudrais faire la somme dans un champ calculé des 2 ou 3 lignes avant ce champ calculé et de préférence si l'utilisateur rajoute une ligne qu'il la prenne en compte aussi.

    ex :
    champ calculé
    une ligne 'salaire de base'
    une ligne 'prime'
    une ligne 'commission'
    une ligne somme ici je voudrais avoir la somme.

  8. #8
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    salut bon normalement votre table rubrique et structurer comme suit

    Code Desifnation sens Montant


    vous pouvez placez un stringrid nommée grille avec 6 colone expl

    ou vous aurrai le code désignation Taux, Montant retenue, montant gain

    et vous faite une boucle d'affichage.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    var 
     I : Intger; 
     Mont : Currency;
    Begin
     
    // vous dertminez les largeur des colones
     GRille.ColWidths[0] := 10;
       .
       .
     GRille.ColWidths[5] := 80;
     Grille.FixedCols:=0;
     Grille.ColCount:=6
     Grille.Cells[0,0] := 'Code';
     Grille.Cells[1,0]:='Désignation';
     Grille.Cells[2.0]:='Nombre';
     Grille.Cells[3,0]:='Taux';
     Grille.Cells[4,0]:='Retenue';
     Grille.Cells[5,0]:='Gain';
     Matable.First;
     Mont  := 0;
     I:=1; // indice de ligne  0 c'est le titre
    While not Matable.Eof do
     begin
      Grille.[0,I] := le champs corespendant (il faut le convertitr en chaine si il le faut) 
    Mont := Mont+ChampeValeur;
    Inc(I);
      MTable.next;
     end;
     
     Grille.Cells[0,I] := 'Code';
     Grille.Cells[1,I]:='Somme';
     Grille.Cells[5,I]:=CurrToStrF(Mont,ffNumber,2);

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    salut,
    je crois que le plus simple serait de baser votre dbGRID sur un Query qui va contenir SUM .
    Bonne chance.
    Merci.
    Deux, n'apprendront pas; le timide et l'arrogant

  10. #10
    Membre expert
    Avatar de aityahia
    Homme Profil pro
    CIEPTAL CARS SPA
    Inscrit en
    Mars 2006
    Messages
    1 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : CIEPTAL CARS SPA
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 938
    Points : 3 329
    Points
    3 329
    Par défaut
    Citation Envoyé par hocine
    salut,
    je crois que le plus simple serait de baser votre dbGRID sur un Query qui va contenir SUM .
    Bonne chance.
    Merci.

    Je pense que personne n'a comprie le problemme de piérot, en plus de piérot il voudrai que le derniere ligne de sa grille soit la somme des autres lignes,
    il a un soucie d'affichage et non de calculer la somme

  11. #11
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    A mon avis, il faudra que Pierrot67 gère cela manuellement.
    Utilisation d'un grille et population des données manuellement.
    Car je ne connais pas de composant DB qui peuvent faire cela automatiquement.

    Courage
    On progresse .....

  12. #12
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    529
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 529
    Points : 464
    Points
    464
    Par défaut
    Salut,
    j'aime regarder à la vie plus simplement, pierro veut créer une fiche, un dbgrid où il veut voir les diferents sommes alors que quickreport (état) peut faire le reste (les calculs).
    J'ai relis les messages postés par pierro, et le dernier message de Aïtyahia, donc pierro peut utilser le code pour résoudre son problème, en ajoutant 2 variables en plus de mont ,priem et commis et en ajoutant au dbgrid 3 lignes
    soit 'salaire de base' la variable mont.
    une ligne 'prime' i+1
    une ligne 'commission' i+2
    somme i+3
    Bonne chance.
    Merci.
    Deux, n'apprendront pas; le timide et l'arrogant

Discussions similaires

  1. Somme sur plusieurs lignes
    Par joan_27 dans le forum VBA Project
    Réponses: 1
    Dernier message: 15/03/2015, 02h11
  2. [Lazarus] Titre sur plusieurs lignes dans un dbgrid
    Par Jon Shannow dans le forum Lazarus
    Réponses: 1
    Dernier message: 05/02/2013, 12h42
  3. Ecrire sur plusieurs lignes dans un DBGrid
    Par stfanny31 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/08/2008, 23h26
  4. TDBGrid - Un enregistrement sur plusieurs lignes
    Par BRODU dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/05/2004, 07h53
  5. Define sur plusieurs lignes
    Par Gogoye dans le forum C
    Réponses: 6
    Dernier message: 06/10/2003, 11h45

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