2008-10-02 6 views
12

Wie lädt man dynamisch einen neuen Bericht von einer eingebetteten Ressource? Ich habe ein Berichtsprojekt erstellt, das einen Bericht als eingebettete Ressource enthält. Ich habe eine zweite Report-Datei und verwenden Sie den folgenden Code Berichte wechseln:Dynamisch Laden eingebetteter Ressourcenbericht Verwenden von Microsoft.Reporting.WinForms

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

Wenn dieser Code ausgeführt wird, der ursprüngliche Bericht im Report Viewer sichtbar bleibt.

Ich habe auch versucht

LocalReport.LoadReportDefinition 

mit, hatte aber das gleiche Ergebnis.

Antwort

9

Die Antwort: Sie haben

<ReportViewer>.Reset(); 

vor der Änderung des Wertes von ReportEmbeddedResource anrufen oder LoadReportDefinition aufrufen.

Nachdem Sie dies tun, werden Sie auch anrufen müssen

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

auf die Datenquellen wieder herzustellen.

+0

Ich möchte nur einen Kommentar hinzufügen, der besagt, dass Fehler auftreten können, bei denen Parameter nicht definiert sind, es sei denn, Sie führen auch dieses 'Reset' durch. – test