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

C++Builder Discussion :

Boucle For dans un TDBGrid


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut Boucle For dans un TDBGrid
    Voila j'ai un base de données Paradox 7 et dans cette table j'ai comme colonnes :
    - Date
    - Heure
    - TypeEntre
    - TypeBillet
    - Quantité
    - Total

    et je doit faire une fonction qui doit me permettre de faire un récapitulatif des ventes de la journée:
    Savoir le type d'entrée, le type de billet vendu dans la journé en faire le total et avoir un total général.
    Donc pour l'instant j'ai commencer a faire une recherche de la date mais le problème c'est qu'apres si j'ai bien compris je doit faire plusieurs boucle for pour avoir le total des Type d'entrée et de type de billet mais comment faire une boucle for si on ne sait pas combien on aura de case a parcourire ????
    Je me trompe totalement ou je suis sur la bonne voie ?
    [/code]

  2. #2
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Salut,
    Mais tu ne peut pas faire un requete avec un TQuery plutot ?

    @ +

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut
    J'ai placer mon TQuery je l'ai configurer mais comment faire car dans ce cas la il faut alors afficher le contenu de la sélection du TQuery?
    car de ce que j'ai comprit tu me demande de mettre des TQuery pour faire mes filtrations de ce que je souhaite avoir comme info mais alors dans ce cas la il me faut les affichers pour ensuite faire mon total des différentes parties

  4. #4
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    à mon avis, l'affichage et ton calcul sont indépendant. Comme le dit cantrelle, il est probable que tu puisses faire ces calculs avec une requête donc dans un TQuery.


    Sinon, en ce qui concerne ton idée de parcourir le DBGrid, il est très simple d'avoir les bornes de ta boucle avec les propriètes FieldCount et RecordCount du dataset de ton DBGrid.

    mais je pense en effet que c'est pas la bonne voie.

    tch'o

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut
    Oui mais comment afficher mon TQuery ?

  6. #6
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Citation Envoyé par Latipolia
    Oui mais comment afficher mon TQuery ?
    Tu lies ton TQuery à un TDBGrid via un TDataSource.
    Regardes l'aide pour savoir dans quel sens ça fonctionne.

  7. #7
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    hum..en même tps, ton TQuery, il doit pas y avoir plusieurs ligens de retourner...donc tu dois pouvoir récuperer les values facilement pour les placer dans des Edit

  8. #8
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Salut,
    Je ne sais pas vraimment comment est ta table, comment sont organisée les données mais tu peut peut etre essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Query->Close();
    Query->SQL->Clear();
    Query->SQL->Add("SELECT DISTINCT T1.TypeEntre AS Type d'entrée, T1.TypeBillet AS Type de billet, COUNT(T1.TypeBillet) AS Decompte Billets, SUM(T1.Quantité)");
    Query->SQL->Add("FROM 'TaTable.db' T1");
    Query->SQL->Add("GROUP BY T1.TypeEntre, T1.TypeBillet");
    Query->Open();
    Sous reserve d'essais parceque je ca serai mieux d'avoir la table sous la main....
    D'ailleurs si tu veut, tu peut me l'envoyer et j'essayerai de trouver une requete appropriée.
    @ +

  9. #9
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Dans un premier temps, je te propose ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Query->Close();
    Query->SQL->Clear();
    Query->SQL->Add("SELECT DISTINCT T1.TypeEntre AS Type, T1.TypeBillet AS Billets, COUNT(T1.TypeBillet) AS NombreEntreeParType, SUM(T1.Quantite) AS NombreBilletsParType, SUM(T1.Total) AS TotalVenteParType");
    Query->SQL->Add("FROM 'Vente.db' T1");
    Query->SQL->Add("WHERE T1.TypeEntre <> ''");
    Query->SQL->Add("AND T1.TypeBillet <> ''");
    Query->SQL->Add("GROUP BY T1.TypeEntre, T1.TypeBillet");
    Query->Open();
    En espérant que ca puisse t'aider, c'est sur c'est pas du grand génie mais si tu as besoin d'affiner ou de présenter différemment, fais moi signe qu'on essaie de travailler dessus...
    Pour les clauses WHERE et AND, je les ai mises pour supprimer les lignes qui n'etaient pas renseignées...il y a des tuples vides dans ta table (test ?).
    @ +

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut
    merci mais je le met ou ce code ?
    Ainsi que pour les tuples qui sont vide c'est des erreurs il ne poura plus y en avoir j'ai fais les test initiaux.
    je devrais vider la bd a la fin de la programmation pour l'utilisateur.

  11. #11
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Hé bien a mon avis, ce code doit remplacer ce qui permettais l'affichage des données dans ton DBGrid (parceque tu parles d'un DBGrid dans ton intitulé) mais il peut aussi te servir a alimenter un QuickRep pour présenter tes données...

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 11
    Par défaut
    J'ai essailer de placer ton source et sa marche mais le problème c'est que je doit faire tout ca mais pour une seule journée cad la journé actuelle.
    La secrétaire qui se servira de ce programme doit pourvoir avoir le total des ventes de la journée actuelle et je n'arrive pas a faire en sorte que ca soit la journée actuelle
    Si vous avez une idée merci de m'en faire par !

  13. #13
    Membre expérimenté
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2003
    Messages : 302
    Par défaut
    Il faut que tu mettes une condition sur ton champ Date. Je suppose que ton champ Date de ta table est la date de la journée pendant laquelle la secrétaire saisait la vente, non ?
    En reprenant le code de cantrelle avec cette condition celà donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Query->Close();
    Query->SQL->Clear();
    Query->SQL->Add("SELECT DISTINCT T1.TypeEntre AS Type, T1.TypeBillet AS Billets, COUNT(T1.TypeBillet) AS NombreEntreeParType, SUM(T1.Quantite) AS NombreBilletsParType, SUM(T1.Total) AS TotalVenteParType");
    Query->SQL->Add("FROM 'Vente.db' T1");
    Query->SQL->Add("WHERE T1.TypeEntre <> ''");
    Query->SQL->Add("AND T1.TypeBillet <> ''");
    Query->SQL->Add("AND T1.Date = " + Date());
    Query->SQL->Add("GROUP BY T1.TypeEntre, T1.TypeBillet");
    Query->Open();
    Je crois que ça devrait passer

  14. #14
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Attention!!
    Pour les dates, si je me trompe pas, en SQL, elles doivent être au format mois/jour/année pas au format jour/mois/année.

  15. #15
    Membre expérimenté
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Septembre 2003
    Messages
    302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2003
    Messages : 302
    Par défaut
    bien vu. en fait je connais pas la base paradox mais comme j'utilise PostGreSQL, je n'ai pas recontré ce genre de problème. La date est rangé sous ce format : AAAA/MM/JJ mais si je teste avec JJ/MM/AAAA il me renvoit quand même les mêmes données.
    Je viens de tester grâce à ta remarque car je ne connaissais pas ce comportement donc merci car tu viens, sans le vouloir, de m'apprendre un truc de plus sous PostGre

  16. #16
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Citation Envoyé par papy_tergnier
    bien vu. en fait je connais pas la base paradox mais comme j'utilise PostGreSQL, je n'ai pas recontré ce genre de problème. La date est rangé sous ce format : AAAA/MM/JJ mais si je teste avec JJ/MM/AAAA il me renvoit quand même les mêmes données.
    Je viens de tester grâce à ta remarque car je ne connaissais pas ce comportement donc merci car tu viens, sans le vouloir, de m'apprendre un truc de plus sous PostGre
    J'ai eu ce problème sous Access. Donc maintenant je me pose plus de questions, je m'ai toutes les dates dans ce format

  17. #17
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonjour a tous,

    Je me demande si ca va passer tel quel parceque le champ 'Date' de la table de notre ami Latipolia est de type 'Alphanumérique' et non du type 'Date', et de ce fait l'instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query->SQL->Add("AND T1.Date = " + Date());
    n'a pas l'air de passer...
    De plus il m'etait impossible de selectionner ce champ, tout simplement au cause de son nom, que j'ai remodifier en DateEntree et la je peut travailler a nouveau sur le champ.

    A mon avis, il va falloir faire qq modifs sur la table, non ?

    @ +

  18. #18
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Si c'est de l'alphanumérique, traiter la date comme une chaine de caractères devrait faire l'affaire...

  19. #19
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    ui, ui, ainsi cela fonctionne mais ca me semble moins juste...Perso, je lui conseillerais quand meme de changer ce champ ainsi que le suivant (pour qu'il soit en Date&Heure)

  20. #20
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Citation Envoyé par Cantrelle
    ui, ui, ainsi cela fonctionne mais ca me semble moins juste...Perso, je lui conseillerais quand meme de changer ce champ ainsi que le suivant (pour qu'il soit en Date&Heure)
    Je suis tout à fait d'accord avec toi
    J'ai juste dit que c'était fonctionnambe avec cette méthode. Pas des + juste mais fonctionnable

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Tableaux] Utiliser une boucle for dans un echo
    Par maoboy dans le forum Langage
    Réponses: 7
    Dernier message: 18/06/2007, 13h55
  2. boucle "for" dans "do while"
    Par oranoutan dans le forum C#
    Réponses: 13
    Dernier message: 05/06/2007, 21h13
  3. Une boucle for dans un switch case?
    Par Death83 dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2006, 14h05
  4. boucle for dans un if...
    Par SylverFox dans le forum Débuter
    Réponses: 3
    Dernier message: 11/08/2004, 16h57
  5. Boucle for dans un script cmd
    Par nicolas.ganache dans le forum Développement
    Réponses: 4
    Dernier message: 19/07/2004, 16h07

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