DataTable im ReportViewer anzeigen

20/12/2009 - 15:48 von Uwe Weih | Report spam
Hallo,

wenn ich eigene Abfragen an eine Datenbank richte (liegen dort nicht als
View vor!) und das Ergebnis dann als DataTable vorliegen habe, sehe ich
das richtig das ich zum Erstellen eines Reports (.rdlc) so vorgehen muss?

==1.) Der Projektmappe ein DataSet (z.B. DataSetDatenbank.xsd) hinzufügen.
Über den Designer die betreffenden DataTables anlegen, die man in dem
oder den Reports ausgeben möchte. Im Kopf des DataTables den Namen
eintragen und über rechte Maustaste und Hinzufügen die Spalten
hinzufügen. Im Eigenschaftsfenster den DataType anpassen nicht vergessen.

2.) Der Projektmappe ein Bericht (Reportxxxxx.rdlc) hinzufügen.
Eventuell diesen mit Hilfe des Assistenten erstellen und bei der Frage
nach der Datenquelle die oben erstellte DataTable im DataSet auswàhlen.

3.) Der Projektmappe ein Forumlar (frmReportAnzeigen.vb) hinzufügen.
Dort hinein das Steuerelement "MicrosoftReportViewer" einfügen und im
übergeordneten Container (also der Form) andocken. Den Report (.rdlc) im
Viewer auswàhlen.

Dem Formular über den Konstruktur die DataTable zuweisen und dann mit
dem ReportViewer verbinden und den Report anzeigen:

Me.ReportViewer1.LocalReport.DataSources(0).Value = _dt
Me.ReportViewer1.RefreshReport()
==
Ohne Punkt 1 wohl keine Möglichkeit im Report-Designer die Spalten
eintragen zu können?

Wie kann ich spàter im Formular mit dem Steuerelement ReportViewer
verschiedene Reports (Report1.rdlc, Report2.rdlc u.s.w.) ansehen? Um das
oben mit DataSource(0).value nutzen zu können, musste ich im Assistent
einen der angelegten Reports (.rdlc) auswàhlen.

Über Google kam ich auf:

'ReportViewer1.LocalReport.DataSources.Clear()
'ReportViewer1.LocalReport.DataSources.Add(New
Microsoft.Reporting.WinForms.ReportDataSource("xyz.rdlc", _dt))

Aber ich habe die Reports ohnehin in der EXE einkompiliert (glaube ich
jedenfalls, wenn ich mir .\binelease\ ansehe und dort keine .rdlc
vorfinde.


Ciao

Uwe

NS: Sehe ich den Schnee draußen wird mir übel... :-( Wenn jemand im
Sommer das über Google findet, ja, es gibt eine Winterzeit. =:-}
 

Lesen sie die antworten

#1 Uwe Weih
21/12/2009 - 08:51 | Warnen spam
Hallo,

Uwe Weih schrieb:

Wie kann ich spàter im Formular mit dem Steuerelement ReportViewer
verschiedene Reports (Report1.rdlc, Report2.rdlc u.s.w.) ansehen?



Mittlerweile habe ich herausgefunden das dies über
"ReportEmbeddedResource" funktioniert und man vor dem Namen der
Reportdatei auch den Namen des Programmes (oder des Namespaces?) setzen
muss.

Ich mache das jetzt so:

ReportViewer1.LocalReport.DataSources.Clear()

Dim rds As New ReportDataSource("DataSetDatenbank_XXX")
rds.Value = _dt
ReportViewer1.LocalReport.DataSources.Add(rds)

ReportViewer1.LocalReport.ReportEmbeddedResource =
Application.ProductName + ".XXX.rdlc"

Dim prms() As ReportParameter = {New ReportParameter("Ueberschrift",
_ReportUeberschrift)}
ReportViewer1.LocalReport.SetParameters(prms)

Me.ReportViewer1.RefreshReport()

Ciao

Uwe Weih

Ähnliche fragen