Archiv des LibreOffice- und OpenOffice.org-Wiki

[ÜberSicht] [TitelIndex] [WortIndex] [SeiteFinden

(./) OOo2

Seit Version 2 von OpenOffice.org gibt es einen Serienbrief-Assistenten, der in 8 Schritten durch die Serienbrief-Erstellung führt. Dieser Assistent allein bietet aber nicht die gleiche Flexibilität, die beim händischen Erstellen von Serienbriefen möglich ist. Im folgenden wird daher nicht mit ihm gearbeitet. Ein gemischtes Vorgehen ist aber durchaus möglich und man kann einen Serienbrief zunächst mit dem Assistenten erstellen und dann für die Feinarbeit direkt in den Entwurf eingreifen.

1. Textdokument mit einer Adressdatei verbinden

Jedes beliebige TextDokument kann mit einer Adressdatei verbunden und als SerienBrief verwendet werden.

Um einem Textdokument eine Adressdatei zuordnen zu können, muss die Adressdatei als Datenquelle angemeldet sein.

Ist dies der Fall, gibt es zwei Vorgehensweisen:

  1. Das Textdokument, dem eine Adressdatei zugeordnet werden soll, ist geöffnet, ebenso die DatenQuellen-Anzeige (F4). Nun klickt man sich zur gewünschten Tabelle oder Abfrage durch und sobald im Datenquellen-Fenster Datensätze angezeigt werden, ist das Textdokument mit der Adressdatei verbunden.

  2. Das Textdokument, dem eine Adressdatei zugeordnet werden soll, ist geöffnet, die DatenQuellen-Anzeige (F4) muss nicht geöffnet sein. Mit dem Menüaufruf Bearbeiten → Datenbank austauschen… sucht man die gewünschte Tabelle oder Abfrage und drückt die SchaltFläche Festlegen.

2. Adressblock erstellen

Beim Erstellen des Adressblockes sind neben dem Einfügen der SerienbriefFelder meist folgende Probleme zu lösen:

Diese Fälle werden auf der Seite DatenUndTextMischen/AdressBlock ausführlich beschrieben.

Es kann vorteilhaft sein, den Adressblock in einen TextRahmen zu stellen. Zum einen hilft das bei der genauen Positionierung. Bei Serienbriefen mit viel Text gibt es aber noch einen Punkt: Der Adressblock kann je nach Adressdatenbank zwischen 3 und 6 Zeilen pro Adresse variieren – je nachdem, wie viele Felder es gibt, die auch leer sein können. Wenn man den Adressblock nun in einem Textrahmen unterbringt, kann man dafür sorgen, dass der restliche Dokumentinhalt immer genau an der gleichen Stelle beginnt, egal wie viele Adresszeilen es gibt. Dadurch kommt es nicht zu überraschenden zweiten Seiten, wenn der Adressblock mehr Zeilen benötigt.

3. Benutzerdaten verwenden

Die unter Extras → Optionen… → OpenOffice.org → Benutzerdaten erfassten Einträge können nicht nur als FeldBefehle (Einfügen → Feldbefehl → Andere… → Dokument) in ein Dokument übernommen werden, sondern man kann sie auch in bedingten Texten etc. verwenden. Die entsprechenden Feldnamen sind auf der Seite BenutzerDaten aufgeführt.

4. Personalisierte Briefanrede

Es gibt mehrere Taktiken, eine personalisierte Briefanrede zu definieren. Zum einen kann man für jeden auftretenden Fall einen Absatz erstellen, und pro Absatz einen FeldBefehl vom Typ VersteckterAbsatz einfügen, mit dem man steuert, welcher Absatz jeweils sichtbar sein soll. Oder man setzt die Briefanrede mit Feldbefehlen des Typs BedingterText zusammen. Auch eine Mischung von beidem ist möglich.

4.1. Entweder-Oder

Wenn es nur zwei Situationen gibt (Herr und Frau) und man kann sicher davon ausgehen, dass jeder Datensatz einen Anredecode enthält, ist das einfachste ein BedingterText: Einfügen → Feldbefehl → Andere… → Funktionen → Bedingter Text.

Wenn im Anrede-Feld der Adressdatei die Anrede Herr oder Frau ausgeschrieben vorhanden ist, braucht man lediglich zwischen geehrte und geehrter unterscheiden. Man erfasst also die Anredezeile zunächst so:

Sehr geehrte <Anrede> <Nachname>

Anschließend setzt man direkt hinter geehrte – ohne Abstand – einen Feldbefehl bedingter Text, wobei im Feld Bedingung Anrede == "Herr" einzutragen ist. In das Feld Dann trägt man r ein, das Feld Sonst bleibt leer.

4.2. Herr, Frau oder Damen und Herren?

Wir gehen in diesem Beispiel davon aus, dass für einen Datensatz, bei dem das Feld Anrede leer ist, als Briefformel stehen soll: Sehr geehrte Damen und Herren.

Da man in bedingten Texten keine Bedingungen verschachteln kann,1 man also bei mehr als zwei Bedingungen auch mehrere dieser FeldBefehle benötigt, wählen wir hier die folgende Taktik:

  1. Zusätzlich zum Briefanrede-Absatz aus dem vorigen Abschnitt fügen wir einen Absatz ein mit dem Text: Sehr geehrte Damen und Herren.

  2. Anschließend bekommen beide Absätze einen Feldbefehl VersteckterAbsatz.

  3. Die Bedingung für den versteckten Absatz lautet im Absatz mit der Herr/Frau-Anrede: !Anrede oder NOT Anrede, wodurch dieser Absatz nicht sichtbar ist, wenn das Feld "Anrede" nicht ausgefüllt ist.

  4. Die Bedingung für den versteckten Absatz im Absatz mit "Sehr geehrte Damen und Herren" lautet ganz einfach Anrede, was soviel bedeutet wie: Wenn eine Anrede vorhanden ist, ist dieser Absatz auszublenden.

4.3. Noch mehr Fallunterscheidungen bei der Anrede

Wenn eine ganze Reihe von Fällen unterschieden werden müssen, kommt man nicht umhin, mehrere bedingte Texte hintereinander zu hängen (siehe auch BedingungenPrüfen oder Adressblock) und/oder mit mehreren versteckten Absätzen zu arbeiten.

Aus den verschiedenen Unterkapiteln dieses Absatzes können Sie ersehen, dass es nicht nur eine Herangehensweise für diese Problemstellung gibt. Man kann auch nicht eine als "die richtige" benennen, das ist stark abhängig von der individuellen Situation.

Hier ein mögliches Szenarium: Es gibt ein Feld Geschlecht und ein Feld Beziehung. Ein Lehrer schreibt damit von Zeit zu Zeit Einladungen für Elternversammlungen, wobei er mit manchen Eltern per Du ist, andere mit Sie anspricht und auch noch unterscheiden muss, ob er sich an ein Elternpaar wendet oder an eine allein erziehende Person.

Im Feld Geschlecht können folgende Codes enthalten sein:

Im Feld Beziehung können folgende Codes enthalten sein:

Damit sind folgende Briefanreden denkbar (Beispiel):

4.3.1. Aneinanderreihen von "Bedingten Texten"

Nun könnte man die Bedingungen für bedingte Texte für die Briefformel so aufbauen:

WENN (Beziehung == "p") AND (Geschlecht == "m") DANN "Lieber"
WENN (Beziehung == "p") AND (Geschlecht == "w") DANN "Liebe"
WENN (Beziehung == "p") AND (Geschlecht == "p") DANN "Liebe"
WENN (Beziehung == "g") AND (Geschlecht == "m") DANN "Sehr geehrter Herr"
WENN (Beziehung == "g") AND (Geschlecht == "w") DANN "Sehr geehrte Frau"
WENN (Beziehung == "g") AND (Geschlecht == "p") DANN "Sehr geehrte"

Das Feld Sonst bleibt jeweils leer.

Diese FeldBefehle sind hier nur wegen der besseren Lesbarkeit untereinander angeordnet. In einem Brief sind sie direkt hintereinander einzugeben, ohne Leerzeichen dazwischen. Nun kommt ein Leerzeichen und anschließend wieder direkt hintereinander, ohne Abstände:

WENN (Beziehung == "p") AND (Geschlecht == "p") DANN "Eltern"
WENN (Beziehung == "p") AND (Geschlecht != "p") DANN [Datenquellenname.Tabellenname.Vorname]
WENN (Beziehung == "g") AND (Geschlecht != "p") DANN [Datenquellenname.Tabellenname.Nachname]
WENN (Beziehung == "g") AND (Geschlecht == "p") DANN "Eltern"

Den ersten und vierten Fall könnte man auch zusammenfassen zu

WENN Geschlecht == "p" DANN "Eltern"

4.3.2. Verwendung von "versteckten Absätzen"

Getestet mit OOo 3

In den vorangegangenen Abschnitten, wo nur zwischen 2 bzw. 3 Anredevarianten unterschieden werden musste, wurde mit versteckten Absätzen gearbeitet. Dabei wurde pro möglicher Anrede je ein eigener Absatz vollständig erfasst und per Feldbefehl situationsgerecht ausgeblendet. Bei vielen Kombinationen kann ein solcher Entwurf für die Dokumentbearbeitung übersichtlicher sein als das Aneinanderreihen von vielen bedingten Texten.

Allerdings ist es im vorliegenden Fall nicht ganz trivial, die zu kombinierenden Bedingungen umzukehren, sodass die Logik statt "anzeigen wenn" lautet: "versteckten wenn".
So ist zum Beispiel die Bedingung Absatz verstecken, wenn nicht gleichzeitig Geschlecht = p und Beziehung = w so zu formulieren:
NOT((Beziehung == "p") AND (Geschlecht =="w"))

Es gibt auch noch einen anderen Weg, dies zu realisieren, der hier vorgestellt werden soll. Beim Mischen können Serienbrieffeld-Inhalte nicht nur in den Text übernommen, sondern auch in Variable eingelesen werden. Diese Möglichkeit nutzen wir im Folgenden und definieren im Textdokument für jede mögliche Anrede eine Variable. Das mag auf den ersten Blick aufwendig erscheinen, aber vor allem dann, wenn ausser der Anrede noch weitere Textpassagen pro Empfänger anzupassen sind, erweisen sich diese "Steuerungsvariablen" als hilfreich um Absätze oder ganze Bereiche auszublenden.

Wir brauchen also insgesamt 6 Variablen, die alle mit dem Format Wahrheitswert und der Option unsichtbar am Anfang des Dokumentes eingefügt werden.

Beim Mischen mit den Adressdaten kann immer nur eine der obigen Variablen den Wert 1 enthalten, die 5 anderen enthalten jeweils den Wert 0. Nun erfassen wir 6 Absätze:

4.3.3. Gemischtes Vorgehen

Getestet mit OOo 3

Eine weitere Variante besteht darin, zunächst zwischen den Empfängergruppen "persönlich" und "geschäftlich" zu unterscheiden und dementsprechend mit zwei Absätzen zu arbeiten, innerhalb derer dann die genaue Anrede durch bedingte Texte zusammengestellt werden.

Im ersten Absatz werden die Empfänger der Gruppe Beziehung: p abgehandelt. Dieser Absatz erhält daher einen Feldbefehl versteckter Absatz mit der Bedingung: Beziehung == "g".

Der Aufbau dieses Absatzes:

Zunächst die Anrede Liebe und daran direkt anschliessend - ohne Abstand - ein Feldbefehl vom Typ bedingter Text.
Bedingung: Geschlecht == "m"
Dann: r
Sonst: bleibt leer

Nach einem Leerzeichen folgt ein weiterer bedingter Text:
Bedingung: Geschlecht == "p"
Dann: Eltern
Sonst: [Datenquellenname.Tabellenname.Vorname]
Beachten Sie die Schreibweise des Serienbrieffeldes im Feld Sonst.

Der zweite Absatz betrifft die Empfängergruppe Beziehung: g und erhält daher einen Feldbefehl versteckter Absatz mit der Bedingung: Beziehung == "p".

Der Aufbau dieses Absatzes:

Zunächst die Anrede Sehr geehrte und daran direkt anschliessend - ohne Abstand - ein Feldbefehl vom Typ bedingter Text.
Bedingung: Geschlecht == "m"
Dann: r Herr
Sonst: bleibt leer

Wieder ohne leerzeichen direkt anschliessend an den ersten bedingten Text.
Bedingung: Geschlecht == "w"
Dann:  Frau (vor "Frau" steht ein Leerzeichen im Feld "Dann")
Sonst: bleibt leer

Vor dem letzten bedingten Text wird ein Leerzeichen benötigt
Bedingung: Geschlecht == "p"
Dann: Eltern
Sonst: [Datenquellenname.Tabellenname.Nachname]
Beachten Sie auch hier wieder die Schreibweise des Serienbrieffeldes im Feld Sonst.

5. Unterschiedliche Dokumentpassagen pro Empfänger(-Gruppe)

Wenn bestimmte Textpassagen für unterschiedliche Empfängergruppen andere Inhalte bekommen sollen, so kann man das mit den weiter oben beschriebenen Feldbefehlen VersteckterAbsatz oder BedingterText realisieren.

Übersichtlicher und je nach Anforderung flexibler können Bereiche sein. Pro benötigter Dokumentpassage wird ein Bereich eingefügt, dem eine Ausblendbedingung mitgegeben wird. Der Inhalt dieser Bereiche kann im Dokument selbst liegen, oder man kann auf Bereiche anderer Dateien zugreifen und kann außer Text auch Tabellen, Grafiken, etc. umfassen.

6. Serienbrief drucken

In der SymbolLeiste, die mit der Datenbankanzeige eingeblendet wird, gibt es das Icon Seriendruck sb15.png. Dieses startet aber den Serienbrief-Assistenten, den wir an dieser Stelle nicht benutzen werden, da ihm das Feature fehlt, mit dem man einzelne, ausgewählte Datensätze im SerienDruck-Verfahren drucken kann. Das Drucken via Assistent ist thematisiert auf der Seite DatenUndTextMischen/SerienbriefMitAssistent.

Den Dialog für den SerienDruck erreicht man, indem man Datei → Drucken… (Strg+p) aufruft und die Nachfrage, ob ein Serienbrief gedruckt werden soll, mit Ja bestätigt.2

serienbrieffrage.png

6.1. Datensatz-Auswahl

Im SerienDruck-Fenster erhält man folgende Optionen:

sb18.png

6.1.1. Datenquellen-Auswahl/Abfrage

Dass man die DatenQuelle zu diesem Zeitpunkt grundsätzlich wechselt, ist wohl eher selten der Fall. Jedoch kann es sein, dass man statt der gesamten Tabelle eine Abfrage benutzen möchte, in der eine bestimmte Satzauswahl vorgegben ist.

6.1.2. Filter

Wenn man die Satzauswahl mit Hilfe eines Filters sb17.png reduziert hat, ist dennoch die Option Alle im Bereich Datensätze des Druck-Dialogs zu wählen. Alle bezieht sich in dem Fall auf alle Datensätze der Filterausgabe.

6.1.3. Datensätze einzeln auswählen

Wenn man – aus der Originalauswahl oder einer Filterung – einzelne Datensätze markiert hat (MehrfachSelektion zusammen mit Shift oder Strg) und nur diese drucken möchte, so aktiviert man im Bereich Datensätze die Option Markierte Datensätze.

sb26.png

6.2. Ausgabe in Datei

Bei Aktivierung der Option Ausgabe in Datei wird wahlweise entweder pro Datensatz eine Datei oder ein Gesamtdokument mit neuer Seite pro Datensatz erstellt. Ebenfalls kann das Dateiformat gewählt werden, mit dem die Serienbriefdokumente zu erstellen sind.

6.3. Weitere Druckoptionen

Weitere Druckausgabe-Optionen liefert der Serienbrief-Assistent.

7. Siehe auch

SerienBrief


KategorieWriter KategorieHowto

  1. Beispiele für Mehrfach-Bedingungen finden Sie auf der Seite BedingungenPrüfen und auf der Seite DatenUndTextMischen/AdressBlock. (1)

  2. Lassen Sie ggf. die Option Diese Warnung nicht mehr anzeigen deaktiviert, weil es sonst keine Möglichkeit mehr gibt, den SerienDruck-Dialog aufzurufen. (2)


LizenzBedingungen | AnbieterKennzeichnung | DatenschutzErklärung | Stand: 2013-04-28