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 :

Problème de Somme par query / Impression


Sujet :

Bases de données Delphi

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2021
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Problème de Somme par query / Impression
    bnjr, je suis débutante en programmation,MR @ABBAN270 j'avais le mm problème que vous, le code que vous avez mis m'a beaucoup aidé alors je vais oser et vous demander comment imprimer le contenu de ce DBGRID en utilisant ces deux requêtes.

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    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 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bonjour et meilleurs vœux

    je vais vous répondre ainsi : on n'imprime pas une grille, on imprime des données, donc on utilise les deux datasources avec son générateur d'états.
    Bien évidemment si vous nous indiquiez quel est le votre la réponse serait plus complète .

    Ensuite, si la raison de votre état est de lister le nombre jours d'absence par employé, non, il n'est pas besoin de deux requêtes une seule, cf le SQL de ma première réponse (post #3), est nécessaire.

    Enfin, indiquez votre version de Delphi, votre SGBD, la description des tables et votre générateur d'état cela aidera d'avantage
    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
    Membre expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Points : 3 611
    Points
    3 611
    Par défaut
    Citation Envoyé par azimos0000 Voir le message
    bnjr, je suis débutante en programmation,MR @ABBAN270 j'avais le mm problème que vous, le code que vous avez mis m'a beaucoup aidé alors je vais oser et vous demander comment imprimer le contenu de ce DBGRID en utilisant ces deux requêtes.
    Bonjour et bienvenue parmi nous

    N'hésite pas à ouvrir une nouvelle discussion parlant d'impression de grille pour avoir des réponses en rapport avec ton besoin plutôt que continuer sur un problème de remplissage. Ce sera plus pratique pour les suivants qui feraient des recherches et tomberont sur la discussion qui leur apportera des solutions ou idées plutôt que de se mélanger avec d'autres.

    D'une façon générale, en Delphi, pour imprimer on a un TPrinter qui s'appelle Printer et nous permet de dessiner les pages à envoyer à l'imprimante, une par une.

    Il n'y a rien en standard pour partir d'une DBGrid et l'imprimer.

    En revanche on peut utiliser l'une des solutions de reporting comme par exemple Fast Reports (qui propose une version light dans GetIt) ou le module (payant) de reporting lié aux composants HTML de https://delphihtmlcomponents.com/reports.html parmi une bonne dizaine d'autres (commerciaux, open sources, trop souvent non maintenus).

  4. #4
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2021
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour et meilleurs vœux

    je vais vous répondre ainsi : on n'imprime pas une grille, on imprime des données, donc on utilise les deux datasources avec son générateur d'états.
    Bien évidemment si vous nous indiquiez quel est le votre la réponse serait plus complète .

    Ensuite, si la raison de votre état est de lister le nombre jours d'absence par employé, non, il n'est pas besoin de deux requêtes une seule, cf le SQL de ma première réponse (post #3), est nécessaire.

    Enfin, indiquez votre version de Delphi, votre SGBD, la description des tables et votre générateur d'état cela aidera d'avantage
    merci bq pour votre attention, ce que je voulais dire c'est que je veux imprimer le contenu de ce DBGRID (l’état), les données b1 sur, j'utilise DELPHI /RAD studio 10.3 , SGBD acces 2010 ,et le composant QReport pour imprimer mes états. la difficulté que j'ai trouvé c que je ne sais pas comment faire pour lier les composants de mon QREPORT (QRDBtext) avec ces requêtes pour avoir imprimer l’état de ces données.(affecter le query utilisé au dataset de ces composants en effet n'a r1 donner)

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2021
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par pprem Voir le message
    Bonjour et bienvenue parmi nous

    N'hésite pas à ouvrir une nouvelle discussion parlant d'impression de grille pour avoir des réponses en rapport avec ton besoin plutôt que continuer sur un problème de remplissage. Ce sera plus pratique pour les suivants qui feraient des recherches et tomberont sur la discussion qui leur apportera des solutions ou idées plutôt que de se mélanger avec d'autres.

    D'une façon générale, en Delphi, pour imprimer on a un TPrinter qui s'appelle Printer et nous permet de dessiner les pages à envoyer à l'imprimante, une par une.

    Il n'y a rien en standard pour partir d'une DBGrid et l'imprimer.

    En revanche on peut utiliser l'une des solutions de reporting comme par exemple Fast Reports (qui propose une version light dans GetIt) ou le module (payant) de reporting lié aux composants HTML de https://delphihtmlcomponents.com/reports.html parmi une bonne dizaine d'autres (commerciaux, open sources, trop souvent non maintenus).
    oui pourquoi pas ,mrc mr

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    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 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Bon, maintenant que l'on est fixé : il s'agit de QuickReport on peut avancer, un peu. (Delphi 10.3 donc dommage de renoncer à utiliser FASTReport mais, il est vrai que la version "Delphi" ne gère pas les scripts)
    resterai à donner les descriptions des tables pour fournir un SQL correct.

    P.S. dans un souci de bien faire j'ai créé cette nouvelle discussion

    Tout d'abord, oubliez cette histoire de grille. La seule question qui reste pour moi en suspend est : le dessin de sortie.
    S'agit-il d'obtenir :
    1. une liste le nombre jours d'absence par classé par employé
    2. un détail des jours d'absences par employé (avec un resumé)


    Je suis un peu rouillé avec QuickReport mais comme vous allez vous en appercevoir seule la query est importante.

    Dans le cas 1 la requête aura la forme suivante

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT e.nom,e.Prenom,sum(a.jours) FROM EMPLOYES E LEFT JOIN ABSENCES a ON e.ID_EMPLOYE=a.ID_EMPLOYE
    WHERE -- à vous de mettre les clauses

    Dans ce cas, hors fioritures (bande titre, bande column header etc...) vous indiquez le dataset de la requête au niveau du QuickReport, vous ajoutez une bande détail, posez les 3 QRDBText et le tour est joué.


    Dans le cas 2, la requête sera un peu plus complexe selon que vous voulez :
    A - uniquement les employés qui ont des absences
    B - tous les employés qu'il y ait absence ou pas

    Cas A
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT a.ID_EMPLOYE,a.JOURS,a.DATE_ABS, e.NOM,e.PRENOM FROM ABSENCES a JOIN EMPLOYES e on  e.ID_EMPLOYE=a.ID_EMPLOYE 
    WHERE -- à vous de mettre les clauses

    Dans le quickreport vous allez mettre comme déjà indiqué : une bande détail mais vous allez ajouter une bande Entete de groupe avec l'expression ID_EMPLOYE, bande dans laquelle vous mettrez les DBtext pour les colonnes nom et prénom)
    dans la bande détail vous mettrez le nombre de jour et tous les détails nécessaires au sujet de l'absence (date, raison, etc...)
    puis vous ajouterez une nouvelle bande qui sera uun pied de groupe dans laquelle vous mettrez une QRExpression qui sera SUM(JOURS) bien entendu avec la propriété ResetAfterPrint à true qui vous donnera ainsi le total par employé

    Le Cas B est un peu plus délicat voici la requête

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT e.ID_EMPLOYE,e.NOM,e.PRENOM,COALESCE(a.JOURS,0),a.DATE_ABS, ...
    FROM employes e left join ABSENCES a on e.ID_EMPLOYE=a.ID_EMPLOYE
    cependant vous devrez penser à gérer dans les évènement onprint les valeurs NULL (par exemple dans ce SQL celui de la Date_ABS)
    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

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 036
    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 036
    Points : 40 941
    Points
    40 941
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par pprem Voir le message
    N'hésite pas à ouvrir une nouvelle discussion parlant d'impression de grille pour avoir des réponses en rapport avec ton besoin plutôt que continuer sur un problème de remplissage.
    Voilà, c'est fait, avec un peu d'huile de doigts
    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

  8. #8
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2021
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2021
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Voilà, c'est fait, avec un peu d'huile de doigts
    slt,votre explication était très utile ,mrc bq pour votre temps

Discussions similaires

  1. Problème de somme par Query
    Par ABBAN270 dans le forum Bases de données
    Réponses: 18
    Dernier message: 10/02/2016, 17h00
  2. Problème ouverture fichier par double clic...
    Par sankookai dans le forum MFC
    Réponses: 4
    Dernier message: 11/05/2005, 09h13
  3. [CR8.5] Problème de division par zéro sur formule
    Par franck.cvitrans dans le forum Formules
    Réponses: 3
    Dernier message: 10/06/2004, 13h41
  4. Probléme d'insertion par défault
    Par xavier62 dans le forum SQL
    Réponses: 7
    Dernier message: 28/11/2003, 13h03
  5. - [procédure stockée] - Problème de Somme
    Par korrigann dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/05/2003, 11h51

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