Bearbeiten von Dokumentvorlagen in Word
Allgemeines zu Dokumentvorlagen
Da somit die Funktionalitäten von MS Word im Focus stehen, kann man diese Informationen auch unabhängig von der CURSOR-Anwendung nutzen.
Um Dokumente mit MS Word effizient und einheitlich zu erstellen und zu gestalten, verwendet man Dokumentvorlagen. Dokumentvorlagen oder auch Templates sind durch die Endung .DOT (Word 2003) bzw. DOTX und DOTM (Word 2007/2010) gekennzeichnet. Am bekanntesten ist die Vorlage Normal.dot. Wählt der Benutzer bei der Neuanlage eines Dokuments keine Vorlage aus, greift Word standardmäßig auf diese Datei zurück.
Viele Dokumentvorlagen sind meist so gestaltet, dass auf ihnen basierende Dokumente möglichst einfach bearbeitet werden können. Dafür enthalten sie Texte, Tabellen, Kopf- und Fußzeilen sowie Elemente, über die ihr Inhalt schnell angepasst werden kann. Die Formatvorlagen in diesen Templates sollten ebenfalls gut eingerichtet sein, damit die Formatierungen von Texten, Tabellen usw. sicher und einheitlich erfolgen können.
Dokumentvorlagen in CURSOR-CRM
CURSOR Software AG setzt für die Erstellung von Dokumenten solche Dokumentvorlagen ein. Diese enthalten eine Reihe von Elementen, so zum Beispiel:
Festen Text, also zum Beispiel Vertrags- oder Angebotstexte
Feldfunktionen, um die übergebenen Felder anzeigen zu können
Feldfunktionen, um die Informationen noch weiter zu bearbeiten
Makros, um die Dokument-Erstellung noch weiter zu automatisieren.
Welche dieser Elemente in einer Vorlage vorhanden sind, hängt vom jeweiligen Einsatzzweck ab.
Die folgenden Kapitel konzentrieren sich auf die Feldfunktionen. Diese bilden zum Einen das Bindeglied zu CURSOR-CRM, denn über sie werden die Daten in das Dokument übertragen und angezeigt. Wie die unten aufgeführten Feldfunktionen zeigen, kann man mit ihnen darüber hinaus das Verhalten und Aussehen der Dokumente auf relativ einfachem Weg - da ohne Makroprogrammierung - festlegen. Zu diesen Feldfunktionen werden in den folgenden Abschnitten wesentliche Informationen vermittelt.
Grundlegendes zu Feldern
Für die Ausgabe von variablen Inhalten nutzt man in Word die sogenannten Felder. Diese werden auch als Feldfunktionen bezeichnet. Ob Gliederungen, Seitenzahlen, Ankreuzkästchen oder andere Elemente, deren Inhalt sich ändern kann: hier bilden solche Felder die Grundlage.
Felder bestehen mindestens aus einem Klammerpärchen mit einem Befehlsausdruck. Das Klammerpärchen wird am einfachsten mit der Tastenkombination STRGund F9 erzeugt. Zwischen die Klammern schreibt man den Befehl, der die Funktion des Feldes festlegt. Die folgende Aufstellung zeigt eine Reihe einfacher Felder:
{ PAGE } | Die aktuelle Seitenzahl |
{ NUMPAGES } | Die Gesamtzahl der Seiten des Dokumentes |
{ SECTIONPAGES } | Die Gesamtzahl der Seiten des aktuellen Abschnitts |
{ CREATEDATE } | Das Datum der Dokumenterstellung |
{ TOC } | Die Gliederung (TOC = Table Of Contents) |
Möchte man das Ergebnis des Feldes sehen, muss man zur 'Ergebnisansicht' umschalten. Dies macht man über die Tastenkombination ALT und F9. Mit dieser schaltet man zwischen Feldfunktionen-Ansicht und der Ergebnis-Ansicht hin und her ('Toggle').
Um das Ergebnis aufzufrischen, schaltet man in die Ergebnissicht, markiert man das Feld (oder über STRG und A einfach gleich den ganzen Text) und drückt dann die Taste F9. Dadurch findet eine Aktualisierung statt, anschließend stehen die neu berechneten Inhalte in den Feldern. Felder in Kopf- und Fußzeilen bzw. in Textfeldern müssen separat aktualisiert werden. Hierzu klickt man auf die Kopf- oder Fußzeile oder auf das Textfeld, und drückt anschließend zuerst STRG+A und dann F9.
Bei vielen Feldern können zusätzliche Inhalte, Parameter und/oder Schalter hinzugefügt werden. Sie verarbeiten dann diese übergebenen Informationen. So rechnet zum Beispiel das Feld { = 3 + 4 } die Zahl 7 aus. Hier wird also dem Befehl „Rechne“ (in Form des Gleichheitszeichens) eine Information (3 + 4) übergeben. Nach dem Aktualisieren mit F9 liefert das Feld dann entsprechend das Ergebnis 7 zurück.
Wichtige Felder mit solchen übergebenen Informationen in CURSOR-CRM sind unter anderem:
{ INCLUDETEXT [Pad und Dateiname] [Textmarke] } | Liefert den durch die Textmarke definierten Bereich aus der angegebenen Datei. |
{ DOCVARIABLE [Variablenname] } | Zeigt den Inhalt der angegebenen Dokumentvariablen an |
{ DOCPROPERTY [Eigenschaftsname] } | Zeigt den Inhalt der angegebenen Dokumenteigenschaft an |
Überblick über die Felder für die Datenübergabe
In den folgenden Unterkapiteln werden die Feldfunktionen erläutert, die für die Datenübergabe aus dem CURSOR-CRM verwendet werden: das sind bei Einzeldokumenten die SET- und REF-Felder sowie die Dokumentvariablen über die Funktion DOCVARIABLE. Bei Seriendruck-Vorlagen für Briefe und Etiketten werden für die Übergabe der Daten Felder mit der Feldfunktion 'MERGEFIELD' verwendet.
Datenübergabe über SET und REF-Felder
Bei den Feldfunktionen SET und REF handelt es sich um Befehle, denen ein Wert übergeben wird. Sie sind die Standardelemente bei der Übergabe der Daten an Einzeldokumente in CURSOR-CRM.
SET- und REF–Felder "arbeiten zusammen": Das SET-Feld weist Informationen einer benannten Variable zu, die als Textmarke bezeichnet wird. Damit die Informationen im Dokument angezeigt werden, muss ein REF-Feld vorliegen, das auf die Textmarke verweist. SET bedeutet "Bestimme", REF bedeutet "Referenz".
SET-Felder bilden das Rückgrat der Datenübergabe in CURSOR-CRM: jedem Eintrag in der Mappingtabelle in CURSOR CRM ist ein solches Feld in der Vorlage gegenübergestellt. Deshalb befindet sich am Anfang der Vorlage eine oft sehr umfangreiche Auflistung solcher SET-Felder.
Diese SET - Felder haben in der Vorlage folgendes Aussehen:
{ SET GP_Name1 "GP_Name1" }
Das bedeutet: es wird der Textmarke 'GP_Name1' der Inhalt 'GP_Name1', also ihr eigener Name, zugewiesen. In der Dokumentvorlage kann diese Textmarke dann über eine REF-Funktion angezeigt werden:
{ REF GP_Name1 }
An ihrer Stelle erscheint dann nach dem Umschalten (über ALT und F9 ) sowie Auffrischen (über F9) der Text 'GP_Firma1'. Wird mit dieser Vorlage in CURSOR CRM ein Dokument erstellt, erscheint an dieser Stelle der durch die Komplexe Suche gefundene und über die Mappingtabelle / Textmarke an das Dokument übergebene Wert aus dem CRM, also der Name des Geschäftspartners.
Datenübergabe über DOCVARIABLE-Felder
Wie bereits erwähnt kann die Übergabe der Daten an das Schreiben auch über Dokumentvariablen erfolgen. Dazu muss ein entsprechender Eintrag in den Systemeinstellungen vorgenommen werden.
Die allgemeine Schreibweise der Dokumentvariablen ist wie folgt:
{ DOCVARIABLE "GP_Name1" }
Der Vorteil dieser Variablen ist, dass sie zusammen mit dem Dokument gespeichert werden und daher auch zu einem späteren Zeitpunkt (zum Beispiel in Makros) angesprochen werden können. SET- und REF-Felder dagegen werden nach der Datenübergabe aus dem Schreiben entfernt.
Bei der Dokumentengenerierung von Einzel- und Serienbriefen werden automatisch zwei Dokumentvariablen bereitgestellt.
SYSTEMTYPE
Diese Dokumentvariable enthält die Information, aus welchem System das Dokument generiert wurde (DEV, TEST oder PROD). Sie kann für die Abbildung von unterschiedlichen externen Textbausteinen für Entwicklung-, Test- und Produktivsystem verwendet werden. Der Zugriff auf das entsprechende Unterverzeichnis der Textbausteine erfolgt per kundenspezifischer VBA-Logik. Somit wären testweise Änderungen am Textbaustein des Entwicklungssystem nicht im Produktivsystem sichtbar.SYSTEMNAME
Diese Dokumentvariable enthält den Namen des Systems aus dem Bereich Customizing-Transport-Einstellungen der Systemeinstellungen. Sie bietet einen weiteren Freiheitsgrad, um unterschiedliche externen Textbausteinen abzubilden, z.B: verschiedene Produktlinien.
Datenübergabe über MERGEFIELD-Felder bei Serienbriefen
Serienbriefe werden in CURSOR-CRM in der für solche Schreiben üblichen Weise erstellt: es wird eine Datenquelle erzeugt, die dann automatisch mit dem Schreiben verbunden wird. In der Vorlage befinden sich Felder, die über die Funktion MERGEFIELD auf die Werte in der entsprechenden Spalte der Datenquelle zugreifen:
{ MERGEFIELD GP_Name1 }
Der Name des Feldes wird durch im CURSOR-CRM erzeugt. Um die Namen dieser Fehler in Erfahrung zu bringen, erstellt man am einfachsten einen Serienbrief über einen Testlauf und betrachtet sich dann in Word die Datenquelle oder fügt Felder aus dieser Datenquelle über die üblichen Schalter in das Dokument ein. Eine wesentliche Rolle bei Serienbriefen spielt die Feldfunktion NEXT. Mit ihrer Hilfe kann man ohne Seitenwechsel zum nächsten Datensatz springen. Das benötigt man, wenn es darum geht, Etikettenvorlagen zu gestalten. Dabei wird (beginnend mit dem zweiten Etikett) das Feld 'NEXT' an den Anfang des Adressbereiches gestellt.
Schalter und Formatierungsanweisungen
Bevor wir uns weiteren Feldfunktionen zuwenden, sollen hier die Wirkungen der Feldschalter beschrieben werden. Bei vielen Feldern gibt es solche Schalter. Sie können zusätzlich in das Klammerpärchen eingefügt werden und beeinflussen das Verhalten des Feldes. Schalter stehen hinter den Befehlen und Informationen und beginnen immer mit einem Backslash („\“). Diesem folgt ein Zeichen, welches den Schalter darstellt. Dem Schalter selbst können wiederum noch weitere Informationen hinzugefügt werden.
Formatschalter
Die in CURSOR CRM – Vorlagen am häufigsten eingesetzten Schalter sind die Formatierungsschalter: sie wirken sich auf die Darstellung des Feldergebnisses aus. Der Standardfall hat das folgende Aussehen:
{ REF GP_Name1 \*CHARFORMAT}
Das Zeichen „*“ steht hier für den Schalter „Formatschalter“. Das Wort CHARFORMAT ist dann die eigentliche Anweisung: sie legt fest, dass das Feldergebnis so formatiert wird wie der erste Buchstabe im Feld, also der Buchstabe „R“ des Wortes REF.
Die folgende Aufstellung enthält wichtige Format-Schalter:
\*CHARFORMAT | Formatiert das Feldergebnis entsprechend der Formatierung des ersten Buchstabens im Feld. |
\*UPPER | Wandelt alle Buchstaben des Feldergebnisses in Großbuchstaben um |
\*CAPS | Setzt den ersten Buchstaben Der Worte des Feldergebnisses in Großbuchstaben um |
\*CardText | Zeigt eine Zahl als Text an: aus „12“ wird „Zwölf“ |
\*OrdText | Zeigt eine Zahl als Ordnungszahl in Textform an: aus „12“ wird „Zwölfte“ |
Man kann solche Schalter auch kombinieren. Dabei sollte der Schalter für die Zeichenformatierung immer an letzter Stelle kommen.
Beispiel:
{ = 12 \*Cardtext \*lower } | zwölf |
{ = 12 \*Cardtext \*upper } | Zwölf |
Schalter für numerisches Format
Anweisungen zur Formatierung von numerischen Feldergebnissen beginnen nach dem „\“ mit einem #. Diesem Zeichen folgt eine Anweisung, die zum Beispiel Tausenderpunkte, Komma, Nachkommastellen usw. festlegt.
Beispiele:
{ = 1234567,678 \# # } | 123457 Nachkommastellen entfallen, Zahl wird gerundet |
{ = 1234567,678 \# #.###,## } | 1.234.567,68 Alle Tausenderpunkte werden angezeigt, Zahl wird auf 2 Nachkommastellen gerundet |
{ = 1234567,1 \# #,00 } | 1234567,10 Die „0“ liefert auch dann Werte (eben 0), wenn die Zahl keinen Wert an dieser Stelle besitzt. Das # hat diese Wirkung nicht. |
Weitere Schalter finden Sie in der Online Hilfe.
Schalter für Datums-/Uhrzeitformat
Datums- und Uhrzeitangaben lassen sich über den Schalter „@“ formatieren. Danach folgen wie bei numerischen Schaltern Anweisungen, die das Aussehen der Angaben zu Tagen, Monaten, Jahren, Stunden usw. festlegen.
Beispiele:
{ QUOTE "06.07.2011" \@ "dd.MM.yyyy" } | 06.07.2011 Durch die doppelte Eingabe von „d“ (für Day) und „M“ (für Month) Führende Nullen. Man muss hier ein großes „M“ eintragen, denn das kleine „m“ liefert die Minute der Zeitangabe |
{ QUOTE "06.07.2011" \@ "d.M.yy" } | 6.7.11 Kurze Darstellung, keine führenden Nullen, Jahresangabe nur zweistellig |
{ QUOTE "06.07.2011" \@ "'Gießen, den 'd. MMMM yyyy" } | Gießen, den 6. Juli 2011 Man beachte die Verwendung der einfachen Anführungszeichen, um festen Text in den Schalter einzufügen. |
Auch hierzu finden Sie in der Online Hilfe noch weitere wichtige Anweisungen.
Wichtige Feldfunktionen und ihre Gestaltung
Die folgenden Kapitel beschreiben einige der wichtigsten Funktionen im Zusammenhang mit CURSOR-CRM. Sie sind nicht erschöpfend, daher sollten immer auch die Online Hilfe von Word sowie die entsprechenden Seiten im Internet als Informationsquelle verwendet werden.
Von großer Bedeutung sind Funktionen, die einen Vergleich zulassen. Dazu gehören die IF- und COMPARE-Anweisungen sowie die AND und OR-Operatoren: mit ihrer Hilfe lassen sich auch mehrfache Verzweigungen darstellen. Texte wie zum Beispiel die AGB oder andere allgemeine Angaben kann man an einer Stelle pflegen und dann zur Laufzeit in das erstellte Dokument einfügen: hierzu gibt es die Funktion INCLUDETEXT.
Die IF-Bedingung
IF-Bedingungen werden dann eingesetzt, wenn die Ausgabe des Feldes vom Erfüllen einer Bedingung abhängig gemacht werden soll. Die Funktion hat das folgende allgemeine Aussehen:
{ IF Bedingung "Dann-Fall" "Sonst-Fall" }
Die Bedingung wird mit dem Wort IF eingeleitet, der Dann- und der Sonst-Fall werden jeweils in Anführungszeichen eingefasst.
Beispiel 1:
Der Typ des Geschäftspartners hat Auswirkungen auf die Gestaltung des Adressblocks. Um hier je nach dem Typ also immer das passende Aussehen zu gewährleisten, prüft man den GP_Typ ab und zeigt dann entsprechend des Inhaltes entweder den „Dann“ oder den „Sonst“ Zweig an. Für das Beispiel mit dem Typ des Geschäftspartners ergibt sich etwa:
{ IF GP_Typ_K = "U" "Firma" "Herrn/Frau" }
Beispiel 2:
Beim Adresskopf werden IF-Bedingungen verwendet, um Leerzeilen zu verhindern, die dadurch entstehen, dass eine oder mehrere der Textmarken keinen Inhalt haben. Dies betrifft in der Regel die Textmarken mit Namen wie GP_Name2 und GP_Name3. Durch die IF-Bedingung wird geprüft, ob die Textmarke einen Wert beinhaltet. Wenn ja, wird die Textmarke ausgegeben und anschließend ein Zeilenumbruch ausgeführt. Wenn dagegen in das Feld keine Daten übergeben wurden, wird kein Zeilenumbruch vorgenommen. Dies wird durch die folgende Anweisung erreicht:
{ IF { REF GP_Name2 } <> "" "{ REF GP_Name2 \* CHARFORMAT}¶" ""}{ IF { REF GP_Name3 } <> "" "{ REF GP_Name3 \* CHARFORMAT}¶" "" }
Die COMPARE-Anweisung
Die COMPARE - Anweisung hat das folgende allgemeine Aussehen:
{ COMPARE Ausdruck1 Vergleichsoperator Ausdruck2 }
Sie liefert den Wert 1 zurück, wenn der Vergleich zutrifft, ansonsten einen von 1 abweichenden Wert (in der Regel 0). Diese Funktion wird meistens in IF-Bedingungen integriert.
Beispiel:
Die Anweisung
{ COMPARE { REF GP_Typ_K } = „U" }
liefert 1 zurück, wenn der Geschäftspartner den Typ“U“ für Unternehmen besitzt. Man kann also die oben dargestellte IF- Bedingung auch wie folgt schreiben:
{ IF { COMPARE { REF GP_Typ_K } = "U" } = 1 "Firma" "Herrn/Frau" }
Zudem kann man bei COMPARE auch das „*“ für beliebig viele Zeichen und das „?“ für genau 1 Zeichen verwenden. In diesem Fall muss auch der Ausdruck1 in Anführungszeichen gesetzt sein, damit er als Text interpretiert wird.
Die folgende Anweisung liefert 1 zurück, wenn die übergebene Postleitzahl mit den Werten 35 beginnt
{ COMPARE "{ REF ADR_PLZ }" = "35*" }
Die AND und OR - Operatoren
Mit den AND und OR-Operatoren kann der Nutzen der COMPARE-Funktion nochmals gesteigert werden. Die allgemeine Schreibweise ist wie folgt:
{ = AND (<COMPARE-Funktion1>;<COMPARE-Funktion1>) }
bzw.
{ = OR (<COMPARE-Funktion1>;<COMPARE-Funktion1>) }
Sie liefert entsprechend der Verknüpfungslogik entweder den Wert 1 oder den Wert 0 zurück.
In der Word-Online-Dokumentation ist als Trenner zwischen den beiden zu prüfenden Anweisungen das Komma eingetragen. Im deutschen Gebietsschema muss hier ein Semikolon verwendet werden! Ansonsten funktioniert die Funktion nicht. So kann man zwei Vergleiche in einem Schritt durchführen und dabei festlegen, ob nur eines der Felder ( „OR“ ) oder beide Felder ( „AND“ ) die Bedingung erfüllen müssen.
Ein Beispiel in CURSOR-CRM ist die Gestaltung des Adresskopfes:
{ IF { = AND ({ COMPARE { REF GP_Typ_K } = "U" } ; { COMPARE { REF AP_Typ_K } <> "U" })} = 1 "{ REF AP_Anrede \*charformat}" "" }
Diese Anweisung bedeutet: Das Feld 'AP_Anrede' wird nur ausgegeben, wenn der Geschäftspartner ein Unternehmen und gleichzeitig der Ansprechpartner eine natürliche Person ist.
Die INCLUDETEXT-Anweisung
Mit dieser Anweisung können Sie einen Verweis auf einen Text aus einer anderen Datei hinterlegen. Dies ist sehr nützlich für Standardelemente in den Vorlagen, wie zum Beispiel den Adresskopf: statt in jeder Vorlage einen eigenen Kopf einzutragen, hinterlegt man diesen zentral in einer Datei und fügt dann in den einzelnen Vorlagen nur einen INCLUDETEXT-Verweis ein.
Dieser sieht in etwa wie folgt aus:
{INCLUDETEXT "U:\\EVI\\DOK\\VORLAGEN\\Textmarken_Allgemein.DOC" KOPF1 }
Die doppelten Backslashs sind bei dieser Art der Angabe des Pfades notwendig!
Der Eintrag KOPF1 verweist darauf, dass man in der Datei Textmarken_Allgemein.DOC den Adresskopf mit einer Textmarke "KOPF1" versehen hat. So kann man in einer Datei viele Textbausteine hinterlegen und den jeweils benötigten dann über die dahinterliegende Textmarke angeben. Eingescannte Unterschriften lassen sich ebenfalls über diese Funktion in das Dokument holen. Dazu legt man sie zunächst in der zentralen Datei als Grafik ab und versieht sie mit einem Textmarkennamen. Dieser Name besteht aus dem Kürzel des Mitarbeiters, am besten mit einem festgelegten Buchstaben (z.B „U_“) davor: „U_HTC“
In der Dokumentvorlage hinterlegt man nun die Includetextanweisung in der folgenden Form:
{INCLUDETEXT "U:\\EVI\\DOK\\VORLAGEN\\Textmarken_Allgemein.DOC" "U_{ REF MA1_Kuerzel }" }
Dadurch erhält man später an dieser Stelle die passende Unterschrift.
Der auch mögliche Weg über die INCLUDEPICTURE-Funktion bietet sich nicht an, denn hier kommen die Bilder in ihrer Originalgröße in das Dokument.
Zugriff auf Dokumenteigenschaften
Neben den oben erwähnten Dokumentvariablen gibt es noch eine zweite Gattung von Informationsträgern: die Dokumenteigenschaften. Auf sie greift man in der folgenden Form zu:
{ DOCPROPERTY "CU_INCLUDEPATH" }
Hierbei enthält die Dokumenteigenschaft 'CU_Includepath' den Pfad auf eine Datei, deren Inhalt in das Dokument eingebettet werden soll. Im Ganzen würde die Bedingung etwa für die Einbettung eines Adresskopfes wie folgt lauten:
{ INCLUDETEXT "{ DOCPROPERTY "CU_INCLUDEPATH" }" "Adresskopf1" }
Vor allem im Zusammenspiel mit über die Textersetzungsdatei eingefügten Dokumenteigenschaften ergeben sich vielfältige Einsatzmöglichkeiten für solche Elemente.
Kombinationen der dargestellten Funktionen
In den meisten Fällen sind die Feldfunktionen in den Dokumentvorlagen relativ kurz. Sie können diese Funktionen jedoch auch miteinander kombinieren und sie so zu großen Einheiten zusammenfügen. So kann etwa die SET-Bedingung sehr gut mit den IF-Funktionen kombiniert werden. Dazu ein Beispiel: in der Vorlage wird an verschiedenen Stellen eine Anrede benötigt, die sich danach richtet, ob es sich beim Ansprechpartner um eine Frau, einen Mann oder eine juristische Person handelt. Damit man dies nicht an den betroffenen Stellen immer wieder in Form einer großen IF-Bedingung prüfen muss, setzt man an den Anfang des Dokumentes einen SET-Befehl, der dann je nach Inhalt den Text „Sehr geehrte Frau“, „Sehr geehrter Herr“ oder „Sehr geehrte Damen und Herren“ enthält:
{ SET LocAnrede "{IF { COMPARE { REF AP_Typ_K } = "U" } = 1 "Sehr geehrte Damen und Herren" "{IF { COMPARE { REF AP_Typ_K } = "F" } = 1 "Sehr geehrte Frau" " Sehr geehrter Herr" }" }" }
An den Ausgabestellen schreibt man dann nur noch das REF-Feld auf die Variable LocAnrede. Die Buchstaben „Loc“ sollen andeuten, dass es sich um eine lokal erzeugte Variable handelt, die also nicht aus CURSOR-CRM übergeben wurde. Ein Nachteil dieser Lösung ist leider, dass nach dem derzeitigen Verhalten der Anwendung die Befehle „Konvertieren und Bearbeiten mit (bzw. ohne) Ref“ solche selbsterstellten SET-Felder aus der Vorlage entfernen. Trotzdem ist es eine sinnvolle Lösung, um die Übersichtlichkeit in der Vorlage zu erhöhen.