Hallo zusammen,
ich war grad etwas entäuscht als ich mich heute mit dem Thema Reporting beschäftigen wollte für ein neues Projekt.
Ich hab mir den Microsoft Report angeschaut und den Crystal Report.
Beide scheinen ja nur im zusammenhang mit Datenbank oder XML zu funktionieren, hab ich das so richtig verstanden?
Ich hatte eigentlich eher soetwas gesucht wo man Objekte frei auf dem "blatt papier" positionieren kann.
zB. wenn ich nen Array mit Daten habe und möchte die in einer Tabelle an der position xy angezeigt haben auf dem Blatt Papier, ich nur eine Methode dazu ausführen muss und tada.
Ist das wirklich alles so umständlich gemacht oder kennt jemand ne Klasse die das ganze schonmal versucht hat zuvereinfachen?
Grüße
Inu
Hallo Nu,
Beide scheinen ja nur im zusammenhang mit Datenbank oder XML zu funktionieren, hab ich das so richtig verstanden?
Nein, hast Du nicht.
Beide (und auch andere Reportgeneratoren) können Daten direkt aus einem Dataset anzeigen, also direkt auf dem Speicher.
Crystal kann Datasets aus einer XML-Datei lesen, Rep.Serv. kann nur XML-Queries verstehen.
Andere In-Memory-Daten wie Array sollten auch gehen, hab ich aber noch nicht probiert.
Ich hatte eigentlich eher soetwas gesucht wo man Objekte frei auf dem "blatt papier" positionieren kann. zB. wenn ich nen Array mit Daten habe und möchte die in einer Tabelle an der position xy angezeigt haben auf dem Blatt Papier, ich nur eine Methode dazu ausführen muss und tada.
Genauso etwas macht ein Report Generator. Schau Dir dazu mal www.gotreportviewer.com an.
Grüße Bernd
Beide scheinen ja nur im zusammenhang mit Datenbank oder XML zu funktionieren, hab ich das so richtig verstanden?
Nein. sry. Also zumindest bei Crystal Reports kannst du alles aus dem Code setzen. Komplett ohne Datenbank.
Ich hatte eigentlich eher soetwas gesucht wo man Objekte frei auf dem "blatt papier" positionieren kann.
zB. wenn ich nen Array mit Daten habe und möchte die in einer Tabelle an der position xy angezeigt haben auf dem Blatt Papier, ich nur eine Methode dazu ausführen muss und tada.
Also das Layout verändern ist schon ein wenig schwieriger aber prinzipiell kannst du deine anforderung zumindest mit Crystal reports umsetzen.
Alternativ kannst du auch HTML generieren und einen entsprechenden Layouter verwenden, der dann ein Bild Generiert, das du dann ausdrucken kannst.
edit: man bist du fix BerndFfm 😃
Hallo,
der Microsoft Report kann auch mit IEnumerable "gefüttert" werden.
Für das freie Positionieren wirds ein wenig aufwändiger, aber da wäre XSLT ein Möglichkeit und dann mit XSL:FO nach PDF konvertieren und drucken.
mfG Gü
@BerndFfm
Naja ein Dataset is ja im prinzip nur ne Kopie einer Datenbank, egal ob die daten nur aus einern DB kommen oder vom Projekt direkt ins DataSet geschrieben wird.
www.gotreportviewer.com hab ich mir auch schon einige male angesehen, aber bezüglich nen anderen Projekts.
@JAck30lena
hast du mir vll nen Link wo das etwas erklärt wird bezüglich gestalten direkt mit code? Find irgendwie ständig nur Sachen in zusammenhang einer Datenbank.
@gfoidl
??? Bahnhof 😄
Naja ein Dataset is ja im prinzip nur ne Kopie einer Datenbank,
komplett Falsch. Eine Datenbank fühlt sich nur so an wie ein DataSet. Prinzipiell ist das aber nichts schlechtes.
hast du mir vll nen Link wo das etwas erklärt wird bezüglich gestalten direkt mit code?
SelfHtml? Nein im ernst... wie man einen HtmlString zusammenbaut sollte dir doch klar sein.
Einen Layouter, der dir daraus ein Bild malt, kannst du dir von http://www.CodeProject.com saugen.
@JAck30lena
meinte das hier - der teil mit HTML is ungeeignet für mein Vorhaben.
Nein. sry. Also zumindest bei Crystal Reports kannst du alles aus dem Code setzen. Komplett ohne Datenbank.
mh ja wieder Datenbank bzw DataSet... schade sowas möcht ich eig nicht.
Glaub in Richtung Reporting gibts noch viel Entwicklunsbedarf.
Dachte mehr an eine Klasse mit z.B. folgender Methode:
reportClass.CreateTable(report.rpt, DatenArray, position);
Aber so wies scheint gibts sowas definitiv nicht.
Grüße
Hallo,
Falls das ganze was kosten darf kann ich dir nur den ReportDesigner von DevExpress empfehlen. Es wird eine Trial angeboten.
Folgende Punkte finde ich an DevExpress sehr gut:
Reports Komponenten selber in C# (ein Report = c# Klasse)
Bericht Customination auch im Programm für Endkunde auszulagern
Als Datenquelle Dataset oder Objektliste möglich
Viele Exportfunktionen (html, Pdf, Word, Excel)
Ein Hauptgrund war zum einen das die Reports selber in C# sind. Hier kann man auch mit Vererbungstechnicken arbeiten. Zum anderen das auch Objektlisten als Datenquellen hinterlegt werden können. Hab mich nie mit den Datasets von Microsoft angefreundet.
Die Reporting Komponenten sind nur ein kleiner Teil dieser Umfangreichen Sammlung. Die ganze Sammlung ist einfach nur genial ... und vereinfacht vieles 😃
Die Reporting Komponenten sind Bestandteil der VisualStudio Controls WinForms
Gruß Sascha
mh ja wieder Datenbank bzw DataSet...
das sind 2 komplett unterschiedliche dinge!
Aber so wies scheint gibts sowas definitiv nicht.
wo liegt das problem beim dataset?!? bzw warum versuchst du nicht mal den report direkt an ein array zu binden? und die position kannst du auch variabel machen... daher scheint dein urteil nur allzu voreilig.
@Inuyasha2004:
Welchen teil von
Zitat von: gfoidl
der Microsoft Report kann auch mit IEnumerable "gefüttert" werden. hast Du nicht verstanden?
Natürlich kannst du da jede Auflistung hineingeben die du auch zum binden nehmen kannst.