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# Discussion :

Generer un rapport a partir d'un form


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut Generer un rapport a partir d'un form
    Bonjour, j'ai besoin d'aide concernant un sujet :

    mon objectif est d'afficher un rapport quand je clique sur un boutton générer

    pour ce fait : ma solution contient deux projet Editions et rapport

    Editions contient mon formulaire d'insertion avec un boutton génerer
    quand je clique sur ce bouton mon rapport doit etre visible

    rapport contient un formulaire frmrapport contenant un report viewer et le rapport rdlc
    le rapport contient un dataset avec un parametre num


    dans le bouton generer j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ReportsGEP.frmRapport ba = new ReportsGEP.frmRapport(txtNum.Text);
                ba.UseWaitCursor = true;
                ba.Show();
    mon frmrapport :
    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
     private String m_numAO;
     
            public frmRapport()
            {
                InitializeComponent();
            }
     
     
            public frmRapport(String numAO)
            {
                m_numAO = numAO;
            }
     
            private void frmRapport_Load(object sender, EventArgs e)
            {
     
                // TODO: cette ligne de code charge les données dans la table 'x_ServicesDataSet.Appelsdoffre'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
                this.AppelsdoffreTableAdapter.Fill(this.x_ServicesDataSet.Appelsdoffre);
                this.reportViewer1.RefreshReport();
            }
    mais quand je clique sur le bouton generer j'ai un un form que je ne sais pas d'ou il vient et il est vide

    ???

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 39
    Points : 22
    Points
    22
    Par défaut
    Bonjour,

    Essaye d'ajouter

    public frmRapport(String numAO)
    {
    InitializeComponent();
    m_numAO = numAO;
    }

    dans le constructeur de ta form

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    La réponse de leonhart77 devrait fonctionner.
    En plus rigoureux (ou plus jolie ! ) =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public frmRapport(String numAO) : this()
            {
                m_numAO = numAO;
            }
    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  4. #4
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    MAINTENANT il me dit :
    "la source du rapport n'est pas spécifiée"

    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
    private void frmRapport_Load(object sender, EventArgs e)
            {
                // TODO: cette ligne de code charge les données dans la table 'x_ServicesDataSet.Appelsdoffre'. Vous pouvez la déplacer ou la supprimer selon vos besoins.
                this.AppelsdoffreTableAdapter.Fill(this.x_ServicesDataSet.Appelsdoffre);
     
                string NumAO = Convert.ToString(m_numAO);
     
                System.Net.NetworkCredential nt = new System.Net.NetworkCredential("d", "1111");
                reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = nt;
     
                Microsoft.Reporting.WinForms.ReportParameter[] RptParameters =
                    new Microsoft.Reporting.WinForms.ReportParameter[1];
                RptParameters[0] =
                    new Microsoft.Reporting.WinForms.ReportParameter("numAO", NumAO);
     
     
                this.reportViewer1.ServerReport.SetParameters(RptParameters);
                this.reportViewer1.RefreshReport();
            }

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Bonjour,

    Où sont les report (*.rdlc) ?
    Ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.Net.NetworkCredential nt = new System.Net.NetworkCredential("d", "1111");
    reportViewer1.ServerReport.ReportServerCredentials.NetworkCredentials = nt;
    supposent qu'ils sont sur un serveur ! est-ce le cas ?

    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  6. #6
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    NON il ne sont pas sur un serveur

    j'ai crée un nouveau projet reporting => application report

    malheureusement j'ai deja le business intelligence mais je ne trouve pas un projet reportserver

    parce que mon but c'est d'acceder a mon application depuis des postes client

    merci de m'aider ?

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Ok, ce sera plus simple en local. Tu peux donc supprimer ces 2 lignes.

    Pour spécifier ton report :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    viewer.LocalReport.ReportEmbeddedResource = "MonProjet.MonNameSpace.[...].LeReport.rdlc";
    Je vois que tu passes un paramètre à ton report, mais c'est la seule donnée dont il a besoin ? tu n'utilises pas de DataSource ?

    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

  8. #8
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    maintenant ca marche j'ai réussi a afficher mon rapport pré editer

    ce que je veux maintenant c'est quand je passe un parametre a mon rapport, il le cherche a l'aide du dataset puis recupere toutes les données que j'airai besoin pour afficher mon rapport ?

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Points : 1 511
    Points
    1 511
    Par défaut
    Pour passer des données à un report 2 moyens :

    • Les paramètres : à privilégier pour les informations 'uniques', par exemple un nom, une date, un id ...
    • Les DataSources : à utiliser lorsque les données sont sous forme de liste, par ex une liste de contact, un planning, une liste d'article...


    Dans ton premier poste tu parles d'un dataset, je présume donc que l'alimentation principale de ton report est ce dataset, pour le remplir =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    viewer.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("LeNomDeTonDataSet", UnIEnumerableDesObjetsAAfficherDuMemeTypeQueTonDataSet ));
    Pour les paramètres je pense que le code que tu as doit fonctionner.

    J@ck.
    Pas de réponse par MP, merci.

    Penser au ça fait plaisir

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/04/2015, 15h46
  2. execuet un rapport a partir de forms
    Par hope_high dans le forum Forms
    Réponses: 1
    Dernier message: 22/01/2010, 10h41
  3. Impression d'un rapport à partir d'Oracle Form
    Par agneice dans le forum Oracle
    Réponses: 5
    Dernier message: 06/01/2006, 18h41
  4. [C#] Comment générer le code à partir du WSDL ?
    Par Piolet dans le forum Services Web
    Réponses: 2
    Dernier message: 27/08/2004, 13h30
  5. Réponses: 4
    Dernier message: 26/08/2004, 08h01

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