Mailmerge - SQL direkt übergeben
Verfasst: Mi, 11.12.2019 16:34
Hallo,
Programm: LO 6.0.3, Windows
Datenbank: interne HSQLDB
ich verwende folgenden Code:
Was ist an:
Falsch?
Auffällig ist das die richtige Anzahl an Seriendruckdokumenten erzeugt wird, nur die Stellen der Seriendruckfelder leer bleiben. Eigentlich würde das darauf hindeuten das ich im Dokument "seriendrucktest_test.odt" falsche Seriendruckfelder eingefügt habe, aber wie soll ich diese anders angeben als über die Datentabelle? Lässt man sich im Dokument die Felder anzeigen (Ansicht-Feldnamen), steht da natürlich (z.B.):
Adressdatenbank.Firma.Firmenname
Obiger Code funktioniert prima wenn ich dieselbe Abfrage direkt in der Datenbank definiere, dort also:
SELECT * FROM "Firma" WHERE "FID" = '13'
und dann die Abfrage im Makro angebe:
Gruß
Stephan
Programm: LO 6.0.3, Windows
Datenbank: interne HSQLDB
ich verwende folgenden Code:
Code: Alles auswählen
Dim oMailMerge as Object
oMailMerge = CreateUnoService("com.sun.star.text.MailMerge")
oMailMerge.DocumentURL = ConvertToUrl("D:\seriendrucktest_test.odt")
oMailMerge.DataSourceName = "Adressdatenbank"
oMailMerge.CommandType = 2
oMailMerge.Command = "SELECT * FROM ""Firma"" WHERE ""FID"" = '13'"
oMailMerge.OutputType = com.sun.star.text.MailMergeType.FILE
oMailMerge.OutputUrl = Converttourl("D:\SD_test\")
oMailMerge.FileNamePrefix = "Dateiname"
oMailMerge.SaveAsSingleFile = True
oMailMerge.execute(Array())
oMailMerge.dispose()
Code: Alles auswählen
oMailMerge.CommandType = 2
oMailMerge.Command = "SELECT * FROM ""Firma"" WHERE ""FID"" = '13'"
Auffällig ist das die richtige Anzahl an Seriendruckdokumenten erzeugt wird, nur die Stellen der Seriendruckfelder leer bleiben. Eigentlich würde das darauf hindeuten das ich im Dokument "seriendrucktest_test.odt" falsche Seriendruckfelder eingefügt habe, aber wie soll ich diese anders angeben als über die Datentabelle? Lässt man sich im Dokument die Felder anzeigen (Ansicht-Feldnamen), steht da natürlich (z.B.):
Adressdatenbank.Firma.Firmenname
Obiger Code funktioniert prima wenn ich dieselbe Abfrage direkt in der Datenbank definiere, dort also:
SELECT * FROM "Firma" WHERE "FID" = '13'
und dann die Abfrage im Makro angebe:
Code: Alles auswählen
oMailMerge.CommandType = 1
oMailMerge.Command = "MeineAbfrage"
Gruß
Stephan