Migration CrystalReports zu FastReport: Unterschied zwischen den Versionen

Aus GEVITAS
Wechseln zu: Navigation, Suche
(Feste Texte)
(Feste Texte)
 
(40 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 7: Zeile 7:
 
=== Reports konvertieren? ===
 
=== Reports konvertieren? ===
  
Es gibt keine Möglichkeit, Reports von CrystalReports nach FastReport zu konvertieren. Reports müssen neu erstellt werden.
+
Es gibt leider keine richtig funktionierende 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ß.
+
[[Datei:info.png|links]]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ß.
 +
 
 +
=== Standard-Reports ===
 +
 
 +
GEVITAS stellt Standard-Reports zur Verfügung, die man als Basis für die eigenen Reports verwenden kann.
 +
 
 +
'''[[REFLEX Standard-Reports|Weitere Informationen]]'''
 +
 
 +
Die '''[[Checkliste für die Anpassung der Standard-Reports]]''' führt die einzelnen Schritte auf, mit denen man einen Standard-Report an die eigenen Anforderungen anpassen kann.
 +
 
 +
Die jeweils aktuelle Versionen der Reports können Sie '''[http://www.gevitas.de/reports_und_formulare.html hier]''' downloaden.
  
 
== Vergleich CrystalReports zu FastReport ==
 
== Vergleich CrystalReports zu FastReport ==
Zeile 15: Zeile 28:
 
In '''[[Vergleich CrystalReports zu FastReport|diesem Artikel]]''' werden die Unterschiede zwischen den beiden Produkten beschrieben.
 
In '''[[Vergleich CrystalReports zu FastReport|diesem Artikel]]''' werden die Unterschiede zwischen den beiden Produkten beschrieben.
  
== Bestandsaufnahme ===
+
== 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.
 
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.
Zeile 21: Zeile 34:
 
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!
 
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!
  
=== Angebot, Auftrag, Faktura, Bestellung: Report-Varianten über Auftragskennzeichen ===
+
== Einstellungen in REFLEX ==
 +
 
 +
=== Programmparameter, Report-Versionen ===
 +
 
 +
Unter dem Menü
 +
 
 +
:Datei
 +
::⇒Admin-Optionen
 +
:::⇒Programmparameter
 +
::::⇒Firmen-Daten, Formular-Texte, Report-Einstellungen
 +
:::::⇒Registerseite "Report-Versionen"
 +
 
 +
kann man einstellen, welches Formular mit welcher Report-Version (CrystalReports© oder FastReport ©) gedruckt werden soll.
 +
 
 +
* Wenn wir "gedruckt" sagen, meinen wir damit natürlich auch die Vorschau, das mailen usw.!
 +
 
 +
Bitte beachten:
 +
 
 +
* Der Umstieg von CrystalReports auf FastReport kann '''Schritt für Schritt''' erfolgen!
 +
* Man kann '''nach und nach''' die Reports für Angebot, Auftrag, Lieferschein, Rechnung usw. umstellen.
 +
* Für die umstellende Person gibt es die Möglichkeit, '''unabhängig von den anderen Usern''' mit FastReport zu arbeiten, d.h. eine Person benutzt '''FastReport''', während die Anderen noch mit '''CrystalReports''' arbeiten! Dazu wählt man im Menü "Bearbeiten" den Punkt "Report-Version".
 +
* Erst wenn ein bestimmtes Formular '''fertig getestet''' wurde, schaltet man dieses Formular für '''alle User''' auf FastReport um!
 +
 
 +
Einzelheiten dazu finden Sie '''[[Report-Versionen einstellen|hier]]'''.
 +
 
 +
=== Programmparameter, Standard-Formular-Texte ===
 +
 
 +
Unter dem Menü
 +
 
 +
:Datei
 +
::⇒Admin-Optionen
 +
:::⇒Programmparameter
 +
::::⇒Firmen-Daten, Formular-Texte, Report-Einstellungen
 +
:::::⇒Registerseite "Standard-Formular-Texte"
 +
 
 +
kann man die Standard-Formular-Texte für die verschiedenen Formulare festlegen.
 +
 
 +
Einzelheiten dazu finden Sie '''[[FastReport: Standard-Formular-Texte|hier]]'''.
 +
 
 +
 
 +
=== Titel der Formulare ===
 +
 
 +
Die Titel der Formulare werden nicht fest im Report angegeben, sondern in [[REFLEX]] festgelegt. Dazu muss man in
 +
 
 +
:Datei
 +
::⇒Admin-Optionen
 +
:::⇒Firmen-Daten, Formular-Texte Report-Einstellungen
 +
::::⇒Register-Seite '''Formular-Titel'''
 +
 
 +
die Titel der Formulare angeben.
 +
 
 +
Einzelheiten dazu gibt es '''[[REFLEX_Programm-Parameter_Formular-Texte|hier]]'''.
 +
 
 +
 
 +
=== E-Mail-Signaturen der Formulare festlegen ===
 +
 
 +
Für die verschiedenen Formulare (Angebot, Auftrag usw.) kann man einen Text festlegen, der beim Senden einer Mail über REFLEX automatisch vorgegeben wird.
 +
 
 +
Außerdem kann man die einen Text, angeben, der unten an jeden Formular-abhängigen Text angehängt wird, überlicherweise wird hier die Floskel "Mit freundlichen Grüßen" usw. angegeben. Diese Floskel muss also in den Formular-abhängigen Texten '''nicht''' angegeben werden.
 +
 
 +
Dazu geht man auf
 +
 
 +
:Datei
 +
::⇒Admin-Optionen
 +
:::⇒Programmparameter und Einstellungen
 +
::::⇒E-Mail-Einstellungen, Telefonie, SMS
 +
:::::⇒E-Mail Signatur FastReport
 +
 
 +
 
 +
Einzelheiten dazu gibt es '''[[FastReport: E-Mail Signaturen|hier]]'''.
 +
 
 +
 
 +
 
 +
=== Auftragskennzeichen festlegen ===
 +
 
 +
Oft hat man verschiedene Reports, die sich nur in Kleinigkeiten unterscheiden. Beispielsweise soll manchmal das Firmenlogo gedruckt werden, manchmal nicht. Oder es sollen bei manchen Kunden Einzelpreise ausgegeben werden, bei anderen nicht.
 +
 
 +
Dazu gibt es z.B. in [[REFLEX]] die sog. '''[[CrystalReports:_Formular-Steuerung_durch_Auftragskennzeichen|Auftragskennzeichen]]''', mit denen die Ausgabe eines Reports gesteuert werden kann. Im Report kann man diese Felder abfragen und einzelne Objekte oder ganze Bänder ausgeben oder nicht.
 +
 
 +
Diese Felder können über die Tabelle '''Auftragskopf''' und die Felder '''Kennz1''' bis '''Kennz12''' abgerufen werden.
 +
 
 +
Man kann beispielsweise über einen Code im Report festlegen, dass das Feld '''Einzelpreis''' unterdrückt (Visible=False) werden soll, wenn das Kennzeichen '''Kennz1''' auf "Nein" steht. Dazu klickt man einfach auf das Feld im Report-Designer und wählt im Objektinspektor das Register '''Ereignisse''' an. Dann doppelklickt man auf das Ereignis '''OnBeforePrint''' und gibt diesen Code ein:
 +
 
 +
Beispiel:
 +
 
 +
procedure MemoEinzelpreisOnBeforePrint(Sender: TfrxComponent);
 +
begin
 +
  if <AuftragsKopf."Kennz1"> = 'Nein' then
 +
        MemoEinzelpreis.Visible := False
 +
  else
 +
        MemoEinzelpreis.Visible := True;
 +
end;
 +
 
 +
[[Datei:info.png|links]]Unter dem Menü '''Datei&rArr;Admin-Optionen&rArr;Programmparameter&rArr;Auftrag&rArr;Auftragskennzeichen''' kann man die Kennzeichen festlegen, mit deren Hilfe man die Varianten von Formularen steuern kann.
 +
 
 +
Weitere Einzelheiten dazu finden Sie '''[[FastReport: Steuerung des Report mit Auftragskennzeichen|hier]]'''.
 +
 
 +
=== Standard-Schrift ===
 +
 
 +
Unter
 +
 
 +
:Datei
 +
::&rArr;Admin-Optionen
 +
:::&rArr;Programmparameter und Einstellungen
 +
::::&rArr;Standard-Schrift
 +
 
 +
sollte man die Standard-Schrift einstellen, die für die formatierbaren Text im Kopf, Positionen und im Fuss angegeben kann.
 +
 
 +
 
 +
=== Recht für den Report-Designer ===
 +
 
 +
Bestimmten Benutzern/Benutzerinnen kann man das Recht einräumen, Reports zu ändern.
 +
 
 +
Unter
 +
 
 +
:Datei
 +
::&rArr;Admin-Optionen
 +
:::&rArr;Benutzerverwaltung, Zugriffssteuerung
 +
::::&rArr;Benutzer/in auswählen
 +
:::::&rArr;Registerseite '''Programmteile im Reflex'''
 +
 
 +
kann man das Recht '''ReportDesigner''' auswählen (oder im Feld '''Suchen''' eingeben) auf mind. '''Schreiben''' setzen.
 +
 
 +
[[Datei:FastReport_Zugriffsrecht_ReportDesigner.png]]
 +
 
 +
* Ein höheres Recht wird hier nicht verwendet. Auch wenn das Recht auf '''Schreiben''' steht, kann der/die Benutzer/in Inhalte von Reports löschen oder auf Windows-Ebene den ganzen Report!
 +
 
 +
== Varianten ==
  
Dazu gibt es z.B. in [[REFLEX]] die sog. '''[[CrystalReports:_Formular-Steuerung_durch_Auftragskennzeichen|Auftragskennzeichen]]''', mit denen die Ausgabe eines Reports gesteuert werden kann.
 
  
 
=== Verschiedene Sprachen ===
 
=== Verschiedene Sprachen ===
  
Mehrsprachige Reports zu erstellen, bedeutet natürlich einen zusätzlichen Aufwand. Dabei gibt es im Wesentlichen zwei Probleme zu lösen:
+
Mehrsprachige Reports zu erstellen, bedeutet natürlich einen zusätzlichen Aufwand. Dabei gibt es im Wesentlichen diese Probleme zu lösen:
  
 
==== Artikel-Texte ====
 
==== Artikel-Texte ====
Zeile 33: Zeile 172:
 
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.
 
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.
  
 +
==== Titel des Formulars ====
 +
 +
Auch das ist kein Problem, weil der Titel des Formulars in [[REFLEX]] durch das Programm festgelegt wird.
 +
 +
Dazu muss man im Report eine neue '''Variable''' mit dem Namen "Titel" anlegen.
 +
 +
:Report öffnen
 +
::&rArr;Report
 +
:::&rArr;Variablen
 +
::::&rArr;Neu
 +
 +
 +
[[Datei:FastReport_Variable_Titel.png]]
 +
 +
Das Programm ersetzt den Inhalt der Variable durch den Titel, der in '''Datei-->Admin-Optionen-->Formular-Texte''' angegeben wurde.
 +
 +
 +
Einzelheiten dazu gibt es '''[[REFLEX_Programm-Parameter_Formular-Texte|hier]]'''.
  
 
==== Feste Texte ====
 
==== Feste Texte ====
Zeile 44: Zeile 201:
 
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.
 
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 Ereignis'''OnBeforePrint''' 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.
+
[[Datei:info.png|links]]Das Ereignis'''OnBeforePrint''' 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:
 
Nun geben Sie den Code ein, der festlegt, was bei welcher Sprache ausgegeben werden soll. Beispiel:
Zeile 54: Zeile 213:
 
   else
 
   else
 
   if <AuftragsKopf."Sprache"> = 'F' then
 
   if <AuftragsKopf."Sprache"> = 'F' then
         MemoNummer.Memo.Text := 'Numero:'
+
         MemoNummer.Memo.Text := 'Nombre:'
 
   else
 
   else
 
         MemoNummer.Memo.Text := 'Nummer:';   
 
         MemoNummer.Memo.Text := 'Nummer:';   
Zeile 60: Zeile 219:
  
 
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.
 
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.
 +
 +
Übersetzt bedeutet dieser Code:
 +
 +
  Wenn <AuftragsKopf."Sprache"> = 'E' dann
 +
        Der Text des Feldes ist 'Number:'
 +
  ansonsten
 +
  Wenn <AuftragsKopf."Sprache"> = 'F' dann
 +
        Der Text des Feldes ist 'Nombre:'
 +
  ansonsten
 +
        Der Text des Feldes ist 'Nummer:'; 
 +
 +
Das ";" am Ende muss eingegeben werden.
 +
 +
Das ist natürlich ein erheblicher Aufwand. Alle festen Texte müssen so behandelt werden. Der Lohn der Arbeit ist aber ein Report, der in allen Sprachen funktioniert!
 +
 +
== Standard-Kopf- und Fußbereiche ==
 +
 +
Es gibt das Problem, dass auf jedem offiziellen Formular (=Report) ein Kopfbereich und ein Fußbereich stehen soll, der die Firmendaten beinhaltet, z.B. im Seitenkopf ein Logo und im Seitenfuß die Bankverbindung, die Firmendaten usw.
 +
 +
Das kann man über einen Basis-Report lösen, wie '''[[FastReport Vererbung/Basis-Report|hier]]''' beschrieben.
 +
 +
== Verzeichnisse ==
 +
 +
Beispiel einer Verzeichnis-Struktur:
 +
 +
{| class="wikitable" style="text-align: left;"
 +
!Verzeichnis
 +
!Beschreibung
 +
|- valign="top"
 +
|R:\Formular
 +
|Allgemeines Formular-Verzeichnis, in dem '''eigentlich keine Reports''' stehen. Die eigentlichen Reports stehen in Unterverzeichnissen (s.u.). Für den '''Basis-Report''' ist das jedoch der '''richtige Platz'''! Siehe '''[[FastReport Vererbung/Basis-Report]]'''.
 +
|- valign="top"
 +
|R:\Formular\Auftrag
 +
|Reports für Anfragen, Angebote oder Aufträge. Im Gegensatz zu CrystalReports sucht FastReport die Reports nur in diesem Verzeichnis! Grund: Es sollte nur '''ein''' Report für Anfragen, Angebote und Auftragsbestätigungen verwendet werden. In CrystalReports musste man diesen universellen Report in beiden Verzeichnissen halten, also immer eine Kopie des geänderten Reports in das andere Verzeichnis kopieren.
 +
|- valign="top"
 +
|R:\Formular\Angebot
 +
|Dieses Verzeichnis wird in FastReport nicht verwendet. Alle Reports für die Auftragsverwaltung stehen in "R:\Formular\Auftrag".
 +
|- valign="top"
 +
|R:\Formular\Bestell
 +
|Reports für Bestellungen.
 +
|- valign="top"
 +
|R:\Formular\Fertigung
 +
|Reports für die Fertigung.
 +
|- valign="top"
 +
|R:\Formular\LiefSch
 +
|Reports für den Lieferschein bei der Lagerausgabe.
 +
|- valign="top"
 +
|R:\Formular\Ladeliste
 +
|Reports für die Ladeliste aus der Auftragsverwaltung oder der Lagerausgabe.
 +
|- valign="top"
 +
|R:\Formular\KV
 +
|Reports für den Kostenvoranschlag in der Werkstatt.
 +
|- valign="top"
 +
|R:\Formular\Mahnungen
 +
|Reports für die Mahnungen.
 +
|- valign="top"
 +
|R:\Formular\Rechnung
 +
|Reports für Rechnungen und Gutschriften.
 +
|- valign="top"
 +
|R:\Formular\WAuftrag
 +
|Reports für den Werkstatt-/Reparatur-Auftrag.
 +
|}
 +
 +
 +
 +
  
 
== Links ==
 
== Links ==
 +
 +
* [[Erstellen eines Reports mit FastReport]]
 +
 +
* [[Vergleich CrystalReports zu FastReport]]
  
 
* [[FastReport Seitenformat]]
 
* [[FastReport Seitenformat]]
Zeile 77: Zeile 306:
 
* [[Ladeliste/Packliste mit FastReport]]
 
* [[Ladeliste/Packliste mit FastReport]]
  
* [http://youtu.be/VDTSGf4oIFA Video FastReport Teil 1: Allgemeines]
+
* [//youtu.be/VDTSGf4oIFA Video FastReport Teil 1: Allgemeines]
 +
 
 +
* [//youtu.be/M3keXvU3JIY Video FastReport Teil 2: Erstes Kennenlernen]
 +
 
 +
* [//youtu.be/ZEa9te2nyco Video FastReport Teil 3: Den ersten Report erstellen]
 +
 
 +
* [//youtu.be/IrpqarC0KEc Video FastReport Teil 4: Summen im Report erstellen]
 +
 
 +
* [//youtu.be/KfvRKafspnc Video FastReport Teil 5: Die Script-Sprache von FastReport]
 +
 
 +
* [//youtu.be/5krqu5oSuGU Video FastReport Teil 10: Vererbung, Erstellen und Verwenden eines Basis-Reports]
 +
 
 +
* [//youtu.be/NZdgG15WYFE Video FastReport Teil 13: Report mit StandardTexten]
 +
 
 +
* [//youtu.be/KwOBk12rTNg Video FastReport Teil 16: Ladeliste nach Lagerort und Artikeln]
 +
 
 +
* [//youtu.be/tf2W3cML7Xg Video Artikel-Report mit Bildern]]
  
* [http://youtu.be/M3keXvU3JIY Video FastReport Teil 2: Erstes Kennenlernen]
+
* [//www.fast-report.com/de/ Homepage von FastReport]
  
* [http://youtu.be/ZEa9te2nyco Video FastReport Teil 3: Den ersten Report erstellen]
 
  
* [http://youtu.be/IrpqarC0KEc Video FastReport Teil 4: Summen im Report erstellen]
 
  
* [https://youtu.be/5krqu5oSuGU Video FastReport Teil 10: Vererbung, Erstellen und Verwenden eines Basis-Reports]
 
  
 
* [https://www.fast-report.com/de/ Homepage von FastReport]
 
* [https://www.fast-report.com/de/ Homepage von FastReport]

Aktuelle Version vom 22. Januar 2019, 22:52 Uhr

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 leider keine richtig funktionierende Möglichkeit, Reports von CrystalReports nach FastReport zu konvertieren. Reports müssen neu erstellt werden.

Info.png
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ß.

1.2 Standard-Reports

GEVITAS stellt Standard-Reports zur Verfügung, die man als Basis für die eigenen Reports verwenden kann.

Weitere Informationen

Die Checkliste für die Anpassung der Standard-Reports führt die einzelnen Schritte auf, mit denen man einen Standard-Report an die eigenen Anforderungen anpassen kann.

Die jeweils aktuelle Versionen der Reports können Sie hier downloaden.

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!

4 Einstellungen in REFLEX

4.1 Programmparameter, Report-Versionen

Unter dem Menü

Datei
⇒Admin-Optionen
⇒Programmparameter
⇒Firmen-Daten, Formular-Texte, Report-Einstellungen
⇒Registerseite "Report-Versionen"

kann man einstellen, welches Formular mit welcher Report-Version (CrystalReports© oder FastReport ©) gedruckt werden soll.

  • Wenn wir "gedruckt" sagen, meinen wir damit natürlich auch die Vorschau, das mailen usw.!

Bitte beachten:

  • Der Umstieg von CrystalReports auf FastReport kann Schritt für Schritt erfolgen!
  • Man kann nach und nach die Reports für Angebot, Auftrag, Lieferschein, Rechnung usw. umstellen.
  • Für die umstellende Person gibt es die Möglichkeit, unabhängig von den anderen Usern mit FastReport zu arbeiten, d.h. eine Person benutzt FastReport, während die Anderen noch mit CrystalReports arbeiten! Dazu wählt man im Menü "Bearbeiten" den Punkt "Report-Version".
  • Erst wenn ein bestimmtes Formular fertig getestet wurde, schaltet man dieses Formular für alle User auf FastReport um!

Einzelheiten dazu finden Sie hier.

4.2 Programmparameter, Standard-Formular-Texte

Unter dem Menü

Datei
⇒Admin-Optionen
⇒Programmparameter
⇒Firmen-Daten, Formular-Texte, Report-Einstellungen
⇒Registerseite "Standard-Formular-Texte"

kann man die Standard-Formular-Texte für die verschiedenen Formulare festlegen.

Einzelheiten dazu finden Sie hier.


4.3 Titel der Formulare

Die Titel der Formulare werden nicht fest im Report angegeben, sondern in REFLEX festgelegt. Dazu muss man in

Datei
⇒Admin-Optionen
⇒Firmen-Daten, Formular-Texte Report-Einstellungen
⇒Register-Seite Formular-Titel

die Titel der Formulare angeben.

Einzelheiten dazu gibt es hier.


4.4 E-Mail-Signaturen der Formulare festlegen

Für die verschiedenen Formulare (Angebot, Auftrag usw.) kann man einen Text festlegen, der beim Senden einer Mail über REFLEX automatisch vorgegeben wird.

Außerdem kann man die einen Text, angeben, der unten an jeden Formular-abhängigen Text angehängt wird, überlicherweise wird hier die Floskel "Mit freundlichen Grüßen" usw. angegeben. Diese Floskel muss also in den Formular-abhängigen Texten nicht angegeben werden.

Dazu geht man auf

Datei
⇒Admin-Optionen
⇒Programmparameter und Einstellungen
⇒E-Mail-Einstellungen, Telefonie, SMS
⇒E-Mail Signatur FastReport


Einzelheiten dazu gibt es hier.


4.5 Auftragskennzeichen festlegen

Oft hat man verschiedene Reports, die sich nur in Kleinigkeiten unterscheiden. Beispielsweise soll manchmal das Firmenlogo gedruckt werden, manchmal nicht. Oder es sollen bei manchen Kunden Einzelpreise ausgegeben werden, bei anderen nicht.

Dazu gibt es z.B. in REFLEX die sog. Auftragskennzeichen, mit denen die Ausgabe eines Reports gesteuert werden kann. Im Report kann man diese Felder abfragen und einzelne Objekte oder ganze Bänder ausgeben oder nicht.

Diese Felder können über die Tabelle Auftragskopf und die Felder Kennz1 bis Kennz12 abgerufen werden.

Man kann beispielsweise über einen Code im Report festlegen, dass das Feld Einzelpreis unterdrückt (Visible=False) werden soll, wenn das Kennzeichen Kennz1 auf "Nein" steht. Dazu klickt man einfach auf das Feld im Report-Designer und wählt im Objektinspektor das Register Ereignisse an. Dann doppelklickt man auf das Ereignis OnBeforePrint und gibt diesen Code ein:

Beispiel:

procedure MemoEinzelpreisOnBeforePrint(Sender: TfrxComponent);
begin
  if <AuftragsKopf."Kennz1"> = 'Nein' then
       MemoEinzelpreis.Visible := False
  else
       MemoEinzelpreis.Visible := True;
end;
Info.png
Unter dem Menü Datei⇒Admin-Optionen⇒Programmparameter⇒Auftrag⇒Auftragskennzeichen kann man die Kennzeichen festlegen, mit deren Hilfe man die Varianten von Formularen steuern kann.

Weitere Einzelheiten dazu finden Sie hier.

4.6 Standard-Schrift

Unter

Datei
⇒Admin-Optionen
⇒Programmparameter und Einstellungen
⇒Standard-Schrift

sollte man die Standard-Schrift einstellen, die für die formatierbaren Text im Kopf, Positionen und im Fuss angegeben kann.


4.7 Recht für den Report-Designer

Bestimmten Benutzern/Benutzerinnen kann man das Recht einräumen, Reports zu ändern.

Unter

Datei
⇒Admin-Optionen
⇒Benutzerverwaltung, Zugriffssteuerung
⇒Benutzer/in auswählen
⇒Registerseite Programmteile im Reflex

kann man das Recht ReportDesigner auswählen (oder im Feld Suchen eingeben) auf mind. Schreiben setzen.

FastReport Zugriffsrecht ReportDesigner.png

  • Ein höheres Recht wird hier nicht verwendet. Auch wenn das Recht auf Schreiben steht, kann der/die Benutzer/in Inhalte von Reports löschen oder auf Windows-Ebene den ganzen Report!

5 Varianten

5.1 Verschiedene Sprachen

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

5.1.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.

5.1.2 Titel des Formulars

Auch das ist kein Problem, weil der Titel des Formulars in REFLEX durch das Programm festgelegt wird.

Dazu muss man im Report eine neue Variable mit dem Namen "Titel" anlegen.

Report öffnen
⇒Report
⇒Variablen
⇒Neu


FastReport Variable Titel.png

Das Programm ersetzt den Inhalt der Variable durch den Titel, der in Datei-->Admin-Optionen-->Formular-Texte angegeben wurde.


Einzelheiten dazu gibt es hier.

5.1.3 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.

Info.png
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 := 'Nombre:'
  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.

Übersetzt bedeutet dieser Code:

  Wenn <AuftragsKopf."Sprache"> = 'E' dann
       Der Text des Feldes ist 'Number:'
  ansonsten
  Wenn <AuftragsKopf."Sprache"> = 'F' dann
       Der Text des Feldes ist 'Nombre:'
  ansonsten
       Der Text des Feldes ist 'Nummer:';  

Das ";" am Ende muss eingegeben werden.

Das ist natürlich ein erheblicher Aufwand. Alle festen Texte müssen so behandelt werden. Der Lohn der Arbeit ist aber ein Report, der in allen Sprachen funktioniert!

6 Standard-Kopf- und Fußbereiche

Es gibt das Problem, dass auf jedem offiziellen Formular (=Report) ein Kopfbereich und ein Fußbereich stehen soll, der die Firmendaten beinhaltet, z.B. im Seitenkopf ein Logo und im Seitenfuß die Bankverbindung, die Firmendaten usw.

Das kann man über einen Basis-Report lösen, wie hier beschrieben.

7 Verzeichnisse

Beispiel einer Verzeichnis-Struktur:

Verzeichnis Beschreibung
R:\Formular Allgemeines Formular-Verzeichnis, in dem eigentlich keine Reports stehen. Die eigentlichen Reports stehen in Unterverzeichnissen (s.u.). Für den Basis-Report ist das jedoch der richtige Platz! Siehe FastReport Vererbung/Basis-Report.
R:\Formular\Auftrag Reports für Anfragen, Angebote oder Aufträge. Im Gegensatz zu CrystalReports sucht FastReport die Reports nur in diesem Verzeichnis! Grund: Es sollte nur ein Report für Anfragen, Angebote und Auftragsbestätigungen verwendet werden. In CrystalReports musste man diesen universellen Report in beiden Verzeichnissen halten, also immer eine Kopie des geänderten Reports in das andere Verzeichnis kopieren.
R:\Formular\Angebot Dieses Verzeichnis wird in FastReport nicht verwendet. Alle Reports für die Auftragsverwaltung stehen in "R:\Formular\Auftrag".
R:\Formular\Bestell Reports für Bestellungen.
R:\Formular\Fertigung Reports für die Fertigung.
R:\Formular\LiefSch Reports für den Lieferschein bei der Lagerausgabe.
R:\Formular\Ladeliste Reports für die Ladeliste aus der Auftragsverwaltung oder der Lagerausgabe.
R:\Formular\KV Reports für den Kostenvoranschlag in der Werkstatt.
R:\Formular\Mahnungen Reports für die Mahnungen.
R:\Formular\Rechnung Reports für Rechnungen und Gutschriften.
R:\Formular\WAuftrag Reports für den Werkstatt-/Reparatur-Auftrag.



8 Links