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 :

Calcul d'un total


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Points : 18
    Points
    18
    Par défaut Calcul d'un total
    Bonjour,
    Je n'arrive pas a afficher le total du contenue d'un champ monétaire,j'ai essayé un champ agrégate & une requette , mais la méme chose , le montant souhaité ne s'affiche pas .
    remarques :

    1- j'utulise delphi6 avec une bd access & une connexion bde.

    2-je cherche a afficher le résultat au moment ou je suis entraint d'ajouter des enregistrements,donc chaque fois que j'ajoute un produit avec sans prix unitaire & la qtt le champ calculé montant affiche le montant et le total de facture se change en bas, & c'est ça que je n'arrive pas a faire
    3-ma table est en maitre/détail (détail),le calcule ne concerne pas toutes les valeurs de la table mais qui son lié au maitre & afficher dans mon dbgrid.
    4-avec un (clientdataset) je reçois un message d'érreur - violation de clé).
    merci.

  2. #2
    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,
    comment aves vous déclarer le champs en commun lors de la création de votre table?
    index secondaire ou tablede référence ou...
    pour violation de la clé si vous avez créer vos tables correctement,je crois qu'il faudrait enregistrer les infos de la table commande avant de commencer de lister les produit comme ça la table détail va avoir une référence pour u revenire.
    pour la calcule du total je crois qu'il faut le laisser jusqu'à la création de l'état.
    J'ai lu sur leforumquelque chose sur le calcul à partir d'un dbgrid,mais je ne me le rappel pas.

    Bonne chance.
    Merci
    Deux, n'apprendront pas; le timide et l'arrogant

  3. #3
    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 m'excuse je n'avais pas compris votre problème, maintenant sij'aibien compris vous voudriez avoir sur ledbgrid le total qte*PU.
    Si c'est ça alors cliquez sur la table reliée au dbgrid, une fenêtre va apparaître,si elle vide, sur cette fenêtre cliquez avec le boutton droit de la souris/ajouter tous les champs; les champs de votre table.
    cliquez une seconde fois avec leboutton droit de la souris/ajouter un nouveau champs;une nouvelle fenêtre choisissez le type ensuite choisissez calculer,suivez les étapes.
    Bonne chance.
    Merci.
    Deux, n'apprendront pas; le timide et l'arrogant

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    478
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 478
    Points : 89
    Points
    89
    Par défaut
    bon comme je l'avais compris t'a un champs x et tu veux faire le total du 1er au dernier enregistrement
    donc suite à se que t'a dit hocine tu dois aussi ajouter un code (programmation) pour faire se calcul
    alors tout d'abord tu dois faire un bouton dit "calcul" ou il y'a un refrechissement de la base pour tout nouvelle saisie c tout simplement en fermant et ouvrir adoconncetion

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    adoconnection1.Connected:=false; //fermeture connect
    adoconnection1.connected:=true; //ouverture
    adotablex.Active:=true; //connection
    ensuite tu parcours la table dés le début et a chaque fois tu fais la somme avec une simple sommation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var
    val1,val2:integer;
    begin
    adotableetat.First;
     while not ADOTablex.Eof do begin
        adotablex.edit;
        val1:=adotableetat.fields[0].Asinteger;
        val2:=adotableetat.fields[1].Asinteger;
        adotablex.fields[2].AsCurrency:=val1+val2;
        adotablex.post;
        ADOTablex.Next;

  5. #5
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    une autre solution serait de créer une requête chargée uniquement du calcul de cette somme, requête que tu fermerais et réouvrirais dans chaque fois qu'un enregistrement est inséré/édité (évènement OnAfterPost par exemple).
    a titre d'exemple, supposons une structure de table ci dessous:
    Master(N°Cmde, Date)
    Detail(N°Detail, #N°Cmde, Designation, Qte, PU)

    pour Master tu as la requête SQL de sélection :
    SELECT N°Cmde, Date FROM Master

    pour Detail tu as:
    SELECT N°Detail, Designation, Qte, PU FROM Detail WHERE N°Cmde = :N°Cmde

    pour calculer le total tu fais
    SELECT SUM(PU * Qte)AS Total FROM Detail WHERE N°Cmde = :N°Cmde

    tu met la requête ci-dessous dans un composant Query que tu lie au composant qui affiche la table Master.

    Dans l'évènement OnAfterPost du composant lié à la table Detail, tu fais Close + Open pour la requete de calcul de la somme

    Enfin tu as un DBText qui affiche le total.


Discussions similaires

  1. [Total] Calcul d'un total un peu compliqué
    Par userB dans le forum Langage SQL
    Réponses: 3
    Dernier message: 15/06/2007, 15h17
  2. [Total] Probleme pour le calcul d'un total
    Par userB dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/06/2007, 15h16
  3. calcul de sous total dans un etat
    Par qltmi dans le forum IHM
    Réponses: 1
    Dernier message: 11/06/2007, 06h55
  4. Réponses: 1
    Dernier message: 11/12/2006, 12h45
  5. Calcul d'un total avec Rave Report
    Par webbulls dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/05/2004, 13h46

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