8.1.8 Wie kann man Serienbriefe per Makro erstellen? Ab 7.0 / 1.1
Serienbriefe per Makro zu erstellen ist eigentlich nicht so schwer. Für diese Aufgabe steht der Service MailMerge zur Verfügung (ab SO 7.0 und OOo 1.1).

Mailmerge muss nur die passenden Parameter bestückt bekommen und das Quelldokument muß mit der entsprechenden Datenbank verknüpft sein.


Folgende Parameter sind von Bedeutung

MailMerge.DataSourceName

Bekommt als Inhalt den Datenbanknamen der bei den Datenquellen hinterlegt ist. Achtung die genaue Schreibweise ist hier gefordert.

Beispiel Mailmerge.DataSourceName="MyDatenbank"

Mailmerge.DocumentUrl

Enthält das BasisDocument für den Serienbrief.
Diese Datei muß im URL-Format übergeben werden.

Beispiel:       MailMerge.DocumentURL=ConvertToUrl("c:\myMail.sxw")

MailMerge.CommandType und MailMerge.Command

Diese Beiden stellen die eigentliche Verbindung zur Datenbank her.
Mit CommandType wird bestimmt wie auf die Datenbank zugegriffen wird.
0 = Tabelle
1 =  Abfrage
2 = SQL-Abfrage
Mit Command wird dann die Tabelle, Abfrage oder SQL-Abfrage übergeben.

Beispiel
MailMerge.CommandType=1
MailMerge.Command="Abfrage1"
oder
MailMerge.CommandType=0
MailMerge.Command="Tabelle1"
     
MailMerge.OutputType

Legt das Ausgabeziel fest.
1=Drucker
2=Datei

Beispiel
MailMerge.OutputType=1

MailMerge.OutputUrl

Legt den Speicherpfad für die neuen Dokumente fest

Beispiel
MailMerge.OutputUrl=ConvertToUrl("C:\")

MailMerge.FileNameFromColumn und
MailMerge.Filenameprefix

Mit diesen Beiden kann man festlegen das der Dateiname aus einem Feld der Tabelle für den Dateinamen verwendet wird.
Diese Funktion ist aktiv wenn MailMerge.FileNameFromColumn true ist.
Der Vorgabewert ist false.
MailMerge.Filenameprefix wird das Feld festgelegt in dem der Dateiname steht.

Beispiel
MailMerge.FileNameFromColumn=True
MailMerge.Filenameprefix="Dateiname"

MailMerge.execute(MyProps())

Mit diesem Befehl wird die Funktion ausgeführt.

Beispiel
Dim MyProps as Object
MailMerge.execute(MyProps())


Das Ganze sieht dann komplett so aus:

MailMerge = createunoservice("com.sun.star.text.MailMerge")
MailMerge.DataSourceName="MyDatenbank"
MailMerge.DocumentURL=ConvertToUrl("c:\myMail.sxw")
MailMerge.CommandType=1
MailMerge.Command="Abfrage1"
MailMerge.OutputType=1
MailMerge.OutputUrl=Converttourl("C:\")
MailMerge.FileNameFromColumn=True
MailMerge.Filenameprefix="Dateiname"
Dim MyProps as Object
MailMerge.execute(MyProps())