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

Windows Forms Discussion :

Report viewer avec requete sur plusieurs tables


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut Report viewer avec requete sur plusieurs tables
    Bonjour tout le monde,

    Je développe une application winforms et j'utilise report viewer pour la première fois , j'ai réussi à faire les rapports pour une seule table, mais quand il s'agit de requetes avec jointures entre plus que 2 tables, je me bloque.

    Une idée? et est ce que vous me conseillez d'utiliser l'impression des datagridview ou le reporting dans ce cas?

    merci bien

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    C'est quoi le problème exactement ? Tu n'arrives pas à écrire ta requête ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    je veux utiliser report viewer pour imprimer une datagridview qui contient des données issues d'une requete sur 2 ou 3 tables de ma base de données access,

    j'arrive à générer un rapport quand il s'agit d'un select d'une seule table, et je le fais à partir de l'assistant reportviewer, mais par programmation et en spécifiant la source du données (datatable) là je me bloque :/

  4. #4
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Pourquoi est-ce que tu ne fais pas un seul et unique DataSet avec une requête qui interroge les 3 tables (jointures) ?

    Y'a-t-il une problématique qui t'empêche de le faire ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par Matt07 Voir le message
    Pourquoi est-ce que tu ne fais pas un seul et unique DataSet avec une requête qui interroge les 3 tables (jointures) ?

    Y'a-t-il une problématique qui t'empêche de le faire ?
    Je sais pas comment le faire , pourriez-vous me donner un coup de main? c pas programmation que je le fais? ou à partir de l'assistant ?

    merci

  6. #6
    Futur Membre du Club
    Femme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Points : 9
    Points
    9
    Par défaut
    SVP aidez-moi , je suis encore bloquée, j'arrive pas à créer une nouvelle source de données pour mon rapport par assistant ni par programmation, svp donnez moi un coup de main, c très urgent

  7. #7
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Tu peux t'exercer avec le tutorial suivant : http://www.e-naxos.com/download/RDL.zip

    Il a été écrit pour ASP.NET mais tu peux faire la même chose dans une application WinForms.

    En ce qui concerne l'écriture de la requête pour ton DataSet, supposons que tu aies 3 tables (Table1, Table2 et Table3) avec la structure suivante :

    Table1 :
    [Table1].[Id] | INT | Primary Key
    [Table1].[Name] | NVARCHAR |

    Table2 :
    [Table2].[Id] | INT | Primary Key
    [Table2].[Name] | NVARCHAR |
    [Table2].[RelatedId] | INT | Foreign Key (vers [Table1].[Id])

    Table3 :
    [Table3].[Id] | INT | Primary Key
    [Table3].[Name] | NVARCHAR |
    [Table3].[RelatedId] | INT | Foreign Key (vers [Table1].[Id])

    Si tu veux récupérer tous les champs de toutes les tables, il faut utiliser les jointures, comme ceci :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT t1.*, t2.*, t3.*
    FROM [Table1] t1
        JOIN [Table2] t2 ON t2.[RelatedId] = t1.[Id]
        JOIN [Table3] t3 ON t3.[RelatedId] = t1.[Id]

    C'est donc cette requête que tu devras utiliser dans ton DataSet, mais évite de laisser les étoiles (*), car ta requête peut potentiellement te remonter beaucoup d'information, et donc ne pas être performante.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 28
    Points : 8
    Points
    8
    Par défaut
    bonjour, je suis aussi interessé par ce sujet :

    j'ai 2 table, Facture et Detail_Facture.

    dans Facture y a que les montant HT, TVA, Timbre, Montant TTC, Id Client ... information de base d'une facture

    le detail de la facture (les article vendu) sont dans la table Detail_Facture avec un champ Id_Facture qui contient un des article de la facture ...

    quand on crée le report viewer, on choisi seulement une seul table. pour faire une jointure c'est facile mais comment affiche les donnée de la 2em table? vu qu'on peut pas choisir les champ de la 2em table.

    je m'explique : dans le fichier .rdlc je crée un tableau avec des colonne Article / Quantité / Prix U HT / Montant HT ces donnée sont de la table Detail_Facture

    et plus bas dans un autre petit tableau y a les Montant HT,TVA, TTC de la table facture, y aussi les information du client plus haut.

    pour afficher les montant dans le petit tableau je colle le champ de la table facture dans la bonne colonne de mon tableau ... mais comment je fais pour le detail?

    merci par avance

  9. #9
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Bonjour,

    Dans le designer du report, tu as la possibilité de définir plusieurs sources de données pour ton report en passant par les dataset (utilise le concepteur de dataset de VS). Supposons que ton dataset s'appelle DataSetFacturation
    1.Tu crées deux datatables : TableFacture et TableDetailFacture.
    2.Tu crées une relation entre les deux datatable via la référence de la facture.
    3. Ensuite dans le concepteur de report dans VS, tu choisis comme source de donnés le DataSetFacturation.
    - Dans la zone de liste déroulante "Datasets Disponibles", choisis TableFacture.
    - Dans la zone "Données du Rapport", fait clic droit sur DataSetFacturation > Ajouter un dataset ...
    Choisis toujours DataSetFacturation comme sources de données et cette fois-ci TableDetailFacture dans la zone "Datasets Disponibles".

    Tu auras ainsi tes deux datatable dans les "Données du rapport" et tu pourras donc éventuellement les affecter à différents tableaux matriciels.

    4. Dans le chargement de ton form contenant le reportviewer, tu peux préciser les deux sources de données ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        TableFactureTableAdapter.Fill(DataSetFacturation.TableFacture);
        TableDetailFactureTableAdapter.Fill(DataSetFacturation.TableDetailFacture);
        //......
       TonReportViewer.RefreshReport();
    Si c'est pas assez claire, fait signe pour que je donne plus de détails.
    N'oubliez pas le tag et

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 28
    Points : 8
    Points
    8
    Par défaut
    merci pour ton aide, mais je crois que j'aurais besoin de plus d'aide
    bon j'ai reussi a ajouter le 2em dataset, dans chaque tableau je met les donnée de la table (dataset) que je veux.

    jusque la pas de souci.

    au chargement de ma form j'ai bien les 2 dataset qui se charge.

    mais deja, sans contrainte, j'ai seulement un des 2 dataset qui affiche les résultat l'autre tableau est vide.

    ensuite, sur le 1er dataset qui s'affiche bien, j'ai voulu rajouter des inner join pour afficher du text au lieu de l'id des article, et la la colonne du tableau qui affichait l'ID de l'article n'affiche plus rien !

    en gros, dés que je met un INNER JOIN plus rien ne s'affiche, et l'autre dataset ne s'affiche pas

  11. #11
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Citation Envoyé par deado Voir le message
    merci pour ton aide, mais je crois que j'aurais besoin de plus d'aide
    bon j'ai reussi a ajouter le 2em dataset, dans chaque tableau je met les donnée de la table (dataset) que je veux.
    Je viens de modifier mon post précédent car je m'étais mal exprimé. Relis le post et si ça ne va pas, fais signe.
    N'oubliez pas le tag et

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 28
    Points : 8
    Points
    8
    Par défaut
    j'allais tout modifier, mais dés le debut c'est ce que j'avais fait
    j'avais deja mis un seul dataset avec mes 2 tablea dedans que j'ai rajouter au datasource.

    j'arrive a ajouter les champs des 2 table dans les 2 tableau sans probleme.

    mais les résultat ne s'affiche pas pour les 2 table !

    une seul table affiche les donnée, et encore s'il y a un INNER JOIN seul cette table, le champ ne s'affiche pas !

  13. #13
    Membre expérimenté Avatar de callo
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Février 2004
    Messages
    887
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Togo

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 887
    Points : 1 699
    Points
    1 699
    Par défaut
    Peux-tu poster les requêtes ayant servi à créer chacune des deux datatable ?
    N'oubliez pas le tag et

  14. #14
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Algérie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 28
    Points : 8
    Points
    8
    Par défaut
    je le ferai tout a l'heur la j'ai pas accès a mon projet.

    mais sinon les requete je les ai testé dans le dataset et ca me retourne les donnée que je veux (du générateur de requete).

    donc je pense que les requetes son bonne non?

Discussions similaires

  1. [2.x] requete sur plusieurs tables avec "findby"
    Par adel25 dans le forum Symfony
    Réponses: 2
    Dernier message: 02/10/2013, 17h12
  2. Requete sur plusieurs table avec les memes champs
    Par broule dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/02/2010, 19h57
  3. Probleme de requete sur plusieurs tables
    Par Hitmaaan dans le forum Requêtes
    Réponses: 3
    Dernier message: 20/08/2006, 22h20
  4. [vb6]faire une requete sur plusieurs tables
    Par Henry9 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/07/2006, 02h06
  5. requete sur plusieurs tables
    Par manaboko dans le forum Requêtes
    Réponses: 6
    Dernier message: 13/12/2005, 17h07

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