Serienbrief ohne Assistenten erstellen

Ich möchte Serienbriefe ohne Assistenten erstellen und dabei variable Felder, abhängig von Bedingungen, nutzen. Bisher habe ich nur folgende Lösung gefunden und dabei festgestellt, dass die Lösungsschritte nicht gut nachvollziehbar sind und nicht optimal. Hat jemand eine bessere Vorgehensweise?

Mein bisheriges Vorgehen:

  • Menü: Einfügen → Felder → weitere Felder
  • Reiter „Datenbank“ auswählen
  • „Seriendruck-Feld“ auswählen
  • Datenbankdatei hinzufügen (bei mir als Beispiel “AdressdateiSerienbrief.ods” mit der Tabelle “Adressen”)

Jetzt können der Text und die notwendigen Serienbrieffelder eingegeben werden. Dabei verwende ich wieder das Dialogfenster für Feldbefehle und ergänze den Text im Serienbrief „Sehr geehrte“ mit einem „Bedingten Text!“.

Als Bedingung schreibe ich rein: „AdressdateiSerienbrief.Adressen.Anrede == „Herr“
Dann: r
Sonst: (Feld bleibt leer)

Den restlichen Text ergänze ich mit den Feldern

Wenn ich jetzt den Serienbrief durcken möchte (Menü: Datei → Drucken), werde ich gefragt, ob ich einen Serienbrief drucken möchte. Nach der Bestätigung bin ich in der Lage, den Serienbrief z. B. in eine Datei zur drucken.

Welche Probleme konnte ich zusätzlich, obwohl ich die beschriebene Vorgehensweise nicht otimal finde, festellen:

Bei Nutzung der Symbolleiste: „Serienbrief“

  • Über das Symbol „Datenquellen“ lässt sich keine einfache ods-Tabelle als Quelle einbinden.
  • Das Dokument wird nicht als Serienbrief erkannt, so dass man nicht im Vorfeld die einzelnen Seiten mit den entsprechenden Feldern durchblättern kann.

Wie macht ihr das besser?

Ich blende hier i(m Menü Ansicht) oder via Umschalt+Strg+F4 die Datenquellenansicht ein, wähle die passende Tabelle und kann dann nacheinander die Spaltenköpfe in meine Writer-Vorlage ziehen.

Nicht direkt, aber Du kannst auch eine “einfache” ods-Tabelle nutzen, indem Du eine Datenbank/-quelle anlegst und als Typ Tabellenkalkulation festlegst. Bei Open/LibreOffice ist die Verbindung halt immer eine .odb-Datei von Base.
.
Natürlich wäre es aus Deiner Sicht “einfacher” wenn Deine Ideen bei LibreOffice “default” wären, aber aus Sicht eines Programmierers ist “nimm die .odb-Datenquelle” eventuell einfacher als

if einfach=Textdatei
  Then
  abfragen Zeichensatz
  abfragen Zeilenenden
  abfragen Feldseparator
  ... weiteres abfragen
  Tabelle "einfach" einlesen
 Elseif einfach=Tabellenkalkulation
  Then
    abfragen Excel-Datei
    Tabelle "einfach" aus Excel Formaten konvertieren
   Else
    Tabelle "einfach" einlesen
  Else
   Ignoriere Beschwerden über weitere einfache Formate
  EndIf

(und die echten Probleme mit Tabellenkalkulationen, wie unterschedliche Bezugspunkte für Datumswerte, Formeln etc. habe ich noch nicht einmal berücksichtigt.)

Für eine Vorschau/Kontrollversion “drucke” ich den Serienbrief in eine neue Writer-Datei. Diese kann ich dann nach Belieben korrigieren, drucken oder nach pdf konvertieren.
.
Ob es eventuell an dieser Stelle möglich ist die Symbolleiste Serienbrief einzublenden habe ich nie versucht…

Ich bin mir nicht sicher, ob ich dich hier richtig verstanden habe. Ich bin jetzt wie folgt vorgegangen und es hat geklappt:

  • mit LibreBase eine neue Datenbank erstellen
  • Verbindung zu einer bestehenden Datenbank herstellen
  • Tabellendokument auswählen
  • bestehende ods-Datei auswählen
  • “Ja, die Datenbank soll angemeldet werden”

Meintest du die Vorgehensweise?

Ja. Yes. … Antwort muss 10 Zeichen haben :frowning:

Jetzt bleibt für mich noch eine Frage:

Genau. Und in Writer öffnest Du das Datenquellenfenster (Strg+Umsch+F4), wählst links die richtige Tabelle oder Abfrage und ziehst vom rechten Unterfenster Spaltenköpfe in das Dokument. Das geht einfacher als über den Felddialog.

1 Like

Das würde ich eher in Calc oder in der jeweiligen richtigen Datenbank machen. Ist aber Geschmackssache.