Word - Seriendruck - Tipp Nr. 1202

Seriendruck: Gegliederte Liste

Tipp getestet unter Word 2007, 2010, 2013, 2013;

Das Erstellen gegliederter Listen mit Word ist eine schweißtreibende und nervenzerrüttende Arbeit. Mit einem Access-Bericht geht's viel einfacher. Aber was tun, wenn Access nicht zur Verfügung steht, oder wenn ein Serienbrief daraus werden soll?
Mit dem folgenen Workaround und dem einfachen Beispiel von Städten, Verkäufern und Umsatz sollte es aber zu schaffen sein!

    Vorbereitungsarbeiten

  1. Sortieren Sie die Daten in Ihrer Datenquelle so, dass die Daten des Feldes, nach dem gegliedert werden soll , schon in einer Gruppe zusammen stehen, d.h., alphabetisch.
  2. Lassen Sie Word die nicht druckbaren Sonderzeichen (Absatzmarken, Tabulatoren usw.) anzeigen (Symbol ).
  3. Lassen Sie während der Entwicklung die Feldfunktionen statt der Ergebnisse anzeigen:
  4. Seriendokument Verzeichnis erstellen

  5. Erstellen Sie mit dem Assistenten Ihr Seriendruckdokument.
    Menüband Register Sendungen, dann Seriendruck starten - Seriendruck-Assistent mit Schritt für Schritt Anweisung. Im 1. Schritt wählen Sie als Dokumenttyp Verzeichnis.
  6. Gegliederte Liste erstellen

  7. Hinweis 1: Das Arbeiten mit dem angebotenen Regeln ist zu umständlich, gehen Sie direkt zu den Feldern (=Funktionen).
    Hinweis 2: Den Dialog Felder finden Sie unter Word 2003 im Menü Einfügen - Feld, unter Word 2007/10 im Register Einfügen, in der Gruppe Text unter Schnellbausteine - Feld.
    Hinweis 3: Bei den Feldern habe ich immer die Kategorie "(Alle)" gewählt.
    Hinweis 4: Die Seriendruckfelder finden Sie im Menüband Register Sendungen, Befehl Seriendruckfeld einfügen.
    Hinweis 5: Die geschwungenen Klammern um die Felder dürfen Sie nicht selbst schreiben. Sie müssen vom System beim Aufruf erzeugt werden!
    Hinweis 6: Den automatisch erzeugten Eintrag "\* MERGEFORMAT" löschen Sie immer weg.
    Hinweis 7: Beachten Sie an den dargestellten Ergebnissen besonders die Setzung der Anführungszeichen. Der Übersichtlichkeit wegen werden Sie im Text nicht immer erwähnt!
    Hinweis 8: Manuelle Absatz- oder Zeilenwechsel dürfen Sie nur dort vornehmen, wo sie auch im Ergebnis aufscheinen sollen.
    Hinweis 9: Die gesetzten Tabulatoren dienen der späteren Ausrichtung der Spalten und sind notwendig!
  8. Die erste Zeile im Dokument muss eine Gruppenüberschrift enthalten, daher…
    1. Feld einfügen "If". Ergebnis: { IF }
    2. Für das Bedingungsargument des IF-Feldes müssen wir abfragen, ob es sich um den ersten Datensatz handelt. Das benötigte Feld heißt MERGESEQ dann Vergleichsoperator "=" und als Text in Anführungszeichen "1".
      Das Wahr-Argument ist das Seriedruckfeld "Stadt".
      Handelt es sich nicht um den ersten Datensatz, ist nichts zu tun, daher die beiden Anführungszeichen "" im Falsch-Argument.
      Ergebnis: { IF {MERGESEQ} = "1" "{ MERGEFIELD Stadt }" "" }
  9. Nun müssen wir uns in einer Textmarke den Namen der Stadt des aktuellen Datensatzes merken. Das SET-Feld ermöglicht das Festlegen einer Textmarke (z.B. "St1").
    Den Wert der Textmarke lesen wir aus dem Seriendruckfeld "Stadt" aus.
    Da die Gruppenüberschrift "Stadt" in einer eigenen Zeile stehen soll, setzen wir anschließend ein Absatzzeichen.
    Ergebnis: { IF {MERGESEQ} = "1" "{ MERGEFIELD Stadt}" "" }{ SET St1 { MERGEFIELD Stadt }}
  10. Nun vergleichen wir den Namen der Stadt des aktuellen Datensatzes ("St1") mit dem des vorhergehenden ("St2", ist beim ersten Datensatz noch nicht gesetzt, was aber nichts ausmacht).
    Wir brauchen wieder ein IF-Feld das in der Bedingung die Stadt-Namen der beiden Datensätze vergleicht. Für den Vergleich benötigen wir einfache leere Felder &"=(Formula)" in der Feldauswahl.
    Sind die beiden verschieden, folgt der Name der neuen Stadt in einer eigenen Zeile und anschließend die Details "Verkäufer" und "Umsatz".
    Sind sie gleich, folgt nur die Detailzeile, die wir im nächsten Punkt erstellen, daher tragen wir hier einfach vorläufig einen Tabulator (für die Einrückung) und den Platzhalter "Details" ein.
    Ergebnis: { IF {MERGESEQ} = "1" "{ MERGEFIELD Stadt}" "" }{ SET St1 { MERGEFIELD Stadt }}
    { IF {St2 } <> {St1} "{MERGEFIELD Stadt}
    Details" "Details" }
    Die Detailzeile benötigen wir doppelt: einmal für die Zeile nach einer Gruppenüberschrift und dann - im Falsch-Argument der IF-Bedingung für die normale Folgezeile.
  11. Nun lösen wir den doppelten Platzhalter "Details" auf und ersetzen ihn durch Seriendruckfeld "Verkäufer" + Tabulator + Seriendruckfeld "Umsatz".
    Ergebnis: { IF {MERGESEQ} = "1" "{ MERGEFIELD Stadt}" "" }{ SET St1 { MERGEFIELD Stadt }}
    { IF {St2 } <> {St1} "{MERGEFIELD Stadt}
    { MERGEFIELD Verkäufer}{ MERGEFIELD Umsatz}" " { MERGEFIELD Verkäufer}{ MERGEFIELD Umsatz}" }
  12. Für den nächsten Vergleich müssen wir vor dem Wechsel zum nächsten Datensatz in der Textmarke "St2" den Namen der aktuellen Stadt ablegen. Methode wie oben.
    Abschließend folgt noch ein Absatzzeichen, um den nächsten Datensatz wieder in einer neuen Zeile zu beginnen.
    Ergebnis: { IF {MERGESEQ} = "1" "{ MERGEFIELD Stadt}" "" }{ SET St1 { MERGEFIELD Stadt }}
    { IF {St2 } <> {St1} "{MERGEFIELD Stadt}
    { MERGEFIELD Verkäufer}{ MERGEFIELD Umsatz}" "{ MERGEFIELD Verkäufer}{ MERGEFIELD Umsatz}" }{ SET St2 { MERGEFIELD Stadt }}
  13. Zu guter Letzt setzen Sie noch im waagrechte Lineal
    einen linksbündigen Tabulator für die Einrückung der Verkäufernamen und
    einen rechtsbündigen Tabulator für die Umsätze.
    Wichtig! Setzen Sie die Tabstopps so ins Lineal, dass der breiteste Feldeintrag noch untergebracht werden kann, da sonst alle Texte verschoben angezeigt werden. Im schlimmsten Fall, müssen Sie die Detailzeile auf mehrere Zeilen verteilen (Zeilenwechsel erzeugen Sie mit +).

Und so sieht das dann fertig aus. Sehr anspruchsvoll, aber zur Wiederverwendung mit geänderten bzw. ergänzten Feldern perfekt geeignet!

Soll jede Gruppe auf einer separaten Seite ausgegeben werden (z.B. Serienbrief), fügen Sie unmittelbar nach der IF-Bedingung "{St2} <> {St1}"einen Abschnittswechsel nächste Seite" ein.
Ergebnis: { IF {MERGESEQ} = "1" "{ MERGEFIELD Stadt}" "" }{ SET St1 { MERGEFIELD Stadt }}
{ IF {St2 } <> {St1} "{MERGEFIELD Stadt}
{ MERGEFIELD Verkäufer}{ MERGEFIELD Umsatz}" "{ MERGEFIELD Verkäufer}{ MERGEFIELD Umsatz}" }{ SET St2 { MERGEFIELD Stadt }}

So sieht dann das fertige Dokument in der "Feldansicht" aus:

Für die Anregung zu diesem Tipp danke ich Herrn Josef Bogad.
Die Grundidee der Umsetzung stammt aus dem Microsoft Support.

Übungsdateien zum Thema Seriendokumente finden Sie in den Software Tools.