Xtra-Reports vs. Crystal-Reports
BY KARL HAJEK
Warum ich mich für XtraReports entscheiden sollte
MD-Premium.NET wird bekanntlicher Weise mit 2 Reportingsystemen ausgeliefert, dem altbewährten Crystal Reports und dem eher neueren XtraReports.
Viele unserer Kunden und Partner fragen uns immer wieder, wieso wir alle neuen Reports mit XtraReports realisieren und nicht mit Crystal, wo sie sich ja so gut damit auskennen.
Das bedarf immer einiger Erklärung und dieser Blog fasst die wichtigsten Dinge zusammen:
- Die Installation
Crystal benötigt eine Runtime und diese muss auf jedem Client installiert und gewartet werden. Was das bei einer großen Useranzahl bedeuet, brauche ich glaube ich nicht erwähnen.
XtraReports wird embedded geliefert und das Update auf neue Versionen erfolgt mittels Standardupdate von MD-Premium.NET.
- Die Datenbankverbindung
Crystal verwendet für das Ausführen eines Berichts eine eigene Datenbankverbindung, die die Verwendung von temporären Packagevariablen unmöglich macht.
Diese separate Verbindung benötigt zusätzliche Ressourcen, was bei einer größeren Useranzahl nicht zu vernachlässigen ist.
- RTF- und HTML-Texte
Crystal kann nur RTF-Texte in formatierter Form korrekt darstellen und in dem entsprechenden Feld dürfen dann wirklich nur RTF-Texte vorkommen.
Bei HTML ist Crystal nicht wirklich zu gebrauchen, da hier die Formatierung verloren geht. Ich will gar nicht vom dem Szenario sprechen, wo es Felder in der Datenbank gibt,
die sowohl RTF- als auch HTML-Text beinhalten können - das wird von Crystal in keiner Weise unterstützt. Auch das Einbinden von Texten, die sich in externen Dokumenten
befinden, ist nicht möglich. Bei XtraReports ist das alles kein Problem, RTF- und HTML-Texte werden automatisch erkannt und auch korrekt formatiert dargestellt. Auch das
Einbinden von externen Dokumenten ist möglich, was z.B. in Verbindung mit unserer Dokumentenrevision
einen großen Vorteil bringt. Man legt z.B. die AGBs in einem RTF-Dokument in der Dokumentenrevision ab und im XtraReport wird dieses Dokument im Select über die Funktion
-- get from document revision
select Md_Dr.GetActiveBlob(b.Klient_ID, DECODE(b.Sprach_ID,'DT',54,54)) AS DOC_FOOTER
from ...
referenziert. Gibt es eine neue Version des Dokuments in der Dokumentenrevision und dieses wird genehmigt, sind alle AGBs auf sämtlichen Berichten automatisch korrigiert.
Das erspart in der weiteren Wartung eine Menge Arbeit und ist in Crystal so nicht umsetzbar. Werfen sie einen Blick auf ein Beispielangebot
mit referenzierten Dokumenten.
- Scriptsprache
XtraReports unterstützt Userscripts (Scriptsprache C#), mit deren Hilfe auch komplexe Anforderungen umgesetzt werden können.
Dies sind die wichtigsten Merkmale, die einen Wechsel auf XtraReports rechtfertigen. In einer neuen, HTML-basierenden Umgebung und der fehlenden Unterstützun für HTML-Texte
und Dokumentreferenzen gibt es absolut keinen Grund, Crystal für neu zu erstellende Berichte in Betracht zu ziehen.