2008-10-02 5 views
12

Comment charger dynamiquement un nouveau rapport à partir d'une ressource incorporée? J'ai créé un projet de rapport qui contient un rapport en tant que ressource intégrée. J'ai ajouté un deuxième fichier de rapport et d'utiliser le code suivant pour changer les rapports:Charger dynamiquement un rapport de ressources incorporées à l'aide de Microsoft.Reporting.WinForms

this.reportViewer1.LocalReport.ReportEmbeddedResource = "ReportsApplication2.Report2.rdlc"; 
this.reportViewer1.LocalReport.Refresh(); 
this.reportViewer1.RefreshReport(); 

Lorsque ce code est exécuté, le rapport original reste visible dans l'afficheur du rapport.

J'ai également essayé d'utiliser

LocalReport.LoadReportDefinition 

mais eu le même résultat.

Répondre

9

La réponse: vous devez appeler

<ReportViewer>.Reset(); 

avant de changer la valeur de ReportEmbeddedResource ou d'appeler LoadReportDefinition.

Une fois que vous le faites, vous aurez également appeler

<ReportViewer>.LocalReport.DataSources.Add(...); 

pour rétablir les sources de données.

+0

Je veux juste ajouter un commentaire disant que vous pouvez rencontrer des erreurs avec des paramètres qui ne sont pas définis, sauf si vous faites aussi 'Reset '. – test

Questions connexes