FastReport Vererbung/Basis-Report

Aus GEVITAS
Wechseln zu: Navigation, Suche

1 Allgemeines

Hier wird beschrieben, wie Sie die Vererbung eines Basis-Reports dazu verwenden können, bestimmte Daten (in der Regel den Kopf- und Fußbereich) eines Reports aus einem anderen Report "einmischen" können.

2 Wozu?

Mithilfe eines Basis-Reports können Sie bestimmte Bereiche ihrer Reports mit einem anderen Report verknüpfen ("vererben"). Typische Anwendungen hierfür sind die Kopf- und Fußzeilen, die Firmenlogo, Bankverbindungen usw. beihalten und auf allen offiziellen Formularen erscheinen sollen.

Es genügt in diesem Fall, den Basis-Report mit den entsprechenden Bändern im Kopf und im Fuß auszustatten und dort die gewünschten Felder einzufügen.

Dann gibt man in den eigentlichen Reports unter Report-Optionen --> Vererbung an, dass man den Basis-Report erben möchte.

Dadurch erscheinen die Kopf- und Fußdaten automatisch in jedem neuen Report in der richtigen Form!

Ändert sich nun etwa in der Kopf- oder Fußzeile, muss man nur den Basis-Report ändern! Sofort sind die Änderungen in allen anderen Reports auch vorhanden!

3 Achtung

Wenn Sie einen Basis-Report verwenden, muss der Basis-Report im angegebenen Verzeichnis mit dem angegebenen Namen vorhanden sein!. Wenn Sie diese Datei verschieben oder umbenennen, laufen die Reports nicht mehr, die auf den Basis-Report Bezug nehmen! Wenn Sie versuchen, den Report im Designer zu öffnen, wird das Laden des Reports abgebrochen und die Report-Daten fehlen anscheinend! Speichern Sie in diesem Fall den Report nicht (und wenn, unter einem anderem Name) sondern schließen den Designer wieder und stellen die Datei des Basis-Reports wieder her!

4 Verzeichnis für den Basis-Report

Als Verzeichnis für den Basic-Report empfiehlt sich das allgemeine Formularverzeichnis. Beispiel einer Verzeichnis-Struktur:

Verzeichnis Beschreibung
R:\Formular Allgemeines Formular-Verzeichnis, in dem eigentliche keine Reports stehen. Die eigentlichen Reports stehen in Unterverzeichnissen (s.u.). Für den Basis-Report ist das jedoch der richtige Platz!
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\FertigungTypenschilder Reports für die Typenschilder aus der Fertigung. Dieses Verzeichnis wird vom Etikettendruck-Programm "GevitasLabelPrint" benutzt!
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.


Wenn Sie einen Report z.B. im Verzeichnis

"R:\Formular\Auftrag"

haben und den Basis-Report von

"R:\Formular" 

zuweisen, so merkt sich FastReport in der Reportdatei den Verweis auf den Basis-Report als

 "..\BasisReport_01.fr3"

also ein relatives Verzeichnis höher als der Report. Es wird also kein fester, absoluter Pfad gespeichert. Dadurch kann man die Reports z.B. in

"D:\Formular\Auftrag"

entwickeln, beim Anwender kann das Verzeichnis jedoch

"R:\Formular\Auftrag" 

heißen! Trotzdem wird der Basis-Report gefunden!

5 Objekt-Namen im Basis-Report

Es empfiehlt sich, die Objekt-Namen im Basis-Report möglichst so zu vergeben, dass später keine Namens-Konflikte mit dem eigentlichen Report auftreten.

  • Zwar bietet FastReport bei Namenskonflikten die Möglichkeit an, die Namen der Objekt zu ändern, wenn man einen Report erbt. Hat man jedoch schon Ereignisse für die nun umbenannten Felder geschrieben, funktionieren diese u.U. nicht.
  • Wenn man den Basis-Report nachträglich ändert (z.B. neue Felder einfügt) und diese Namen bekommen, die es im eigentlichen Report auch gibt, kommt es unweigerlich zu Kollisionen! FastReport kommt dann total durcheinander und druckt diese Felder scheinbar willkürlich irgendwo aus!
Deshalb
z.B. den Seitenkopf von "PageHeader1" in "BasisSeitenKopf" umbenennen, den Seitenfuß von "PageFooter1" in "BasisSeitenFuss", die Felder von "Memo1" in "BasisMemoFirmaName" usw.
Nicht die Standardnamen "Memo1", "Memo2" usw. verwenden!

Siehe auch:

6 Links