Migration CrystalReports zu FastReport

Aus GEVITAS
Wechseln zu: Navigation, Suche

1 Allgemeines

FastReport kann in GEVITAS-Programmen zur Ausgabe von Daten verwendet werden (ab 10/2015), alternativ zu CrystalReports.

Dieser Artikel beschreibt, wie Sie von CrystalReports auf FastReport umsteigen können.

1.1 Reports konvertieren?

Es gibt keine Möglichkeit, Reports von CrystalReports nach FastReport zu konvertieren. Reports müssen neu erstellt werden.

Es gibt auf dem Markt einige Konverter, die in unseren Tests jedoch alle mehr oder weniger versagt haben. Vor allem komplexe Reports mit Formeln, Unterberichten usw. konnten nicht konvertiert werden. Der Aufwand, diese "Rumpf"-Reports vernünftig und zukunftsweisend zum Laufen zu bringen, ist unverhältnismäßig groß.

2 Vergleich CrystalReports zu FastReport

In diesem Artikel werden die Unterschiede zwischen den beiden Produkten beschrieben.

3 Bestandsaufnahme =

Als erster Schritt ist es empfehlenswert, alle vorhanden Reports (Formulare) darauf zu untersuchen, ob/welche überhaupt noch benutzt werden. Erfahrungsgemäß sammeln sich in einem Unternehmen im Laufe der Zeit Reports an, die nicht mehr benutzt werden.

Danach sollte man sich überlegen, warum es diese unterschiedlichen Reports überhaupt gibt. Ziel sollte es sein, mit möglichst wenig Reports auszukommen, im Idealfall mit nur einem einzigen!

3.1 Angebot, Auftrag, Faktura, Bestellung: Report-Varianten über Auftragskennzeichen

Dazu gibt es z.B. in REFLEX die sog. Auftragskennzeichen, mit denen die Ausgabe eines Reports gesteuert werden kann.

3.2 Verschiedene Sprachen

Mehrsprachige Reports zu erstellen, bedeutet natürlich einen zusätzlichen Aufwand. Dabei gibt es im Wesentlichen zwei Probleme zu lösen:

3.2.1 Artikel-Texte

Das ist das geringste Problem, weil das Programm automatisch den zugehörigen Artikel-Text in der ausgewählten Sprache des Auftrags zur Verfügung stellt. Dazu gibt es in der Tabelle Positionen das Feld TextPosition. In diesem Feld steht der Artikel-Text in der ausgewählten Sprache.


3.2.2 Feste Texte

Feste Texte sind Felder für Überschriften, Feld-Titel usw. Das stellt einen erheblichen Aufwand dar! Die einzig sinnvolle Möglichkeit, dies zu lösen, ist es Code (in CrystalReports: Formeln) zu schreiben.

Dazu fügen Sie ein Textfeld in den Report ein. Dies bekommt anfangs den Namen "MemoXX", wobei XX einfach eine Fortlaufende Nummer ist.

In der Eigenschaft Name geben Sie dem Feld nun einen aussagekräftigen Namen, z.B. "MemoNummer", wenn es um eine Auftragsnummer, Bestellnummer usw. geht.

Nun schalten Sie auf das Register Ereignisse um und Doppelklicken auf OnBeforePrint. Es öffnet sich er Code-Editor, in dem Sie nun Befehle eingeben können, die z.B. den Text festlegen, der ausgegeben werden soll.

  • Das EreignisOnBeforePrint wird von FastReport aufgerufen, bevor das Feld ausgegeben wird! In diesem Ereignis können Sie Code schreiben, der z.B. die Sichtbarkeit (Visible) auf Wahr (True) oder Falsch (False) setzen können. Sie können aber auch den Text festlegen, der ausgegeben werden soll.

Nun geben Sie den Code ein, der festlegt, was bei welcher Sprache ausgegeben werden soll. Beispiel:

procedure MemoNummerOnBeforePrint(Sender: TfrxComponent);
begin
  if <AuftragsKopf."Sprache"> = 'E' then
       MemoNummer.Memo.Text := 'Number:'
  else
  if <AuftragsKopf."Sprache"> = 'F' then
       MemoNummer.Memo.Text := 'Numero:'
  else
       MemoNummer.Memo.Text := 'Nummer:';  
end;

In diesem Beispiel wird der der "Number" ausgegeben, wenn das Sprachkennzeichen auf "E" steht. Wenn nicht ("else"), wird "Numero" ausgegeben, wenn das Sprachkennzeichen auf "F" steht. Wenn nicht ("else"), wird "Nummer" ausgegeben.

4 Links