Template Builder for Word (RTF-Layout-Templates)

Werbung
Oracle BI Publisher - Template Builder for Word (RTFLayout-Templates)
Version 10.1.3.4.1
Seitenkopf und –fuß im RTF-Template definieren
Viele Berichte sind im Inhalt und Umfang zwar stark variabel, sollen aber auf
jeder Dokumentseite mit einem einheitlichen Layout aufwarten. Dazu gehört die
Ausgabe desselben Kopfs und Fußes, zum Beispiel mit dem Firmenlogo oder
den Kontaktdaten.
Dieser Tipp beschreibt die verschiedenen Möglichkeiten, innerhalb eines RTFTemplates einen Seitenkopf oder -fuß zu definieren, der dann auf jeder Seite des
Berichts ausgegeben wird. Soweit nicht anders angegeben, funkioniert die
Ausgabe sowohl im PDF als auch RTF-Format.
1. Word-Funktionalität
Word definiert bereits Bereiche für den Seitenkopf und -fuß. Diese lassen sich
über Ansicht -> Kopf- und Fußzeile zur Bearbeitung öffnen.
Die Kopf- und Fußzeile gilt in der Standardeinstellung für alle Seiten des
Berichts. Für die erste Seite und gerade/ungerade Seiten lassen sich aber auch
eigene Kopf- und Fußzeilen erstellen. Dies kann unter Datei -> Seite einrichten
-> Layout über die Optionen Gerade/ungerade anders und Erste Seite anders
aktiviert werden.
Für jede dieser beiden Optionen wird eine eigene Seite im RTF-Dokument
benötigt, auf welcher die zugehörige Kopf- und Fußzeile definiert wird.
Layout-Option
Gerade/ungerade
Erste Seite
anders
anders
Seite 2
Seite 3
Kopf- und Fußzeile gilt für
X
alle Seiten
erste Seite
X
ungerade
Seiten
erste Seite
X
X
Seite 1
alle Seiten
ab Seite 2
gerade
Seiten
gerade
Seiten
ungerade
Seiten ab
Seite 3
Umfasst das RTF-Template nicht genug Seiten, um alle Kopf- und Fußzeilen zu
definieren, empfiehlt sich folgendes Vorgehen:
1. Am Ende des Templates Seitenumbrüche einfügen, bis die benötigte Anzahl
an Seiten erreicht ist.
2. Die Kopf- und Fußzeilen wie benötigt anpassen.
3. Die zuvor eingefügten Seitenumbrüche wieder entfernen.
Dies ist notwendig, da BI Publisher ansonsten noch entsprechend viele leere
Seiten an den Bericht anhängen würde. Die in Schritt 2 definierten Kopf- und
Fußzeilen werden beim Entfernen der Seitenumbrüche nicht gelöscht,
sondern sind im RTF-Template nur versteckt.
Ein Nachteil der Word-Kopf- und Fußzeilenbereiche ist, dass sich dort keine
Textformularfelder einbinden lassen. Funktionen des Template-Builders für Word
wie das Einfügen von Feldern, Tabellen über den Tabellenassistenten etc. sind
dort damit nicht verwendbar.
Referenzen auf die XML-Datenelemente und anderer Code können aber
immerhin als Klartext eingebunden werden.
Der so hinterlegte Code erscheint allerdings nicht im Feld-Browser, und es
können Layoutprobleme wie unerwünschte Umbrüche/Leerzeilen/Leerzeichen
oder zu breite Tabellenspalten auftreten, wenn der Code zu viel Platz in
Anspruch nimmt.
Um dem entgegenzuwirken, gibt einige Möglichkeiten, den Platzbedarf des
Codes zu verringern oder Code ganz einzusparen:

Die Daten sollten im XML so bereitgestellt werden, dass diese für die
Ausgabe im Kopf oder Fuß weder umorganisiert (Umgruppierung,
Umsortierung, Filterung) noch deren Werte verändert werden müssen
(Berechnungen, String-Operationen).
Ziel ist das Einsparen von Operationen.

Die für die Referenzierung von XML-Daten benötigten X-Path-Ausdrücke
sollten so kurz wie möglich gehalten werden. Hierbei helfen
o in der XML-Hierarchie möglichst weit oben platzierte Daten
=> Anzahl der Parents reduzieren
o kurze Bezeichner im XML

Bei Code-Bestandteilen, die nicht für die Ausgabe formatiert werden müssen
(<?for-each: ...?>, <?if: ...?>, <?end ...?> etc), kann weiterer Platz gespart
werden durch
o Eingabe mit kleinem Schriftgrad (bis runter zu 1)
o Heruntersetzen der Skalierung (Text markieren, Format -> Zeichen ->
Zeichenabstand Option Skalierung, bis runter zu 1%)
Darunter kann allerdings die Lesbarkeit des Templates stark leiden.
2. BI-Publisher-Syntax
Eine weitere Möglichkeit zur Erstellung eines Seitenkopfs/-fußes bietet der
Ausdruck <?start:body?><?end body?>.
Alle Eingaben vor <?start:body?> ergeben den Seitenkopf, alles nach <?end
body?> den Seitenfuß. Der Inhalt zwischen <?start:body?> und <?end body?>
definiert den restlichen Seiteninhalt.
Bei der Ermittlung von Kopf- und Fußinhalt wird nur der aktuelle
Dokumentabschnitt betrachtet. <?start:body?> <?end body?> darf pro
Dokumentabschnitt auch nur einmal vorkommen.
Der Vorteil dieser Variante im Vergleich zur Word-Kopf-/Fußzeile ist, dass die
normale Seiteneingabe benutzt werden kann und damit die Verwendung von
Textformularfeldern möglich ist.
Allerdings ist die Definition eines eigenen Layouts für gerade und ungerade
Seiten gar nicht möglich und für die erste Seite nur dann, wenn diese als eigener
Abschnitt angelegt werden kann.
Andererseits kann ein eigenes Layout für die letzte Seite erstellt werden (nur für
PDF-Ausgaben).
Vorgehen:
1. Am Ende des RTF-Templates einen Abschnittsumbruch einfügen
2. Nach dem Abschnittswechsel den Inhalt für den Kopf der letzten Seite
erstellen.
3. Im Anschluss an den Seitenkopf diesen Code einfügen:
<?start@last-page:body?><?end body?>
Anders als bei <?start:body?><?end body?> bleibt der Inhalt leer.
4. Darunter den Inhalt für den Fuß der letzten Seite einfügen.
<?start@last-page:body?><?end body?> dient nur dazu, den für die letzte
Seite abweichenden Kopf und Fuß zu definieren. Der eigentliche Seiteninhalt
wird aus dem vorangehenden Dokumentabschnitt bezogen, in diesem Fall also
aus <?start:body?><?end body?>.
Besteht die Ausgabe nur aus einer Seite, wird diese mit dem normalen
Seitenkopf und -fuß ausgegeben. Um in diesem Fall stattdessen das Layout der
letzten Seite anzuwenden, kann
<?start@last-page-first:body?><?end body?>
anstelle von
<?start@last-page:body?><?end body?>
verwendet werden.
<?start@last-page:body?><?end body?> lässt sich auch ohne vorangehendes
<?start:body?><?end body?> verwenden. Damit wird ein zusammengesetztes
Layout unter Verwendung von Word-Kopf- und Fußzeilen möglich.
Herunterladen