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

Visual Studio Discussion :

Reporting avec Visual c# express


Sujet :

Visual Studio

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut [VS express] Reporting avec Visual c# express
    Bonjour à tous,

    je voudrais faire du reporting avec visual c# express.
    J'ai pour cela suivi le mode d'emploi d'Olivier Delmotte (http://odelmotte.developpez.com/tuto...net/reporting/)

    J'ai installé c# express, sql server 2005 express avec advanced services.
    Lorsque j'insère un composant "reportviewer" dans ma winform, et que je clique sur "Design report" dans son menu de configuration (la petite flèche en haut à droite du composant), rien ne se passe.

    La seule chose que j'ai réussi à faire, c'est de télécharger un exemple de reporting trouvé sur le net, qui utilise un fichier rdlc. Je peux ouvrir ce fichier avec visual web developper express, en mode design.
    Là, je peux y ajouter des éléments, mais je ne sais pas y ajouter des datasources.

    Que dois-je faire, qu'est-ce que j'ai oublié? Je ne sais pas.

    Qqn sait comment s'y prendre pour pouvoir utiliser et générer un rapport avec c# express?

    Merci beaucoup pour votre aide.

    Penchu

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut
    Bonjour tout le monde.

    Heu, j'ai avancé un petit peu.
    Je peux maintenant créer un nouveau rapport depuis web developper.
    Mais toujours pas depuis c# express. Est-ce normal?

    2è problème : j'ai créé un dataset dans mon projet.
    Je vois donc mon fichier DataSet_Offre.xsd et son fichier xss correspondant.
    Mais comment l'ajouter à mon rapport?
    Car quand je vais dans le menu sources de données du rapport, il me propose DataSet_Offre_Offres... et ca ne correspond pas à celui que j'ai dans mon projet.
    Du coup, rien ne s'affiche sur mon rapport, quand je veux l'afficher sauf le message suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Une instance de source de données manque pour la source de données « DataSet_Offre_Offres ».
    Et encore une chose, comment puis-je afficher mon panel datasource dans c# express afin de voir les champs de mes tables de mon dataset?

    je désespère un peu, là.
    Please help me.


    Merci d'avance.

  3. #3
    Membre Expert

    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    1 737
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 737
    Par défaut
    il faut lui passer les datasources à un moment ou à un autre à ton Report

    tes 2 problèmes sont liés

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut
    Mais peux-tu me dire comment faire pour lui passer un datasource?
    J'ai créé mon dataset, ne fait-il pas office de datasource?
    Est-il possible de créer son rapport depuis c# express plutôt que depuis visual web developper? Car dans ton tuto, apparemment, on peut le faire, mais je n'ai pas d'outils pour le faire.

    Merci

  5. #5
    Membre Expert

    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    1 737
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 737
    Par défaut
    1 - Tu dois lui passer une ReportDataSource à ton état comme décrit ici

    http://odelmotte.developpez.com/tuto...=page_7#L7-2-4

    mais normalement visual studio se charge de la tambouille derrière

    2 - Que je sache non, ce sont les version express

    Une question qui me chiffone : pourquoi avoir installé SQL Server Express With Advanced Services pour faire du local ?

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut
    En fait, je savais pas trop comment prendre les choses en main.
    Que me conseilles-tu? C'est mieux de travailler en mode serveur?

    Et en fait, en mode serveur, je ne sais pas travailler car j'ai une erreur lorsque j'exécute la Configuration de reporting services :
    une erreur inconnue s'est produite dans le fournisseur WMI. Code d'erreur : 80040219.

  7. #7
    Membre Expert

    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    1 737
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 737
    Par défaut
    ben quand je peux je préfère le coté serveur

    je suis pas trop un manipulateur de data set pour tout dire


    pour ton problème de conf, je sais pas du tout mais si tu trouves, n'hésite pas à nous tenir au courant

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut
    J'ai déjà cherché un peu sur google, mais rien trouvé encore pour cette erreur.

    Je te tiens au courant si j'ai du nouveau là dessus

  9. #9
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut
    Quand je lance mon outils de reporting server (via l'adresse http://localhost/Reports$EXPRESS), et que j'ajoute une nouvelle source de données, voici ce qu'il me mets :



    J'ai essayé avec chaque bouton d'option de la partie "se connecter avec"

  10. #10
    Membre Expert

    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    1 737
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 737
    Par défaut
    pourquoi pas l'authentification intégrée ... tu es sur le meme serveur apparament ... donc tu passes par l'authentification

    et pourquoi t'utilises pas les outils supplémentaires de la version express pour faire tes états ?

  11. #11
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut
    ben comme je disais, je n'ai pas les outils de création d'état dans c# express.
    Je ne les ais que pour visual web developper.
    Et je ne parviens pas à insérer mon dataset ou autres datasources dans mon projet.

  12. #12
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut
    Ca y est. J'arrive a générer un rapport.
    J'ai trouvé le panel des sources de données (que je confondais avec l'explorateur de base de données ).
    J'ai donc créé un dataset simple pour tester, j'ai ajouté ma datasource au projet, je le lance, et hop ça fonctionne.

    Maintenant, j'ai un autre petit souci.
    J'ai créé mon dataset comme je le voulais (à l'aide du générateur de requête)
    Voici ma requête comme je la veux.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SELECT     Clients.IDClient, Clients.Nom_societe, Clients.Rue, Clients.Boite, Clients.CP, Clients.Ville, Clients.Pays, Offres.IDOffres, Offres.Date_offre, 
                          Offres.Num_offre, Offres.IDClient AS Expr1, Offres.Societe_facturation, Details_offre.IDDetails_offre, Details_offre.IDOffres AS Expr2, 
                          Details_offre.Libelle_article, Details_offre.Pvu_htva, Details_offre.TVA, Details_offre.Pvt_htva, Details_offre.Quantite, Details_offre.Total_htva, 
                          Details_offre.Total_tva, Details_offre.Total_tvac
    FROM         Clients INNER JOIN
                          Offres ON Clients.IDClient = Offres.IDClient INNER JOIN
                          Details_offre ON Offres.IDOffres = Details_offre.IDOffres AND Offres.IDOffres = Details_offre.IDOffres AND 
                          Offres.IDOffres = Details_offre.IDOffres
    WHERE     (Clients.IDClient = @IDClient)
    Je passe donc un paramètre à ma requête (@IDClient en l'occurrence).
    Maintenant, il faut que ce paramètre soit le contenu d'une textbox qui se trouve sur ma page.
    Comment lui dire de prendre ça en compte étant donné que pour générer le rapport, je n'ai fait aucun code.
    Je ne parviens pas à trouver comment faire, malgré qq recherches.

    Merci d'avance

    Penchu

  13. #13
    Membre Expert

    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    1 737
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 737
    Par défaut
    tu supprimes toutes les datasources de ton état

    tu rempli ta table avec ton paramètre (fill + param)

    tu ajoute ta table comme reportdatasource

    tu rafraichi ton état

    simple non ?

  14. #14
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut
    Heu, ok, mais concrètement, au niveau du code... C'est ça qui me bloque.

    Comme ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    this.reportViewer1.Reset();
                this.reportViewer1.LocalReport.LoadReportDefinition(m_rdl);
                this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("MyData", m_dataSet.Tables[0]));
                this.reportViewer1.RefreshReport();
    Mais comment générer ma requête (et donc mon rapport) avec mon paramètre @IDClient?

    Sinon, peut-on imprimer un rapport directement sur l'imprimante sans le voir à l'écran? Et l'exporter en pdf dans un dossier qu'on lui donne?
    Est-ce possible?

  15. #15
    Membre Expert

    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    1 737
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 1 737
    Par défaut
    je t'ai donné toutes les clés pour le faire

    lis bien les posts que j'ai mis et cherche un peu dans la doc du reportviewer

    oui tu peux imprimer sans forcément afficher

  16. #16
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut
    Heu, je suis désolé. J'ai passé le weekend à rechercher sur le net des infos sur comment charger mon rapport avec mon dataset dont la requete select possède un paramètre, mais je n'y parviens pas.

    Je suis en train de me prendre la tête et je suis certain d'être proche du but.
    En fait, maintenant, j'enregistre mes données. Une fois que c'est fait, j'ouvre une fenêtre fille mdi qui permet de voir le rapport qui est censé être généré.
    J'ai ajouter un constructeur en plus du constructeur par défaut de cette fenêtre qui reprend l'IDClient dont j'ai besoin (c'est l'id qui est en paramètre dans ma requête select).
    Au chargement de ma fenêtre de preview, j'ajoute le datasource au rapport avec le dataset rempli.

    Voici mon code : y voyez-vous qqch d'anormal, qqch que j'aurais oublié?

    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
    34
    35
    36
     
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using Microsoft.Reporting.WinForms;
     
    namespace Box_Product.Forms
    {
        public partial class PreviewOffre : Form
        {
            int _IDClient;
     
            public PreviewOffre()
            {
                InitializeComponent();
            }
     
            public PreviewOffre(int IDClient)
            {
                _IDClient = IDClient;
            }
     
            private void PreviewOffre_Load(object sender, EventArgs e)
            {
                Datasets.DataSet_OffresTableAdapters.ClientsTableAdapter ta = new Box_Product.Datasets.DataSet_OffresTableAdapters.ClientsTableAdapter();
                Datasets.DataSet_Offres.ClientsDataTable dt = new Box_Product.Datasets.DataSet_Offres.ClientsDataTable();
                ta.Fill(dt, _IDClient);
                this.reportViewer1.LocalReport.DataSources.Add(new ReportDataSource("DataSet_Offres_Clients",ClientsBindingSource));
                this.reportViewer1.RefreshReport();
            }
        }
    }
    Et déjà, quand je clique sur mon bouton qui permet d'ouvrir cette nouvelle fenêtre, il ouvre une fenêtre fille vide aux dimensions assez réduites.
    Voici mon code d'appel de cette fenêtre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Forms.PreviewOffre fen_preview_offre = new Box_Product.Forms.PreviewOffre(int.Parse(lbl_idclient.Text));
    fen_preview_offre.Show();

  17. #17
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut
    Hello,

    voilà, j'ai pu m'arranger pour utiliser un dataset depuis ma source de données (plutôt qu'un dataset que je créais en code).
    Maintenant, je peux remplir mon dataadapter avec un paramètre, et du coup, je peux m'en servir pour générer mon rapport.
    Maintenant, j'ai un autre souci : j'ai inséré une table dans mon rapport, dans la partie "corps".
    Dans cette table, j'ai glissé (depuis mon panel source de données) les champs de ma datatable de mon dataset que j'utilise.
    Lorsque je génére mon rapport, je vois uniquement le titre de mes colonnes, mais je ne vois pas le contenu de ma table...

    Que dois-je faire?
    Mes datasources sont corrects, les éléments de propriété de ma table de rapport sont corrects également.

    Merci d'avance pour votre aide....

  18. #18
    Membre confirmé
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Par défaut
    J'ai trouvé mon erreur.
    J'avais juste mal paramétré mon Dataset.
    Maintenant, ça fonctionne.
    Donc, problèm résolu.

    A bientôt

  19. #19
    Membre éclairé
    Homme Profil pro
    Designer API
    Inscrit en
    Octobre 2003
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Designer API

    Informations forums :
    Inscription : Octobre 2003
    Messages : 280
    Par défaut
    Je n'arrive pas à mettre le composant reportViewer dans ma boite a outils
    Et comment faire après pour créer et afficher un report ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. interface graphique avec visual C++ express 2005
    Par tiboo dans le forum Visual C++
    Réponses: 2
    Dernier message: 18/08/2006, 09h10
  2. programmation Windows avec visual C++ express 2005
    Par goléador dans le forum MFC
    Réponses: 7
    Dernier message: 08/04/2006, 23h49
  3. Problème d'exécution avec Visual C++ Express
    Par LaseLiep dans le forum MFC
    Réponses: 4
    Dernier message: 03/04/2006, 10h16
  4. configurer le sdk directx avec visual c# express 2005
    Par khodi03 dans le forum DirectX
    Réponses: 1
    Dernier message: 22/01/2006, 11h17
  5. Faire du telnet avec visual c++ express
    Par jean tof dans le forum MFC
    Réponses: 2
    Dernier message: 10/01/2006, 14h11

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