DataSource mittels Reflection laden

mschlegel

Erfahrenes Mitglied
Nachdem ich das Problem mit meinen Reports aus einer anderen Assembly lösen konnte, habe ich jetzt das Problem dass ich noch die DataSources benötige.

Wenn ich es auf dem selben Weg versuche wie mit den Reports (embedded resource und mittels asm.GetManifestResourceStream(resourceName) laden) erhalte ich ja nur einen Stream mit dem ich dann nichts anfangen kann.

Dann habe ich irgendwie versucht dieses DataSource über Activator.CreateInstance.. zu laden, aber das wollte mir auch nicht so wirklich gelingen.

Daher meine Frage: wie erhalte ich eine Instanz meines ReportDataSources (name.rds) aus einer Assembly mittels Reflection?
 
Ich bastele gerade einen, nennen wir ihn mal so, "dynamischen ReportViewer". Anstatt über den Browser werden die Berichte in einem ReportViewerControl gerendert.
Für die serverseitigen Berichte ist das kein Problem, die werden ja nur an einer anderen Stelle präsentiert. Die lokalen Berichte wiederum sollen direkt aus einem Verzeichnis "reports" des Viewers geladen werden (die Report-XML-Dateien und DataSources werden in eine Class-Library gepackt und einfach in dieses Verzeichnis kopiert)

Bei den Berichten kann man eigentlich zwischen einem embedded und einem shared DataSource wählen, aber wenn ich in folgendem Code die Zeile 4 weglasse funktioniert es nicht, no DataSource found, obwohl diese Information in der rdl steht die korrekt geladen wird.
C#:
reportControl.Reset();
reportControl.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local;	
reportControl.LocalReport.LoadReportDefinition(reportData.ReportDataStream);
reportControl.LocalReport.DataSources.Add(// hier brauch ich die DataSources
reportControl.Refresh();
Aus diesem Grund will ich ein DataSource (oder mehr wenn nötig) mittels Reflection aus dieser Assembly, welche einfach im reports-Ordner liegt, laden.
 
Also ohne ein explizietes DataSource (welches ich dann in ein ReportDataSource packen kann) scheint es nicht zu funktionieren. Ich muss also unbedingt irgendwie ein DataSource aus dieser XML-Datei erstellen (programatisch).

Ich komm da grad echt nicht vorwärts. Hat jemand irgendwelche Vorschläge?

EDIT: ok, laut MSND-Forum funktioniert das mit dem DS nur bei der Server-Variante. Lokale Reports muessen die Daten selbst mittels DataSet beschaffen.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück