RTF-Vorlagen bearbeiten

Aus ProfilGlossar
Version vom 7. Mai 2018, 15:11 Uhr von Replikator (Diskussion) (Artikel wurde geändert)
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}
TBS Spezieller Vorsatz für Textbausteine {TBS <Textbaustein-Bezeichnung>}
SEQ Spezielles Ersetzungsfeld für eine automatische forlaufende Nummerierung der Gliederung im Bescheid (s.a. SEQ-Ersetzungsfeld) {SEQ <Typ> <Nummernfolge>}
PRUEF_* Liefert Ersetzungsfelder für manuelle Prüfungen und Prüfschritte aus dem VWK-Protokoll (von ELER/investiven Förderanträgen) {PRUEF_LANGBEZ <PRUEFUNGSCODE>}

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.

Ersetzungfeld Typ Wert

Abfrage auf nicht leer:

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

Abfrage auf leer:

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

Abfrage auf genauen Wert:

{IF {DATABASE AktenzeichenA} = "abc" "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: Anhand von zwei IF-Bedingungen den anzuzeigenden Bescheidtext steuern. 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.