FastReport Vererbung/Basis-Report: Unterschied zwischen den Versionen

Aus GEVITAS
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== Allgemeines == Hier wird beschrieben, wie Sie die Vererbung eines Basis-Reports dazu verwenden können, bestimmte Daten (in der Regel den Kopf- und Fußber…“)
 
(Verzeichnis für den Basis-Report)
 
(12 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 5: Zeile 5:
 
== Wozu? ==
 
== 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!
  
 
== Achtung ==
 
== Achtung ==
Zeile 10: Zeile 19:
 
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!
 
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!
  
Als Verzeichnis für den Basic-Report empfiehlt sich das allgemeine Formularverzeichnis. Beispiel:
+
== Verzeichnis für den Basis-Report ==
  
 +
Als Verzeichnis für den Basic-Report empfiehlt sich das allgemeine Formularverzeichnis. Beispiel einer Verzeichnis-Struktur:
  
 
{| class="wikitable" style="text-align: left;"
 
{| class="wikitable" style="text-align: left;"
Zeile 18: Zeile 28:
 
|- valign="top"
 
|- valign="top"
 
|R:\Formular
 
|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!
+
|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'''!  
 
|- valign="top"
 
|- valign="top"
 
|R:\Formular\Auftrag
 
|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"
 
|- valign="top"
 
|R:\Formular\Bestell
 
|R:\Formular\Bestell
|
+
|Reports für Bestellungen.
 
|- valign="top"
 
|- valign="top"
 
|R:\Formular\Fertigung
 
|R:\Formular\Fertigung
|
+
|Reports für die Fertigung.
 +
|- valign="top"
 +
|R:\Formular\FertigungTypenschilder
 +
|Reports für die Typenschilder aus der Fertigung. Dieses Verzeichnis wird vom Etikettendruck-Programm "GevitasLabelPrint" benutzt!
 
|- valign="top"
 
|- valign="top"
 
|R:\Formular\LiefSch
 
|R:\Formular\LiefSch
|
+
|Reports für den Lieferschein bei der Lagerausgabe.
 
|- valign="top"
 
|- valign="top"
 
|R:\Formular\Ladeliste
 
|R:\Formular\Ladeliste
|
+
|Reports für die Ladeliste aus der Auftragsverwaltung oder der Lagerausgabe.
|- valign="top"
 
|R:\Formular\LiefSch
 
|
 
 
|- valign="top"
 
|- valign="top"
 
|R:\Formular\KV
 
|R:\Formular\KV
|
+
|Reports für den Kostenvoranschlag in der Werkstatt.
 
|- valign="top"
 
|- valign="top"
 
|R:\Formular\Mahnungen
 
|R:\Formular\Mahnungen
|
+
|Reports für die Mahnungen.
 
|- valign="top"
 
|- valign="top"
 
|R:\Formular\Rechnung
 
|R:\Formular\Rechnung
|
+
|Reports für Rechnungen und Gutschriften.
 
|- valign="top"
 
|- valign="top"
 
|R:\Formular\WAuftrag
 
|R:\Formular\WAuftrag
|
+
|Reports für den Werkstatt-/Reparatur-Auftrag.
 
|}
 
|}
  
  
  
 +
Wenn Sie einen Report z.B. im Verzeichnis
 +
 +
<code>"R:\Formular\Auftrag"</code>
 +
 +
haben und den Basis-Report von
 +
 +
<code>"R:\Formular"</code>
 +
 +
zuweisen, so merkt sich FastReport in der Reportdatei den Verweis auf den Basis-Report als
 +
 +
  <code>"..\BasisReport_01.fr3"</code>
 +
 +
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
 +
 +
<code>"D:\Formular\Auftrag"</code>
 +
 +
entwickeln, beim Anwender kann das Verzeichnis jedoch
 +
 +
<code>"R:\Formular\Auftrag"</code>
 +
 +
heißen! Trotzdem wird der Basis-Report gefunden!
 +
 +
== 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:
  
 +
* [[FastReport_Fehler,_Ursachen,_Behebung#Im_Report_werden_Felder_gedruckt.2C_die_es_gar_nicht_gibt|Im Report werden Felder gedruckt, die es gar nicht gibt]]
  
 
== Links ==
 
== Links ==

Aktuelle Version vom 9. März 2016, 22:23 Uhr

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