Erstellen eines Reports mit FastReport

Aus GEVITAS
Version vom 27. Dezember 2023, 15:45 Uhr von Gevitas (Diskussion | Beiträge) (Tipps und Tricks)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche
GEVITAS Icon 2017 oben rechts.png

1 Allgemeines

FastReport (engl. "Schneller Report") ist ein im Programm integriertes Programm zum Erstellen von Reports, Formularen und Etiketten.

  • FastReport ist im Programm integrriert.
  • Es ist schnell und leistungsfähig.
  • Man muss nichts installieren! Kein .Net-Framework, kein Treiber, keine Runtime! Nur die Programmdateien im Rahmen des Auto-Updates kopieren, die Parameter einstellen: Fertig!
  • Ganz nebenbei: FastReport kann Barcodes, QR-Code (Zusatzmodul), ohne zusätzliche Schriftart!
  • Der ReportDesigner zum Ändern von Reports ist für Kunden mit Software-Wartungsvertrag kostenlos enthalten!

Ab Programm-Release 18009xx wird die FastReport©-Engine Vers. 6 verwendet. Einzelheiten dazu werden in FastReport 6 beschrieben.

Zur Durchführung einer Schulung für FastReport© gibt es hier einen Schulungsplan als Leitfaden.


1.1 Der FastReport-Designer

Der FastReport-Designer ist immer da!

Der FastReport-Designer ist im Programm eingebaut! Man benötigt also kein extra Programm dafür, der FastReport-Designer ist schon vorhanden, z.B.

(Siehe Zugriffsrecht Report-Designer)


FastReport kommt mit jedem Seitenformat zurecht!

Während manche andere Report-Programme Probleme mit kleinen Etiketten-Formaten haben, funktioniert das in FastReport unproblematisch.


Der FastReport-Designer ist einfacher

Je nachdem, in welchem Formular man sich befindet, stellt der Report-Designer nur die Datenbank-Tabellen zur Verfügung, die für dieses Formular sinnvoll sind.

Zudem haben die Tabellen der Datenbank aussagekräftige Namen, unabhängig davon, wie sie in der Datenbank wirklich heißen.

Beispiel
Die Auftragstabellen heißen in der Datenbank MAUFKO, MAUFPO, MAUFFU usw.
Im FastReport-Designer heißen diese Tabellen AuftragsKopf, AuftragsPositionen, AuftragsFuss usw.


1.2 Umsteigen von CrystalReports

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

  • 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!
  • Erst wenn ein bestimmtes Formular fertig getestet wurde, schaltet man dieses Formular für alle User auf FastReport um!

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 Elemente eines Reports

Ein Report kann folgende Objekte beinhalten:

  • Texte, z.B. für Überschriften, Feldbezeichnungen usw.
  • Datenbank-Felder: Die Datenbank-Tabellen und -Felder stellt das Programm automatisch zur Verfügung, man muss also keine Datenbank-Kenntnisse haben, um einen Report zu erstellen.
  • Linien, geografische Formen mit unterschiedlichen Stricharten; Dicke, Farbe usw. frei wählbar.
  • Bilder mit allen gängigen Formaten
  • Barcodes
  • QR-Codes
  • Formeln zur Berechnung von Werten, zum Ein-/Ausschalten von Objekten usw.
  • Berechnungen, Summierungen

usw.

2.1 Bänder

FastReport ist ein "Band"-orientierter Report-Editor. Ein Band (In CrytsalReports "Bereich" oder "Sektion" genannt) ist ein bestimmter Bereich innerhalb eines Reports.

Ein Report ist also in Bänder (Bereiche) eingeteilt. Es gibt folgende Bänder:

FastReport Bands Grafik.png

Jedem Band ist eine Tabelle (genannt "DataSet") zugeordnet, damit FastReport weiß, ob das Band nur einmal gedruckt werden soll, (z.B. dem Auftragskopf) oder mehrfach (z.B. die Auftragspositionen).


2.1.1 Was ist ein Dataset?

Vereinfacht gesagt kann man sich ein DataSet vorstellen als eine Tabelle der Datenbank, z.B. Auftragskopf, Auftragspositionen, Artikel usw.

Das ist aber nur die halbe Wahrheit:

  • Ein Dataset ist eine Datenbank-Abfrage von einer oder mehrerer Tabellen der Datenbank.
  • Das Druckprogramm verknüpft dabei mehrer Datenbank-Tabellen miteinander zu einer Abfrage, also zu einem DataSet.
  • Zum Beispiel enthält das Dataset "Auftrag.Positionen" auch Felder aus den Artikel-Stammdaten.


2.1.2 Band-Typen

Reporttitel (ReportTitle)
Dieser Bereich wird als erster ganz oben auf der ersten Seite (und nur da!) dargestellt.
Seitenkopf (PageHeader)
Dieser Bereich wird ganz oben auf allen Seiten dargestellt.
Seitenfuß (PageFooter)
Dieser Bereich wird ganz unten auf allen Seiten dargestellt.
Reportzusammenfassung (ReportSummary)
Dieser Bereich wird unten nach der Ausführung der Datenbänder ausgeführt.
Kopf (Header)
Dieser Bereich ist eine Überschrift über einem Daten-Band. Jedes Datenbank kann einen Kopf (und einen Fuß) haben! Der Kopf wird ausgeführt, bevor das Band ausgeführt wird. Wenn das Band mehrere Datensätze beinhaltet, werden zuerst ein mal der Kopf ausgeführt und danach alle Datensätze (und danach der Fuß, falls es einen gibt).
Bitte der Kopf nicht mit einem Guppenkopf verwechseln! Der Guppenkopf wird wiederholt, wenn sich der Inhalt eines festgelegten Datenbank-Felds ändert.


Fuß (Footer)
Dieser Bereich wird unterhalb eines Daten-Bandes dargestellt. Jedes Datenbank kann einen Fuß (und einen Kopf) haben! Der Fuß wird ausgeführt, nachdem das Datenband ausgeführt wird. Wenn das Datenband mehrere Datensätze beinhaltet, werden zuerst alle Datensätze ausgegeben und danach der Fuß.
Bitte der Fuß nicht mit einem Guppenfuß verwechseln! Der Guppenfuß wird wiederholt, wenn sich der Inhalt eines festgelegten Datenbank-Felds geändert hat.


Masterdaten (MasterData)
Hier stehen die Haupt-Daten des Reports. Jeder Report hat diesen Bereich. Wenn der Report eine einfache Liste darstellt, z.B. eine Artikel-Liste, stehen die Artikel-Datenbankfelder in diesem Bereich. Wenn der Report keine anderen Daten darstellen soll (z.B. Geräte zu jedem Artikel), hat er nur diesen einen Bereich.
Soll der Report auch noch die Geräte-Daten zu jedem Artikel aufführen, gibt es noch einen Detaildaten-Bereich, in dem die Geräte-Datenbankfelder stehen.


Detaildaten (DetailData)
Wenn ein Report "Unter-Daten" zu einem "Hauptdatensatz" darstellen soll (z.B. Geräte zu einem Artikel), stehen hier stehen die untergeordneten Daten des Reports.


Subdetaildaten (SubdetailData)
Wenn ein Report "Unter-Daten" zu einem "Unter-Datensatz" darstellen soll (z.B. Prüfungen zu Geräten zu einem Artikel), stehen hier die dem Detailbereich untergeordneten Daten des Reports.
Daten 4. Ebene
Daten 5. Ebene
Daten 6. Ebene
Wenn ein Report weitere "Unter-Unter-Daten" zu einem "Unter-Datensatz" darstellen soll (z.B. Prüfdetails zu Prüfungen zu Geräten zu einem Artikel), stehen hier die dem Unter-Detailbereich untergeordneten Daten des Reports.
Bis zu 6 Ebenen sind so möglich!

Achtung:

  • Standardmäßig druckt FastReport das darüberliegende Band nicht, wenn es im darunterliegenden Band keine Daten gibt!! Siehe Child-Band wird nicht gedruckt.


Gruppenkopf (GroupHeader)
Ein Report kann in Gruppen dargestellt werden. Dies ist eine Alternative zu der Verwendung von Haupt-Detail-Daten. Normalerweise stellt das Programm die Master- und Detail-Daten automatisch zur Verfügung.
Beispiel: Im Auftragsformular-Report stellt das Programm automatisch die Kopf- und Fussdaten des Auftrags zur Verfügung und zu jeder Position die Positionsdaten.

Es kann jedoch auch Fälle geben, wo das Programm die Daten in jeweils einer Zeile zur Verfügung stellt, der Report diese Daten in bestimmten Gruppen darstellen soll. Dann kann man eine Gruppe (ein Datenbankfeld) festlegen, bei dem die Gruppe wechseln soll, beispielsweise die Artikelnummer.

Es sind beliebig viele Gruppen und Untergruppen möglich!
Der Gruppenkopf stellt die Daten der Gruppe am Anfang der Gruppe dar.
Guppenfuß (GroupFooter)
Der Gruppenkopf stellt die Daten der Gruppe am Ende der Gruppe dar.


Spaltenkopf
Ein Report kann in mehrere Spalten aufgeteilt werden, und mit diesem Band kann man einen Kopf für eine Spalte festlegen.
Spaltenfuß
Ein Report kann in mehrere Spalten aufgeteilt werden, und mit diesem Band kann man einen Fuß für eine Spalte festlegen.


2.1.3 Child-Bänder

Ein Child-Band (Kind-Band) ist ein Band, das zu einem Datenbank (Master- oder Detail-Band) gehört.

Es wird hauptsächlich dazu verwendet...

  • um einen Bereich (z.B. die Details) eines Reports ein- oder auszuschalten, abhängig von bestimmten Feld- oder Parameter-Werten.
  • um das Band in der Höhe auf seinen Inhalt zu dehnen.

Jedes Child-Band "gehört" zu dem darüber liegenden Band!

  • Ein Master- oder Detail-Band kann ein Child-Band haben.
  • Jedes Child-Band kann wiederum ein Child-Band haben.

Die Bänder sind also "kaskadiert":

  • Ganz oben das Haupt-Band (Master- oder Detail-Band)
  • Darunter das 1. Child-Band, das zu Hauptband gehört. Das Hauptband oben hat also in der Eigenschaft "Child" das 1. Child-Band.
  • Darunter das 2. Child-Band, das zum 1. Child-Band gehört. Das 1. Child-Band hat also in der Eigenschaft "Child" das 2. Child-Band.
  • Darunter das 3. Child-Band, das zum 2. Child-Band gehört. Das 2. Child-Band hat also in der Eigenschaft "Child" das 1. Child-Band.

Beispiel:

Band Name Child-Eigenschaft
Detail-Band DetailPositionen ChildTechniker
1. Child-Band ChildTechniker ChildPosText
2. Child-Band ChildPosText ChildZusatzText
3. Child-Band ChildZusatzText


Band ein- oder auschalten

Über den Code (also Programm-Befehle) kann man ein Band ein- oder ausschalten, wenn der Report ausgeführt wird. Beachten Sie dazu den Beitrag Band per Code unterdrücken.

Fehlerquelle

Eine Fehlerquelle wird im Beitrag Child-Band wird nicht gedruckt beschrieben.

Weitere Hinweise:

2.2 Texte (Memos)

z.B. für Datenbank-Felder, Überschriften, Feldbezeichnungen usw.

Diese werden in FastReport als sog. "Memo-Felder" bezeichnet.

Ein Memo-Feld kann folgende Inhalte haben:

  • Ein bestimmtes Datenbank-Feld: In diesem Fall ist dem Feld direkt ein Datenbank-Feld einer Datentabelle zugeordnet.
  • Mehrere zusammengesetzte Datenbank-Felder: Hier sind in dem Memo mehrere Datenbank-Felder enthalten. Die Felder können dabei z.B. durch Leerstellen getrennt werden.
  • Konstanten Text: Im Memo steht ein konstanter Text, z.B. eine Überschrift einer Tabellen-Spalte.
  • Formeln: Im Memo steht eine mathematische Berechung, z.B. in Verbindung mit einem Datenbank-Feld.

usw.

Einem Memo-Feld kann eine Schriftart und -Größe zugewiesen werden, es kann links- oder rechtsbündig dargestellt werden oder zentriert.

Außerdem kann einem Memo-Feld ein Rahmen an beliebigen Seiten definiert werden.

Mit der Eigenschaft AllowHTMLTags kann man festlegen, dass im Memo-Feld HTMl-Steuerzeichen (z.B. <b> </b> <br>) enthalten sein dürfen. Damit kann man im Memo z.B. einzelne Textteile in Fettschrift darstellen.

2.3 Datenbank-Felder

Die Datenbank-Tabellen und -Felder stellt das Programm automatisch zur Verfügung.

Außerdem sind die Tabelle automatisch sinnvoll miteinander verknüpft.

Man muss also keine Datenbank-Kenntnisse haben, um einen Report zu erstellen.

Beachten Sie dazu den Beitrag FastReport Daten, Tabellen und Felder.

2.4 Linien, geografische Formen

Linien, Rechtecke usw. mit unterschiedlichen Stricharten; Dicke, Farbe usw. frei wählbar.

Eine Alternative für Striche und Rahmen stellt dir Möglichkeit dar, Felder mit einem frei definierbarem Rahmen zu umgeben. In einer Überschriftszeile fügt man also z.B. Memo-Felder mit konstantem Text ein. Dann verschiebt man die Memos so, dass sie direkt aneinander liegen. Dann markiert man alle Memos und wählt oben in der Leiste einen kompletten Rahmen um die Felder.

2.5 Bilder

Man kann alle gängigen Bild-Formate einfügen. Die Größe ist beliebig. Handelt es sich um eine hochauflösende Grafik, kann man die Qualität auf "hoch" setzen. Das erhöht zwar die Datei-Größe, verbessert aber die Darstellung der Grafik.

Beachten Sie die Hinweise im Beitrag Bilder zur Laufzeit laden.

2.6 Barcode, QR-Code

FastReport kann standardmäßig mehrere Barcode-Typen darstellen.

QR-Code ist auch möglich, allerdings benötigt man dafür eine spezielle Lizenz.


2.7 Formeln

Zur Berechnung von Werten, zum Ein-/Ausschalten von Objekten usw.

3 Wie öffnet man den Designer?

Ganz einfach: Öffnen Sie den Programmteil, mit Sie einen Report drucken wollen, z.B. das Drucken einer Ladeliste. Öffnen Sie dazu in der Lagerausgabe einen Auftrag und klicken auf Ladeliste (bei manchen Kunden auch "Packliste").

Das Druckfenster öffnet sich und zeigt die vorhandenen Reports an.

Beispiel:

FastReport DesignerButton.png

Klicken Sie auf den Report, den Sie ändern wollen. Dann klicken Sie auf den Button Designer. Der Designer für den ausgewählten Report wird geöffnet.


3.1 Zugriffsrecht

Wenn der Button bei Ihnen nicht sichtbar ist, so haben Sie kein Zugriffsrecht auf den ReportDesginer. Ihr REFLEX-/GEVAS-Professional-Admin kann Ihnen dieses Recht (mit dem Namen "ReportDesginer") ggf. einrichten.

FastReport Recht ReportDesigner.png

4 Woher weiß der Report, welche Daten er drucken soll?

Die Daten, die zu drucken sind, stellt das Programm automatisch zur Verfügung!

Mann muss also keine ausführlichen Datenbank-Kenntnisse haben, um einen Report zu erstellen. Alle Felder, die für den jeweiligen Report relevant sind, "kennt" der Report.

Beachten Sie dazu den Beitrag FastReport Daten, Tabellen und Felder.

Beispiel:

Wenn man im Etiketten-Druck-Programm GEVITAS LabelPrint den Designer öffnet, stehen automatisch alle Daten aus der Artikel-Tabelle und der Einzelteil-Tabelle zur Verfügung.

5 Übersicht über das Designer-Fenster

FastReport Fenster.png


Bereich Beschreibung
1 In dieser Leiste stehen verschiedene Buttons, mit denen man z.B. die Vorschau starten kann, die Formatierung festlegt usw.
2 In dieser Leiste stehen verschiedene Buttons, mit denen man z.B. die Schriftart wählen kann, die Ausrichtungfestlegt usw.
3 Hier wird die Struktur des Reports angezeigt. Man kann hier die Objekte des Reports (Bändern, Felder usw.) auswählen.

Da man das auch im Report selbst machen kann, ist der Baum nicht ganz so wichtig und man kann ihn auch schließen, um das Fenster übersichtlicher zu machen.

Darunter, im Objekt-Inspektor werden die Eigenschaften des ausgewählten Elements angezeigt und geändert, z.B. das zugehörige Datenbank-Feld, die Farbe usw. Außerdem kann man hier auf die Ereignisse der Objekte zugreifen, um z.B. einen Programmcode zu schreiben, mit dem ein Objekt unter bestimmten Umständen ausgeblendet wird. Den Objekt-Inspektor kann man mit der Taste F11 ein- und ausschalten.

4 In dieser Symbol-Leiste stehen die möglichen Objekte für den Report, also z.B. ein Band, Textfeld, Linie, Barcode usw.

Um ein Objekt in den Report einzufügen, klickt man auf das gewünschte Symbol, fährt dann mit der Maus in den gewünschten Report-Bereich und klickt nochmal mit der linken Maustaste. Das Objekt wird dann an dieser Stelle eingefügt.

5 Hier steht das eigentliche Design des Reports, also die Bänder, Datenbank-Felder, Textfelder, Barcode-Felder usw.
6 Hier werden die möglichen Datenbankfelder angezeigt. Sie können ein Feld mit der Maus auf den Report ziehen.
Hinweis
Sie können die Bereiche des Designers beliebig verschieben. Klicken Sie dazu auf die gepunktete Überschrift des Bereich und ziehen Sie den Bereich mit gedrückter Maustaste in ein anderes Gebiet.



6 Grundlegende Einstellungen des Reports

Thema und Link Beschreibung
Seitenformat Eine wichtige Einstellung eines Reports ist die Seitengröße und -Ausrichtung. Dazu klickt man mit der rechten Maustaste auf die Seite ("Page") und wählt "Seiteneinstellungen".

FastReport kann mit jeder nur denkbaren Seitengröße arbeiten! Dazu klickt man im Report-Bereich auf die Seiteneinstellung (standardmäßig "Page1") und stellt die Eigenschaft PaperSize auf die gewünschte Größe.

Sie können die Papiergröße aus vordefinierten Einstellungen auswählen (z.B. "A4") oder "Benutzerdefiniert" einstellen.

Wenn Sie "Benutzerdefiniert" auswählen, können Sie die Papierbreite und -Höhe mit den Eigenschaften "PaperHeight" (Höhe) und "PaperWidth" (Breite) in cm angeben.

Info.png
In dem FastReport©-Report kann es mehrere Seiten (Pages) geben. Wenn man z.B. ein Formular hat, das aus mehreren Abschnitten besteht (Einleitung, Positionen, Zusammenfassung usw.), kann man diese Abschnitte in mehrere Seiten (Pages) aufteilen. Jedes Page kann dabei einen eigenen Inhalt haben, eigene Kopf- und Fußzeilen usw.

Jede Page kann auch eigene Seiten-Einstellungen haben! Man kann also z.B. die erste Page im Hochformat darstellen, die zweite im Querformat und die dritte wieder im Hochformat!

Die Standard-Seite "Page1" gibt es immer. Man kann sie nicht löschen.

Daten, Tabellen und Felder Das wichtigste des Reports sind die Daten, denn darum geht es ja.

Die Daten eines Reports kommen aus der Datenbank des Programms.

Das Programm stellt dabei die Daten automatisch zur Verfügung, die für den Report benötigt werden.

Bands (Bänder)
FastReport Bands Grafik klein.png
Ein Report wird eingeteilt in sog. "Bänder" (Bands).

Ein Band bestimmt, wo es gedruckt werden soll, z.B. gibt es ein Band für den Seitenkopf, eines für den Seitenfuß usw.

7 Seite zu klein?

Wenn Ihr Report mehr Bänder enthält, als auf eine Seite passen, dann können Sie die Seite im (für den) Entwurfsmodus vergrößern:


FastReport Seiteneinstellung SeiteVergroessern.png


Die Seite im Designer ist damit unendlich groß und Sie können so viele Bänder einfügen, wie benötigt werden!


8 Die wichtigsten Code-Befehle

Der Code eines Reports hat im Wesentlichen folgende Aufgaben:

  • Ein Feld oder Band unter bestimmten Umständen zu unterdrücken
  • Text-Felder ("Memos") mit einem bestimmten Inhalt zu füllen
  • Die Farbe eines Objektes zu ändern.
  • Die Position eines Objektes zu ändern.

Dazu wird der Befehl if ... then verwendet.

Einzelheiten siehe FastReport: Der if-Befehl


9 Die Druck-Programme

Wenn der/die Anwender/in im Programm auf Drucken oder Etikett klickt, wird (abhängig von den Einstellungen in den Programm-Parametern...

  • entweder das im Programm integrierte Druckfenster geöffnet (CrystalReports©)
oder
  • das Druckprogramm mit FastReport© gestartet.
Für den/die Anwender/in sieht das so aus, als ob einfach eine Fenster aufgeht.
Dem Druckprogramm werden von REFLEX bzw. GEVAS-Professional alle Informationen geliefert, die es benötigt, also die INI-Datei, z.B. die Auftragsnummer usw.


Es gibt diese Druck-Programme:


GevitasFormPrint

Mit diesem Druckprogramm werden folgende Formulare erzeugt:
  • Angebote
  • Auftragsbestätigungen
  • Ladelisten/Packlisten
  • Rückgabe-Formular
  • Lieferscheinen,
  • Rechnungen/Gutschriften
  • Bestellungen
  • Werkstatt-Reparatur-Aufträge und -Lieferscheine


GevitasLabelPrint

Mit diesem Druckprogramm werden Etiketten für Artikel oder Adressen erzeugt.


GevitasListPrint

zum Drucken von Listen und Auswertungen.


Info.png
Für den/die Anwender/in ist diese technische Information nicht wichtig.

Er/Sie klickt auf drucken und es öffnet sich ein Fenster mit der Auswahl des Formulars, einige Optionen und Buttons für Drucken, Vorschau, E-Mail und Export.

10 Tipps und Tricks

Eine reiche Quelle mit wertvollen Hinweisen gibt es auf der Seite Tipps und Tricks.

Beispiele:

11 Updates

Mit diesen Links kommen zu den Update-Beschreibungen der Druckprogramme:

12 Links

FastReport Seitenformat FastReport Daten, Tabellen und Felder FastReport Tabellen der Reports Beispiele:
FastReport Bands FastReport Objekte und Elemente eines Reports FastReport: Abhängige Formatierung von Feldern Ladeliste/Packliste mit FastReport
Standard-Formular-Texte Steuerung des Report mit Auftragskennzeichen Summen im Report bilden Leasing-Liste
FastReport Farb-Konstanten Namensgebung der Datenbank-Tabellen und -Felder Tipps und Tricks Inventar-Liste
REFLEX Standard-Reports Etikettendruck Allgemeines Mehrsprachige Formulare mit FastReport Geräte-Liste
GEVITAS Label-Print Installation GEVITAS-Carnet Videos zu FastReport Erstellen eines Prüfprotokolls für TPS
FastReport Angebots-/Auftragsformular mit Terminen.