[gelöst] MailMerge: Datenfelder bleiben leer
Verfasst: Fr, 23.11.2012 14:13
Hallo, ich erstelle einen Seriendruck mit Ausgabe in eine Datei. Das Makro wird per Schaltfläche aus einem Base-Formular gestartet (oDatasource im Code ist die Base-Datenbank). Der Arbeitsablauf mit MailMerge klappt auch vollständig, aber in der Ergebnis-Datei fehlen sämtliche Datenfelder. Den Code habe ich nach mehreren Forumsbeiträgen erstellt und angepasst (hier um alles gekürzt, was die Dateinamen betrifft).
Wenn ich die Ursprungsdatei (eine odt, die in DocumentURL angegeben ist) öffne und manuell den Seriendruck aufrufe, klappt alles wunschgemäß. Die Tabelle ist eine VIEW aus der MySQL-Datenbank. (Für Base ist das keine Abfrage; wenn ich stattdessen eine Abfrage einrichte und verwende, ändert sich nichts.) Die Daten werden korrekt zur Verfügung gestellt (durch den Filter handelt es sich um drei Datensätze, und die Zieldatei umfasst auch drei Seiten.) Wenn ich SaveAsSingleFile auf false setze, werden in der Druckausgabe die Datenfelder angezeigt, aber nicht die Dateninhalte. Auch bei der Ausgabe PRINTER fehlen die Dateninhalte; dann kommen die Leerseiten hinzu (siehe Bug 30704).
Bevor ich eine Beispieldatei erstelle, wäre es schön, ob ich Hinweise auf eine falsche oder fehlende Einstellung oder zur Fehlersuche bekommen könnte. Danke! Jürgen
Code: Alles auswählen
Sub printBill_Create(oDatasource as object, sFilepath as string, sFilename as string)
MailMerge = createunoservice("com.sun.star.text.MailMerge")
MailMerge.ActiveConnection = thisComponent.Parent.CurrentController.activeConnection
MailMerge.DataSourceName = oDatasource.Name
MailMerge.DocumentURL = converttourl(sFilepath & "/" & sFilename)
MailMerge.CommandType = com.sun.star.sdb.CommandType.TABLE
MailMerge.Command = "fibu.print_bkbill"
' MailMerge.Filter = "(re_datum = " & chr(39) & CDateToIso(Now) & chr(39) & ")"
MailMerge.Filter = "(re_datum = " & chr(39) & "20121107" & chr(39) & ")"
MailMerge.OutputType = com.sun.star.text.MailMergeType.FILE
MailMerge.SaveAsSingleFile = true
MailMerge.OutputUrl = converttourl(sFilepath & "/Druckausgabe")
MailMerge.FileNameFromColumn = false
MailMerge.FileNamePrefix = "Rechnungen"
MailMerge.execute(Array())
rem erzeugte Druckausgabe sofort öffnen zur manuellen Überprüfung
url = converttourl(sFilepath & "/Druckausgabe/Rechnungen0.odt")
oDocument = StarDesktop.loadComponentFromURL(url, "_blank", 0, Array() )
End Sub
Bevor ich eine Beispieldatei erstelle, wäre es schön, ob ich Hinweise auf eine falsche oder fehlende Einstellung oder zur Fehlersuche bekommen könnte. Danke! Jürgen