Ich habe ein benutzerdefiniertes Steuerelement erstellt (ein Windows-Formular mit einer Berichtsanzeige). Ich habe den folgenden Code, um einen lokalen Bericht zu laden:
Enthalten in der CustomReportViewer-Klasse
%Vor%Ich rufe das mit:
%Vor%Dies funktioniert einwandfrei und es erscheint ein Windows-Formular mit dem Report Viewer-Steuerelement , aber Ich erhalte die folgende Meldung:
%Vor%Ich bin mir nicht sicher, wie ich die Datenquelle einrichten soll. Die benötigten Daten werden in einer entfernten Datenbank gespeichert ... Was muss ich tun, um diese Verbindung herzustellen?
Sie müssen ein erstellen ReportDataSource , und legen Sie die Eigenschaft Value
fest - z DataTable
und IEnumerable
s sind unterstützte Quellen
Als Beispiel und unter der Annahme, dass eine Methode existiert, um ein DataSet zurückzugeben , mit einem einzigen DataTable
, der den von Ihrem Bericht benötigten Spalten entspricht:
Beachten Sie, dass es oft einfacher ist, den RDLC in Ihre Assembly einzubetten, anstatt separate RDLC-Dateien zu behalten. Wählen Sie dazu Build Action
auf der RDLC als Embedded Resource
und anschließend die Eigenschaft ReportEmbeddedResource
:
Beachten Sie, dass die Ressourcenzeichenfolge den vollständig qualifizierten Namen der Ressource (einschließlich Assembly) enthalten muss.
Der Schlüssel für mich war wie von StuartLC wie oben beantwortet ... mit weiterer Klarstellung, als er sagte "Muss mit der DataSource im RDLC übereinstimmen" .. es stellte sich tatsächlich heraus, dass der "DataSetName" Elementwert re : <DataSetName>DataSet1</DataSetName>
Ich ging hin und her, weil es "DataSource" heißt, also habe ich den Namen des DataSource-Elements verwendet, aber offensichtlich bedeutet das in der rdl- und rdlc-Datei den DataSetName. Das hier zu beachten, ist der Code, wie er von Stuart oben mit meinem eigenen übernommen wurde. Notieren Sie den DataSetName-Elementwert:
%Vor%Tags und Links c# visual-studio-2010 asp.net visual-studio report