RTF-Vorlagen bearbeiten

Aus ProfilGlossar
Wechseln zu: Navigation, Suche

Hilfe zur Bearbeitung von RTF-Vorlagen. in profil c/s.

Seitenlayout anpassen

Wenn für eine Seite -weil vielleicht der Inhalt des einzusetzenden Ersetzungsfeldes sehr breit ist- Querformat benötigt wird, ist folgender Weg empfohlen:

  • Abschnittsumbruch einfügen.
  • Für den neuen Abschnitt das Seitenlayout auf Querformat einstellen.
  • Ggf. weiteren Abschnittsumbruch einfügen und wieder Hochformat einstellen.

Ersetzungsfelder

Ersetzungsfelder werden nach folgenden Typen unterschieden
Wert: ein einzelner Wert - wie z.B. ein Wort, ein zusammenhängender Text oder eine Zahl
Block: mehrere "Werte" sinnvoll zusammengefasst - wie z.B. Adresse ("Name", "Straße", "PLZ", "Ort" und "Ortsteil" als Werte)
Liste: mehrere "Werte" in einer Auflistung - wie z.B. eine Spalte einer Tabelle
Tabelle: mehrere "Werte" in Form einer Tabelle

Um ein Ersetzungsfeld vom Typ Liste in eine Vorlage einzufügen, muss man zuvor eine Tabelle einfügen. In einer Zelle der Tabelle ist dann das Ersetzungsfeld einzufügen.

Das Ersetzungsfeld vom Typ Tabelle gibt selber schon eine Tabelle zurück. Es muss und sollte daher nicht innerhalb einer eingefügten Tabelle liegen.

Wichtige Tastenkombinationen für die Arbeit mit Ersetzungsfeldern:

ALT + F9  -> schaltet die Feldfunktionen global ein/aus
STRG + F9 -> legt ein neues Ersetzungsfeld an

Neues Ersetzungsfeld anlegen: Siehe Microsoft-Support

Ab Word 2010 kann man die Feldfunktionen auch über das Kontextmenü ein-/ausschalten. Hierfür ein Feld markieren und mit der rechten Maustaste das Kontextmenü öffnen.

Varianten von Ersetzungsfeldern in Vorlagen

Variante Beschreibung Beispiel
DATABASE Vorsatz für die Verwendung von Standard-Ersetzungsfeldern. Gibt es kein Ersetzungsfeld mit dem angegebenen Namen, so wird im Bescheid eine Fehlermeldung ausgegeben, dass keine Datenquelle verfügbar ist.

{DATABASE AktenzeichenA}

FILLIN Vorsatz für die Verwendung von Standard-Ersetzungsfeldern. Im Gegensatz zu DATABASE kommt es bei FILLIN nicht zur Fehlermeldung im Bescheid, wenn das angegebene Ersetzungsfeld gar nicht verfügbar ist. {FILLIN AktenzeichenA}
SEQ Spezielles Ersetzungsfeld für eine automatische forlaufende Nummerierung der Gliederung im Bescheid (s.a. SEQ-Ersetzungsfeld) {SEQ <Typ> <Nummernfolge>}
TBS1 Spezieller Vorsatz für Textbausteine {TBS <Textbaustein-Bezeichnung>}
PRUEF_* 1 Liefert Ersetzungsfelder für automatische und manuelle Prüfungen und Prüfschritte aus dem VWK-Protokoll (von ELER/investiven Förderanträgen) {PRUEF_LANGBEZ <PRUEFUNGSCODE>}
PARAMFELD1 Dient dem Einfügen parametrierbarer Ersetzungsfelder und erweitert damit die Möglichkeiten der Varianten DATABASE und FILLIN. Die Erweiterung besteht darin, dass das Verhalten des Ersetzungsfeldes durch Angabe von weiteren Parametern gesteuert werden kann. {PARAMFELD istFoerdergegenstandBewilligt U8E*}

1Diese Ersetzungsfeldvarianten sind Referenzersetzungsfelder. Sie erhalten in der RTF-Vorlage den Vorsatz REF, d.h. {PRUEF_LANGBEZ <CODE>} wird in der Vorlage als {REF PRUEF_LANGBEZ <CODE>} gespeichert. Bei der Eingabe in Microsoft Word kann der Vorsatz REF jedoch weggelassen werden, da er bei der Speicherung der Vorlage automatisch hinzugefügt wird.

Spaltenkopf

Soll der Spaltenkopf auf jeder Seite der Vorlage bei Druck neu ausgegeben werden, muss in Word die entsprechende Konfiguration vorgenommen werden. Dazu stellt sich der Bearbeiter in die erste Spalte der Spaltenzeile von der Tabelle und drückt Shift + Alt + Ende. Damit wird die Spaltenkopfzeile vollständig markiert. Anschließend ruft der Bearbeiter per Rechtsklick auf die markierte Zeile die Tabelleneigenschaften auf. Auf dem Tab Zeile ist dann der Haken bei "Gleiche Kopfzeile auf jeder Seite wiederholen" zu setzen.


IF Anweisungen in RTF-Vorlagen

In bearbeitbaren Bescheiden kann man bedingte Ausgaben von Text und/oder Ersetzungsfeldern nutzen.

HINWEIS: Hierzu werden verschachtelte Felder benutzt. Im sie zu erzeugen, muss jedes Feld (entspricht jedem paar geschweifter Klammern) über die Tastenkombination Strg+F9 erzeugt werden. Zur Überprüfung kann in Word die "Formatierungszeichen" eingeblendet werden. Bei jedem wirklichen Feld sind die geschweiften Klammern dann mit einem gestrichelten Rahmen umgeben. Wenn dieser Rahmen nicht vorhanden ist, wurde lediglich eine geschweifte Klammer eingetippt.

Ersetzungfeld Typ Wert

Abfrage auf genauen Wert:

{IF {DATABASE AktenzeichenA} = "abc" "true Text" "false Text"}


Abfrage auf nicht leer:

Vorzugsweise ist nach Möglichkeit auf einen Wert zu prüfen, da das Leerzeichen unterschiedlich codiert sein kann (siehe IF-Abfragen auf nicht angemeldete oder "leer" gefüllte Ersetzungsfelder)

{IF {DATABASE AktenzeichenA} <> "" "true Text" "false Text"}

Abfrage auf leer:

Vorzugsweise ist nach Möglichkeit auf einen Wert zu prüfen, da das Leerzeichen unterschiedlich codiert sein kann (siehe IF-Abfragen auf nicht angemeldete oder "leer" gefüllte Ersetzungsfelder)

{IF {DATABASE AktenzeichenA} = "" "true Text" "false Text"}

Ersetzungsfeld Typ Dezimal

Abfrage auf = …:

{IF {DATABASE zuwendungBewilligtDecimal} = 12345.0 "true Text" "false Text"}

Abfrage auf < …:

{IF {DATABASE zuwendungBewilligtDecimal} < 87654.0 "true Text" "false Text"}

Abfrage auf > …:

{IF {DATABASE zuwendungBewilligtDecimal} > 54687.0 "true Text" "false Text"}

Ersetzungsfeld vom Typ Datum

Abfrage auf nicht leer

{IF {DATABASE bewilligterDurchfuehrungsZeitraumVon} <> "" "true Text" "false Text"}

Abfrage auf leer:

{IF {DATABASE bewilligterDurchfuehrungsZeitraumVon} = "" "true Text" "false Text"}

Abfrage auf >:

{IF {DATABASE bewilligterDurchfuehrungsZeitraumVon} > tt.mm.jjjj "true Text" "false Text"}

Abfrage auf <:

{IF {DATABASE bewilligterDurchfuehrungsZeitraumVon} < tt.mm.jjjj "true Text" "false Text"}

Abfrage auf <>:

{IF {DATABASE bewilligterDurchfuehrungsZeitraumVon} <> tt.mm.jjjj "true Text" "false Text"}

Verschachteltes IF

Am Beispiel von Dezimalfeldern, Abfrage auf >:

{IF {DATABASE zuwendungBewilligtDecimal} > 200000.0 "true text" "{IF {DATABASE zuwendungBewilligtDecimal} > 100000.0 "true text" "false text"}"}

In diesem konkreten Beispiel soll folgendes Feld ausgewertet werden:

zuwendungBewilligtDecimal: {DATABASE zuwendungBewilligtDecimal}
{IF {DATABASE zuwendungBewilligtDecimal} > 500000.0 "Schild anbringen" "{IF {DATABASE zuwendungBewilligtDecimal} > 50000.0 "Plakat anbringen" "keine Werbung"}"}

Weiteres Beispiel für UND-Verknüpfung: Anhand von zwei IF-Bedingungen den anzuzeigenden Bescheidtext steuern (mit UND verknüpfen).

In Word kann man dieses Beispiel auch testen, indem man per Rechts-Klick auf "Feld aktualisieren" klickt. Dann erscheint ein Eingabe-Feld, in dem man zuerst BEDINGUNG1 (true/false) und dann BEDINGUNG2 eingeben muss.

{ IF { FILLIN BEDINGUNG1 } = "true"  { IF { FILLIN BEDINGUNG2 } = "true" "true1UndTrue2Text" "true1UndFalse2Text" } "false1Text" }

Textbausteinersetzungsfelder in IF-Abfragen

Einfügen eines Textbausteins bei erfüllter Bedingung:

{IF {DATABASE hatNebenbestimmung} = "true" "{TBS nebenbestimmung}" "keine Nebenbestimmungen"}

IF-Abfragen auf nicht angemeldete oder "leer" gefüllte Ersetzungsfelder

Wird ein Ersetzungsfeld nicht gefunden, weil es nicht angemeldet wurde, so wird hierfür im Zieldokument ein Inline eingefügt, welches ein NBWS (Ascii-Code 160) enthält. In den RTF-Vorlagen wird zumeist auf ein Leerzeichen (Ascii-Code 32) geprüft. Damit werden dann zwar IF-Bedingungen im Zusammenhang mit "leeren" Ersetzungsfeldern korrekt ausgewertet, nicht aber fehlende Ersetzungsfelder.

Welche Lösungen existieren?

  1. Die Dataprovider geben folgendes zurück: return value == null || value.toString().length() == 1 && Character.isWhitespace( value.toString().charAt( 0 ) ) || value.equals( "" ) ? '\u00A0' : value; Hierbei werden leere Werte quasi immer auf NBWS gemappt, so wie es JFO dann auch bei nicht vorhandenen Ersetzungsfeldern tut. Dafür muss aber in den Vorlagen auch auf NBWS abgeprüft werden. Dieses ist in der RTF-Datei visuell nicht vom normalen Leerzeichen (" ") zu unterscheiden. Es wird unter Word erstellt, indem man STRG+SHIFT+Leerzeichen betätigt.
  2. Die RTF-Vorlage wird angepasst. Hierbei müssen dann die IF-Abfragen auf ein normales Leerzeichen mit der IF-Abfrage auf ein NBWS ODER-verknüpft werden: { IF {DATABASE feldname } = " " "leer" { IF { DATABASE feldname } = " " "leer" "voll" }} " " - Leerzeichen (Ascii 32) " " - NBWS (Ascii 160)
  3. Wir lassen JFO ändern. Hierbei müsste die Grammatik für IF-Bedingungen z.B. um ein EXISTS_OR_EMPTY erweitert werden.

Bezüglich der vorstehenden Lösungsmöglichkeiten wurde noch kein einheitliches Vorgehen festgelegt. Solltet Ihr auf solch ein Problem stoßen, meldet Euch bitte bei der PG Technologie.


Tabellen

Für das Wiederholen von Tabellenkopfzeilen beim Seitenwechsel ist wie folgt vorzugehen (Beispiel aus Word 2013):

  1. Selektion der Tabelle
  2. Im Menü erscheint der Eintrag Tabellentools->Layout
  3. Schaltfläche Layout selektieren
  4. Schaltfläche Daten selektieren
  5. Schaltfläche Überschriften wiederholen markieren

SEQ-Ersetzungsfeld

Dieses spezielle Ersetzungsfeld ist für eine fortlaufende Numerierung der Gliederung im Bescheid vorgesehen.