Framework

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.