Wie kann ich load datatable als ReportDataSource?
Ich versuche zu tun, so etwas wie:
this.reportViewer.LocalReport.DataSources.Clear();
DataTable dt = new DataTable();
dt = this.inputValuesTableAdapter.GetData();
Microsoft.Reporting.WinForms.ReportDataSource rprtDTSource = new Microsoft.Reporting.WinForms.ReportDataSource();
rprtDTSource = dt; //this line generates exception
//this.reportViewer.LocalReport.DataSources.Add(rprtDTSource);
this.reportViewer.RefreshReport();
Wie kann ich load datatable als ReportDataSource?
Den aktuellen code erzeugt:
"Kann nicht implizit konvertiert Typ 'System.Daten.DataTable' zu 'Microsoft.Die Berichterstattung.WinForms.ReportDataSource' "
- es ist nur c# reporting..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie nicht initialisieren ReportDataSouce richtig. Geben Sie diesem einen Versuch:
Außerdem müssen Sie möglicherweise ändern Sie den ersten parameter, um die ReportDataSource Konstruktor legen Sie den Namen der Datenquelle ein, dass Ihr Bericht erwartet.
Ich glaube, dass madisonw die Antwort oben ist richtig, aber Luke ' s Kommentar über die Verwendung des DataSet-Namen als namens .rdlc report-Datei, für die Datasource fest.Name-Eigenschaft, vielleicht muss betont werden. Das war für mich der wichtigste bugaboo gehalten, dass meine app funktioniert. Es kann gefunden werden, durch öffnen der .rdlc-Datei als eine XML-Datei mit dem "Öffnen mit..." - Befehl. Der Standard ist denke ich einfach "DataSet1":
Einen anderen Fehler, den ich machte, war nicht inklusive .rdlc-Datei in der Debug - (oder Freigabe) Ordner. Dies konnte behoben werden, indem Sie mit der rechten Maustaste auf die .rdlc-Datei im Projektmappen-Explorer, dann Eigenschaften, dann Einstellung "Copy to Output Directory" auf "Copy Always".
Sobald diese beiden Teile wurden korrigiert mein Programm gearbeitet, das die Verwendung ReportViewer in einer console app generiert eine PDF-Datei mit und ohne Schnittstelle.
Vorstellen, die DataSources block des RDLC-Datei ist wie folgt:
< Datensätze >
< DataSet Name="DataSet1_Lot" >
dann die relative code sollte sein:
string name = "DataSet1_Lot"; //dies muß auch in der RDLC-Datei
DataTable dt = new DataTable();
Microsoft.Die Berichterstattung.WinForms.ReportDataSource rprtDTSource = new Microsoft.Die Berichterstattung.WinForms.ReportDataSource(name, dt);