Vererbung in FastReport

Mit dem Artikel (Fast Report – die neue Druckausgabe) wurde die seit Version 8.3 in CARD/1 integrierte Druckausgabemöglichkeit über FastReport vorgestellt.

Ein Punkt, der immer wieder zu Fragen führt, ist dabei die Vererbung. Der Begriff (engl. Inheritance) stammt aus der Programmierung mit Objektorientierung und ist Programmierern daher vertraut. Die Fachanwender dagegen, die CARD/1 bedienen, nicht aber programmieren sollen und wollen, haben damit ansonsten wenig zu tun, da es im Straßen- und Bahnbau und in der Vermessung im allgemeinen nichts zu vererben gibt.
Die Grundlage für die Vererbung bei Drucklisten zeigt das nachstehende Diagramm, das die Aufteilung der Layoutgestaltung in mehrere Ebenen deutlich macht:

Abb.: Layoutebenen

 

Der Sinn dieser mehreren Ebenen besteht darin, dass alle Eigenschaften einer Druckausgabe nur ein Mal festgelegt werden müssen. So sollen alle Druckausgaben eine einheitlichen Druckkopf bekommen können, unabhängig davon, ob es sich dabei z.B. um eine Achstabelle oder ein Deckenbuch handelt. Entsprechend ist der Druckkopf die unterste Stufe der Vererbungsskala. Ebenfalls für alle Druckausgaben gleich sollen z.B. die Angaben des Projektnamens und der Seitenzahlen sein, so dass diese Eigenschaften in der nächsten Stufe im Basislayout vereinbart werden. Da das Basislayout immer den Druckkopf als Grundlage hat, könnte man diesen auch dirket in das Basislayout integrieren und damit eine Stufe sparen. Das hätte aber den Nachteil, dass sich der Druckkopf nicht mehr so einfach austauschen lässt. Oberhalb des Basislayouts verzweigen dann die Layouts und es werden die Eigenschaften z.B. für Tabellenköpfe festgelegt, die dann nur für die Drucklisten gelten, die Standardtabellen sind.
Soll einen Text, z.B. in Microsoft Word ®, mit einem Bild ausgestaltet werden, gibt es 2 Möglichkeiten, „Einfügen“ oder „Verknüpfen“. „Einfügen“ macht die Doc-Datei größer, aber auch unabhängig von anderen Dateien. Wird das Bild dann verändert, gilt diese Veränderung nur in diesem Text. Würde man beim Layout den Druckkopf einfügen statt zu vererben, dann würde auch dort jede Veränderung nur für das spezielle Layout gelten, was sich z.B. bei einer Adressänderung ungemein aufwendig gestalten würde. Beim Verknüpfen des Bildes mit dem Text enthält die Doc-Datei lediglich einen Verweis auf die Bilddatei. Sie bleibt schlanker und eine Änderung des Bildes müsste in der Bilddatei selbst vorgenommen werden. Diese Veränderung würde sich aber auf alle Textdateien auswirken, in denen dieses Bild verknüpft ist. Das Verknüpfen kommt dem Vererben schon näher als das Einfügen, denn auch beim Vererben ist es zunächst so, dass sich eine Änderung im Druckkopf auf alle Layouts auswirkt, die von diesem erben. Der Unterschied zwischen Verknüpfen und Vererben besteht darin, dass eine Änderung der Eigenschaften des Objektes, von welchem geerbt wird, auch in den darüberliegenden Ebenen möglich ist. Die Grundeigenschaft wird dann von der in der höher liegenden Ebene überdeckt, übrige Eigenschaften werden von dort übernommen. Eine sinnvolle Anwendung dieser Möglichkeit soll nachfolgendes Beispiel verdeutlichen.

Zuerst werden ein Druckkopf und ein Basislayout für alle Listen vorbereitet:

Abb.: Basislayout mit Druckkopf

 

An den Schlössern ist zu erkennen, welche Angaben aus dem Druckkopf stammen und vererebt wurden.

Nun soll dieses Basislayout für das Anwendungslayout für den Deckenbuchdruck verwendet werden. Der Deckenbuchdruck soll aber zur besseren Lesbarkeit aus A4 Querformat ausgegeben werden. Mit der entsprechenden Vererbung ergibt sich folgendes Bild:

Abb.: Deckenbuch mit Vererbung unangepasst (zum Zoomen klicken))

 

Die Lesbarkeit des Inhalts ist gegeben, aber es ist unschön, dass sowohl dem Druckkopf als auch der Fußzeile anzusehen ist, dass sie für A4 Hochformat ausgelegt sind. Deshalb werden im Deckenbuchlayout, z.B. in der Datei DeckenbuchReport_breit_einfarbig.fr3, einige Eigenschaften sowohl des Druckkopfes als auch des Basislayouts angepasst:

App.: Deckenbuch mit Vererbung Kopf anpassen (zum Zoomen klicken)

 

Es wurden die Breite des Rahmens, die Position von Logo und Adresse und die Breite des Feldes zur Projektbeschreibung geändert. Im Ergebnis sieht das Deckenbuch wie folgt aus:

Abb.: Deckenbuch mit Vererbung angepasst (zum Zoomen klicken)

Zu beachten ist, dass sich nicht nur die Optik bezüglich der Positionen verbessert hat, sondern der neu geschaffene Platz im Druckkopf führt außerdem dazu, dass die Projektbezeichnung nicht mehr umgebrochen werden muss, sondern auf einer Zeile steht. All diese Veränderungen betreffen nur das Deckenbuch, Druckkopf und Basis können auch weiterhin für Ausgabe in A4 Hochformat genutzt werden. Und auch der Austausch von Inhalten im Druckkopf selbst wirkt sich infolge der immer noch bestehenden Vererbung auf alle Drucklisten aus. Zur Verdeutlichung wurde die Anschrift im Druckkopf verändert. Die Vorschau des Druckkopfes (A4 Hochformat) ergibt folgendes Bild:

Abb.: Druckkopf ABC Vorschau

Ohne dass nochmals irgend etwas am Deckenbuch-Layout geändert wurde, sieht der Ausdruck dort nun so aus:

Abb.: Deckenbuch mit Vererbung und angepassten neuen Kopf

Eine solche Variabilität lässt sich weder mit Einfügen noch mit Verknüpfen, sondern nur mit Vererbung erreichen.

 


Durch die weitere Nutzung der Seite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn Sie diese Website ohne Änderung der Cookie-Einstellungen verwenden oder auf "Akzeptieren" klicken, erklären Sie sich damit einverstanden.

Schließen