Erstellen eines Reports mit FastReport: Unterschied zwischen den Versionen
(→Die Druck-Programme) |
(→Tipps und Tricks) |
||
(15 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 12: | Zeile 12: | ||
Ab Programm-Release 18009xx wird die FastReport©-Engine Vers. 6 verwendet. Einzelheiten dazu werden in '''[[FastReport 6]]''' beschrieben. | 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 '''[[FastReport Schulungsplan|hier]]''' einen '''[[FastReport Schulungsplan|Schulungsplan]]''' als Leitfaden. | |
Zeile 77: | Zeile 77: | ||
=== Bänder === | === Bänder === | ||
− | '''FastReport''' ist ein "Band"-orientierter Report-Editor. Ein Band (" | + | '''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: | Ein Report ist also in Bänder (Bereiche) eingeteilt. Es gibt folgende Bänder: | ||
Zeile 83: | Zeile 83: | ||
[[Datei:FastReport_Bands_Grafik.png|1024px]] | [[Datei:FastReport_Bands_Grafik.png|1024px]] | ||
+ | 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). | ||
+ | |||
+ | |||
+ | ==== 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. | ||
Zeile 89: | Zeile 101: | ||
;Reporttitel (ReportTitle) | ;Reporttitel (ReportTitle) | ||
:Dieser Bereich wird als erster ganz oben auf der '''ersten Seite''' (und nur da!) dargestellt. | :Dieser Bereich wird als erster ganz oben auf der '''ersten Seite''' (und nur da!) dargestellt. | ||
− | |||
− | |||
− | |||
;Seitenkopf (PageHeader) | ;Seitenkopf (PageHeader) | ||
Zeile 98: | Zeile 107: | ||
;Seitenfuß (PageFooter) | ;Seitenfuß (PageFooter) | ||
:Dieser Bereich wird ganz unten auf '''allen Seiten''' dargestellt. | :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) | ;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 | + | :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. | :Bitte der Kopf nicht mit einem Guppenkopf verwechseln! Der Guppenkopf wird wiederholt, wenn sich der Inhalt eines festgelegten Datenbank-Felds ändert. | ||
Zeile 141: | Zeile 154: | ||
;Gruppenkopf (GroupHeader) | ;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. | :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 | + | :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 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. | ||
Zeile 150: | Zeile 163: | ||
;Guppenfuß (GroupFooter) | ;Guppenfuß (GroupFooter) | ||
:Der Gruppenkopf stellt die Daten der Gruppe am Ende der Gruppe dar. | :Der Gruppenkopf stellt die Daten der Gruppe am Ende der Gruppe dar. | ||
+ | |||
;Spaltenkopf | ;Spaltenkopf | ||
Zeile 156: | Zeile 170: | ||
;Spaltenfuß | ;Spaltenfuß | ||
:Ein Report kann in mehrere Spalten aufgeteilt werden, und mit diesem Band kann man einen Fuß für eine Spalte festlegen. | :Ein Report kann in mehrere Spalten aufgeteilt werden, und mit diesem Band kann man einen Fuß für eine Spalte festlegen. | ||
+ | |||
==== Child-Bänder ==== | ==== Child-Bänder ==== | ||
− | Ein Child-Band wird verwendet | + | 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! | Jedes Child-Band "gehört" zu dem darüber liegenden Band! | ||
Zeile 233: | Zeile 253: | ||
Mit der Eigenschaft [[FastReport HTML-Tags in Texfeldern|AllowHTMLTags]] kann man festlegen, dass im Memo-Feld HTMl-Steuerzeichen (z.B. <nowiki><b> </b> <br></nowiki>) enthalten sein dürfen. Damit kann man im Memo z.B. einzelne Textteile in Fettschrift darstellen. | Mit der Eigenschaft [[FastReport HTML-Tags in Texfeldern|AllowHTMLTags]] kann man festlegen, dass im Memo-Feld HTMl-Steuerzeichen (z.B. <nowiki><b> </b> <br></nowiki>) enthalten sein dürfen. Damit kann man im Memo z.B. einzelne Textteile in Fettschrift darstellen. | ||
− | |||
− | |||
− | |||
− | |||
=== Datenbank-Felder === | === Datenbank-Felder === | ||
Zeile 293: | Zeile 309: | ||
[[Datei:FastReport_Recht_ReportDesigner.png|800px]] | [[Datei:FastReport_Recht_ReportDesigner.png|800px]] | ||
− | == Woher weiß der | + | == 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 | + | 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]]'''. | Beachten Sie dazu den Beitrag '''[[FastReport Daten, Tabellen und Felder]]'''. | ||
Zeile 357: | Zeile 376: | ||
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. | 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. | ||
+ | |||
+ | [[Datei:info.png|links]]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. | ||
+ | |||
|- valign="top" | |- valign="top" | ||
|'''[[FastReport Daten, Tabellen und Felder|Daten, Tabellen und Felder]]''' | |'''[[FastReport Daten, Tabellen und Felder|Daten, Tabellen und Felder]]''' | ||
Zeile 387: | Zeile 413: | ||
Die Seite im Designer ist damit unendlich groß und Sie können so viele Bänder einfügen, wie benötigt werden! | Die Seite im Designer ist damit unendlich groß und Sie können so viele Bänder einfügen, wie benötigt werden! | ||
+ | |||
+ | == 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]] | ||
== Die Druck-Programme == | == Die Druck-Programme == | ||
− | Wenn der/die Anwender/in im Programm auf '''Drucken''' oder '''Etikett''' klickt, wird (abhängig von den Einstellungen in den [[Report-Versionen_einstellen|Programm-Parametern]] entweder das im Programm integrierte Druckfenster geöffnet oder das Druckprogramm mit FastReport gestartet. | + | Wenn der/die Anwender/in im Programm auf '''Drucken''' oder '''Etikett''' klickt, wird |
+ | (abhängig von den Einstellungen in den [[Report-Versionen_einstellen|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: | Es gibt diese Druck-Programme: | ||
− | <big> | + | |
+ | <big>'''[[GevitasFormPrint]]'''</big> | ||
:Mit diesem Druckprogramm werden folgende Formulare erzeugt: | :Mit diesem Druckprogramm werden folgende Formulare erzeugt: | ||
:*Angebote | :*Angebote | ||
Zeile 410: | Zeile 457: | ||
− | <big> | + | <big>'''[[GevitasLabelPrint]]'''</big> |
:Mit diesem Druckprogramm werden Etiketten für Artikel oder Adressen erzeugt. | :Mit diesem Druckprogramm werden Etiketten für Artikel oder Adressen erzeugt. | ||
− | <big> | + | <big>'''[[GevitasListPrint]]'''</big> |
:zum Drucken von Listen und Auswertungen. | :zum Drucken von Listen und Auswertungen. | ||
− | [[Datei:info.png|links]]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. | + | [[Datei:info.png|links]]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. | ||
+ | |||
+ | == Tipps und Tricks == | ||
+ | |||
+ | Eine reiche Quelle mit wertvollen Hinweisen gibt es auf der Seite [[FastReport Tipps und Tricks|Tipps und Tricks]]. | ||
+ | |||
+ | Beispiele: | ||
+ | |||
+ | * [[FastReport Tipps und Tricks: Eingebaute Funktionen und Variablen#Interne Variablen|Interne Variablen]] | ||
+ | * [[FastReport Tipps und Tricks: Eingebaute Funktionen und Variablen#Report-Name|Report-Name]] | ||
+ | * [[FastReport Tipps und Tricks: Variablen#Fortlaufende Nummer|Fortlaufende Nummer]] | ||
+ | * [[FastReport Tipps und Tricks: Variablen#Zähler-Variable zum Unterdrücken von wiederholten Werten|Zähler-Variable zum Unterdrücken von wiederholten Werten]] | ||
+ | * [[FastReport Tipps und Tricks: Variablen#Variablen_im_Code_mit_Inhalten_f.C3.BCllen|Variablen im Code mit Inhalten füllen]] | ||
+ | |||
+ | * [[FastReport Tipps und Tricks: Falsche Berechnung der Gewichte und Volumen im Lieferschein|Falsche Berechnung der Gewichte und Volumen im Lieferschein]] | ||
+ | |||
+ | * [[FastReport Tipps und Tricks: Seiten-Ansteuerung#Manueller Seitenwechsel im Code|Manueller Seitenwechsel im Code]] | ||
+ | * [[FastReport Tipps und Tricks: Bänder#Band per Code unterdrücken|Band per Code unterdrücken]] | ||
+ | * [[FastReport Tipps und Tricks: Bänder#Band dehnen|Band dehnen]] | ||
+ | |||
+ | * [[FastReport Tipps und Tricks: Child-Band wird nicht gedruckt|Child-Band wird nicht gedruckt]] | ||
+ | * [[FastReport_Tipps_und_Tricks: B%C3%A4nder#Details-Band_wird_nicht_gedruckt_wenn_SubdetailData_leer|Detail-Band wird nicht gedruckt wenn Subdetail-Band leer]] | ||
+ | |||
+ | * [[FastReport Tipps und Tricks: Formatierung#Schrift-Farbe von Felder abhängig von der Fremdmenge|Schrift-Farbe von Felder abhängig von der Fremdmenge]] | ||
+ | * [[FastReport Tipps und Tricks: Formatierung#Farbe eines Bandes abwechselnd grau/weiß|Farbe eines Bandes abwechselnd grau/weiß]] | ||
+ | * [[FastReport Tipps und Tricks: Formatierung#Zahlen und Datum formatieren|Zahlen und Datum formatieren]] | ||
+ | * [[FastReport Tipps und Tricks: Bilder zur Laufzeit laden|Bilder zur Laufzeit laden]] | ||
+ | * [[FastReport_Tipps_und_Tricks:_Verwendung_von_Feldern#Hyperlinks_in_Feldern|Hyperlinks in Feldern]] | ||
+ | * [[FastReport Tipps und Tricks: Fehler#Tabelle wird im Report nicht angezeigt|Tabelle wird im Report nicht angezeigt]] | ||
+ | * [[FastReport Tipps und Tricks: Fehler#Band wird nicht gedruckt, obwohl Daten vorhanden sind|Band wird nicht gedruckt, obwohl Daten vorhanden sind]] | ||
+ | * [[FastReport Tipps und Tricks: Fehler#Detail-Band mit Auftragspositionen wird mehrfach gedruckt, obwohl nur ein Datensatz vorhanden ist|Detail-Band mit Auftragspositionen wird mehrfach gedruckt, obwohl nur ein Datensatz vorhanden ist]] | ||
+ | * [[FastReport Tipps und Tricks: Fehler#Anzahl Seitennummern ist 0|Anzahl Seitennummern ist 0]] | ||
+ | * [[FastReport Tipps und Tricks: Fehler#Etikettenformular: Es wird immer nur ein Etikett gedruckt|Etikettenformular: Es wird immer nur ein Etikett gedruckt]] | ||
+ | * [[FastReport_Tipps_und_Tricks:_Fehler#Fehlermeldung_unter_mySQL:_.22Variante_des_Typs_.28UnicodeString.29_konnte_nicht_in_Typ_.28Double.29_konvertiert_werden|Fehlermeldung: "Variante des Typs (UnicodeString) konnte nicht in Typ (Double) konvertiert werden]] | ||
+ | * [[FastReport Tipps und Tricks: Export#Windows-Explorer mit dem Formular-Ordner öffnen|Windows-Explorer mit dem Formular-Ordner öffnen]] im Druck-Fenster | ||
== Updates == | == Updates == | ||
− | Mit diesen Links kommen zu den Update-Beschreibungen der Druckprogramme | + | Mit diesen Links kommen zu den Update-Beschreibungen der Druckprogramme: |
* [[GEVITAS FormPrint Updates]] | * [[GEVITAS FormPrint Updates]] | ||
Zeile 429: | Zeile 511: | ||
* [[GEVITAS ListPrint Updates]] | * [[GEVITAS ListPrint Updates]] | ||
− | |||
− | |||
− | |||
== Links == | == Links == |
Aktuelle Version vom 27. Dezember 2023, 14:45 Uhr
Inhaltsverzeichnis
- 1 Allgemeines
- 2 Elemente eines Reports
- 3 Wie öffnet man den Designer?
- 4 Woher weiß der Report, welche Daten er drucken soll?
- 5 Übersicht über das Designer-Fenster
- 6 Grundlegende Einstellungen des Reports
- 7 Seite zu klein?
- 8 Die wichtigsten Code-Befehle
- 9 Die Druck-Programme
- 10 Tipps und Tricks
- 11 Updates
- 12 Links
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.
- Mit dem Etiketten-Druck-Programm GEVITAS LabelPrint für REFLEX oder GEVAS-Professional werden Etiketten für Artikel gedruckt.
- Mit dem Formular-Druck-Programm GEVITAS FormPrint für REFLEX oder GEVAS-Professional werden Angebote, Lieferscheine, Rechnungen usw. gedruckt, exportiert oder per Mail verschickt.
- GEVITAS-Carnet benutzt FastReport zum Berucken des Formulars oder zum Drucken von Listen.
- Im Programm TPS werden Prüf-Protokolle und -Etiketten gedruckt, z.B. bei der Übernahme von Prüfdaten aus Schnittstellen
- Man benötigt allerdings das Zugriffsrecht "ReportDesigner", um den Designer öffnen zu können.
- (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:
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:
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.
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
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. 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) | 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:
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:
- 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
- Mit diesem Druckprogramm werden Etiketten für Artikel oder Adressen erzeugt.
- zum Drucken von Listen und Auswertungen.
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:
- Interne Variablen
- Report-Name
- Fortlaufende Nummer
- Zähler-Variable zum Unterdrücken von wiederholten Werten
- Variablen im Code mit Inhalten füllen
- Schrift-Farbe von Felder abhängig von der Fremdmenge
- Farbe eines Bandes abwechselnd grau/weiß
- Zahlen und Datum formatieren
- Bilder zur Laufzeit laden
- Hyperlinks in Feldern
- Tabelle wird im Report nicht angezeigt
- Band wird nicht gedruckt, obwohl Daten vorhanden sind
- Detail-Band mit Auftragspositionen wird mehrfach gedruckt, obwohl nur ein Datensatz vorhanden ist
- Anzahl Seitennummern ist 0
- Etikettenformular: Es wird immer nur ein Etikett gedruckt
- Fehlermeldung: "Variante des Typs (UnicodeString) konnte nicht in Typ (Double) konvertiert werden
- Windows-Explorer mit dem Formular-Ordner öffnen im Druck-Fenster
11 Updates
Mit diesen Links kommen zu den Update-Beschreibungen der Druckprogramme: