none
Programmation de deux CrystalReportViewer dans une seule Form RRS feed

  • Question

  • bonjour, je souhaites programmer deux CrystalReportViewer dans une seule form.
    J'utilise la version de base de CrystalReport contenu dans Visual Studio 2008.
    Quelqu'un pourra t il m'aider?
    merci d'avance
    lundi 1 février 2010 12:03

Réponses

  • Bonjour,

    Concernant le ShowStopButton du ReportViewer, il est utilisé pour arrêter le rendu (pendant le chargement du rapport) et non pas pour fermer un rapport.

    Si vous n'avez qu'un ReportViewer qui vous sert à afficher plusieurs rapports locaux (rdlc), vous pouvez placer par exemple une combobox avec la liste des rapports et lorsque l'utilisateur sélectionne l'un deux :

            ReportViewer1.LocalReport.ReportEmbeddedResource = "WindowsFormsApplication1.Report1.rdlc"
            Me.ReportViewer1.RefreshReport()

    Si le rapport sélectionné n'utilise pas la même source de données que le précédent rapport alors le code différe comme ceci (par exemple) :


            BindingSource1.DataSource = TestDataSet1
            BindingSource1.DataMember = "VotreDataTable"
            Dim reportSource As New Microsoft.Reporting.WinForms.ReportDataSource()
            reportSource.Name = "NomDeLaSource"
            reportSource.Value = BindingSource1
            ReportViewer1.LocalReport.DataSources.Add(reportSource)
            ReportViewer1.LocalReport.ReportEmbeddedResource = "WindowsFormsApplication1.Report1.rdlc"
            Me.ReportViewer1.RefreshReport()

    Dans le cas où vous souhaiteriez Customiser votre ToolStrip (le menu du ReportViewer) pour simuler la fermeture de votre rapport courant et en ouvrir un nouveau, vous pouvez faire ceci :

            Dim ToolStrip As ToolStrip
            Dim ToolStripItem As ToolStripItem
            ToolStrip = DirectCast(ReportViewer1.Controls.Find("toolStrip1", True)(0), ToolStrip)
            ToolStripItem = ToolStrip.Items.Add("Close")
            AddHandler ToolStripItem.Click, AddressOf ToolStripItem_Click
    Ainsi que la procédure qui traitera l'évènement click de votre nouveau bouton dans le menu du report viewer :

        Private Sub ToolStripItem_Click(ByVal sender As Object, ByVal e As EventArgs)
            MsgBox("Je ferme mon rapport et j'en ouvre un autre")
        End Sub


    J'espère que cela vous aidera à continuer correctement votre projet.

    Cordialement,

    Mathieu




    Mathieu Francesch Sharplog Engineering
    mercredi 3 février 2010 08:18

Toutes les réponses

  • Bonjour,

    Je vous suggère d'utiliser Report Viewer.

    Vous pourrez trouver toutes les informations nécessaires ici : http://msdn.microsoft.com/fr-fr/library/ms251671(VS.80).aspx

    Rien ne vous empêche de placer 2 ReportViewer sur une Form avec des rapports liés à différentes sources de données.

    Dans le lien ci-dessus vous trouverez plusieurs procédures pas à pas qui faciliteront votre apprentissage.

    Cordialement,

    Mathieu
    Mathieu Francesch Sharplog Engineering
    lundi 1 février 2010 12:38
  • Merci, je vais essayer
    lundi 1 février 2010 13:13
  • Bonjour,

    Est-ce que vous avez réussi à réaliser votre projet en utilisant Report Viewer ou avez vous encore besoin d'aide ?

    Cordialement, 

    Mathieu 


    Mathieu Francesch Sharplog Engineering
    mardi 2 février 2010 15:03
  • oui, le showclosebutton du premier rapport n'est pas activé pour pouvoir le fermer et accèder ainsi au deuxième rapport lorsque j'utilise CrystalReport ou Showstopbutton lorsque j'utilise Report Viewer. Pouvez vous m'aider?
    mercredi 3 février 2010 05:54
  • Bonjour,

    Concernant le ShowStopButton du ReportViewer, il est utilisé pour arrêter le rendu (pendant le chargement du rapport) et non pas pour fermer un rapport.

    Si vous n'avez qu'un ReportViewer qui vous sert à afficher plusieurs rapports locaux (rdlc), vous pouvez placer par exemple une combobox avec la liste des rapports et lorsque l'utilisateur sélectionne l'un deux :

            ReportViewer1.LocalReport.ReportEmbeddedResource = "WindowsFormsApplication1.Report1.rdlc"
            Me.ReportViewer1.RefreshReport()

    Si le rapport sélectionné n'utilise pas la même source de données que le précédent rapport alors le code différe comme ceci (par exemple) :


            BindingSource1.DataSource = TestDataSet1
            BindingSource1.DataMember = "VotreDataTable"
            Dim reportSource As New Microsoft.Reporting.WinForms.ReportDataSource()
            reportSource.Name = "NomDeLaSource"
            reportSource.Value = BindingSource1
            ReportViewer1.LocalReport.DataSources.Add(reportSource)
            ReportViewer1.LocalReport.ReportEmbeddedResource = "WindowsFormsApplication1.Report1.rdlc"
            Me.ReportViewer1.RefreshReport()

    Dans le cas où vous souhaiteriez Customiser votre ToolStrip (le menu du ReportViewer) pour simuler la fermeture de votre rapport courant et en ouvrir un nouveau, vous pouvez faire ceci :

            Dim ToolStrip As ToolStrip
            Dim ToolStripItem As ToolStripItem
            ToolStrip = DirectCast(ReportViewer1.Controls.Find("toolStrip1", True)(0), ToolStrip)
            ToolStripItem = ToolStrip.Items.Add("Close")
            AddHandler ToolStripItem.Click, AddressOf ToolStripItem_Click
    Ainsi que la procédure qui traitera l'évènement click de votre nouveau bouton dans le menu du report viewer :

        Private Sub ToolStripItem_Click(ByVal sender As Object, ByVal e As EventArgs)
            MsgBox("Je ferme mon rapport et j'en ouvre un autre")
        End Sub


    J'espère que cela vous aidera à continuer correctement votre projet.

    Cordialement,

    Mathieu




    Mathieu Francesch Sharplog Engineering
    mercredi 3 février 2010 08:18
  • merci je vais essayer et je vous fais un compte rendu
    mercredi 3 février 2010 08:49
  • Bonjour,

    Est ce que vous avez réussi à concevoir vote deux rapports et votre bouton personnalisé sur votre report viewer ?

    Cordialement,

    Mathieu
    Mathieu Francesch - MCTS/MCPD - Sharplog Engineering
    samedi 6 février 2010 07:32
  • bonjour,

    puis je avoir l'equivalent en c# car y a des fonctions que je retrouve pas

    cordialement,


    Marcelle NGOUNOU

    vendredi 24 août 2012 11:14