Beliebige Anzahl an Custom Tags beim Report Generieren

Der Report Generator erlaubt es, für das gesamte Projekt eine beliebige Anzahl an Custom-Tags zu konfigurieren. Diese können in jedem Report an beliebiger Stelle ausgegeben werden.
Um diese Custom Tags in einem RTF-Template verwenden zu können, kann nun der Wert dieses Tags in einem RTF-Template an jeder Stelle über das Kontextmenü [Project Constants > ] eingefügt werden.

 

 

Soweit, so gut. Möchten wir nun allerdings Konstante definieren, die nicht für das gesamte Projekt, sondern für ein bestimmtes Dokument gedacht sind, finden wir unter dem Eintrag [Project Constants] im Kontextmenü den Eintrag [Report Constants]. Damit können wir auf eine Liste vordefinierter Tags für den Report zugreifen. Diese Liste ist allerdings nicht beliebig erweiterbar!

Die Werte können allerdings mit der Verwendung von Virtuellen Dokumenten (Package mit Stereotyp <> und Klasse mit dem Stereotyp <>) gesetzt werden. 

Ein manuelles Hinzufügen weiterer Tags zu den Package mit Stereotyp <> und Klasse mit dem Stereotyp <> hat keine Auswirkung! In nachfolgenden EA Versionen wird es hoffentlich die Möglichkeit geben, diese Liste beliebig zu erweitern. Bis dahin können wir mit folgendem Workaround arbeiten.

Tagged Values eines bestimmten Modell-Elements als Report-Konstante verwenden

Um Report Konstanten zu definieren, erstellen wir einfach ein Modell-Element, z. B. eine Klasse (My Report Constants) und fügen dieser Klasse beliebige Tagged Values hinzu. Wir können natürlich auch alle anderen Properties dieser Klasse verwenden.

In unserem Virtuellen Dokument (MyDocument) erstellen wir ein Model Document (MD1). Anstelle eines Paketes in das Model Document zu ziehen, um den Inhalt dieses Paketes mit dem unter dem TaggedValue RTFTemplate definierten Templates von MD1, in das Dokument zu generieren, konfigurieren wir eine Modellsuche. 

Mit der Modell-Suche suchen wir nun nach dem Modell-Element My Report Constants. In diesem Beispiel habe ich die GUID des Modell-Element als Keyword gespeichert und suche nun mit einer Query-Builder suche. Dieser Workaround ist notwendig, da mit der Query Builder Suche nicht nach der GUID eines Modell-Elements gesucht werden kann.

Als Ergebnis erhalten wir nun das Modell-Element My Report Constants.

In dem Tagged Value RTFTemplate, welches in MD1 konfigureirt ist, können wir nun auf alles von dem Modell-Element My Report Constants zugreifen.

Schematische Darstellung des Beispiels

Alternative: Alternativ können wir auch ein Paket in das Model Document MD1 ziehen, um auf die Inhalte zuzugreifen.

Modell-Element Tags im Header/Footer verwenden

In dem RTFTemplate HeaderAndFooter öffnen wir nun den Header/Footer Bereich unter [Document Edit > Edit > Edit > Page Header/Footer > Edit Page Header/Footer].

 

 

Wir stellen den Cursor in den Header und wählen Element in linken Baum. Wir wählen [Child Package] und [Child Element] wieder ab!

Zwischen den gelben Element Tags im RTF-Template fügen wir nun über das Kontextmenü [Insert Filed > Value of] die Tagged Values ein, welche wir im Header ausgeben möchten.

Als Ergebnis erhalten wir nun auf jeder Seite den im RTFTemplate definierten Header:

 

 

Achtung: Wenn im Master Document bereits ein RTFTemplate verwendet wird, welches bereits einen Header definiert, wird dieser Header auf alle weiteren generierten Seiten angewendet!

 

 

Einschränkung:

Dieser Ansatz kann aktuell leider nicht in Cover Page Templates und Table of Content Templates verwendet werden. 

Wir können entweder den Header oder den Footer über diesen Ansatz setzen. Natürlich kann Header und Footer ausgegeben werden. Die jeweiligen Daten können allerdings nur 1x aus dem Modell abgefragt werden. Für den jeweils anderen Header/Footer können wir wieder die Project Constants oder Report Constants verwenden.

Veröffentlicht unter Dokument-Generierung, Enterprise Architect, Modell-Suche