Einstellen der Datenquelle für einen lokalen Bericht - .NET & Report Viewer

8

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?

    
user559142 10.01.2012, 11:41
quelle

2 Antworten

16

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:

%Vor%

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 :

%Vor%

Beachten Sie, dass die Ressourcenzeichenfolge den vollständig qualifizierten Namen der Ressource (einschließlich Assembly) enthalten muss.

    
StuartLC 10.01.2012 11:59
quelle
7

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%     
Anthony Griggs 26.04.2014 21:51
quelle