MailMerge übernimmt keine Daten

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

TheUnreal
Beiträge: 4
Registriert: Mo, 18.09.2017 11:23

MailMerge übernimmt keine Daten

Beitrag von TheUnreal »

Moin zusammen,

ich habe mir unten stehendes Makro zusammengesucht um aus einer Excel Tabelle Daten in einen Serienbrief zu übernehmen un dzu drucken.
Bevor wir auf OO / LO umgestellt haben, nutzen wir MS und damit auch VBA. Ich bin dort ein wenig bewandert, jedoch nicht im "richtigen" Basic :).
Die Datenquelle ist registriert und kann über F4 --> Daten in Felder auch übernommen werden.

(Bei LibreOffice kann ich die XLS nur einmal registrieren, danach öffnet der die Verbindung nicht mehr - jmd dazu auch einen RAT?).
Versuche ich es mit dem unten stehenden Makro, funktioniert zwar der Druck, aber die Felder sind nicht gefüllt. Lt. Dannhöfer ist dies der "richtige" Weg.
Es führt kein Weg an dieser Excel Datei (XLS) vorbei, da unsere WW diese als Schnittstelle nutzt. Ich bin für jeden Hinweis dankbar

Code: Alles auswählen

Sub Main
Dim MyProps as Object
Dim printer(0) as new com.sun.star.beans.PropertyValue

MailMerge = createunoservice("com.sun.star.text.MailMerge")
MailMerge.DocumentURL=ConvertToUrl("c:\Ordner\Datei.doc")
MailMerge.CommandType=com.sun.star.sdb.CommandType.TABLE


MailMerge.DataSourceName="Datenbank"
MailMerge.Command="Tabelle"
MailMerge.OutputType=1
MailMerge.OutputUrl=ConvertToUrl("C:\Ordner\UnterOrdner")
'MailMerge.FileNameFromColumn=false
'MailMerge.Filenameprefix="Ausdruck"
printer(0).Name = "Name"
printer(0).Value = "KM-1635 GX normal"
MailMerge.Model.setPrinter(printer)
MailMerge.execute(array())

End Sub
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: MailMerge übernimmt keine Daten

Beitrag von Stephan »

Bei LibreOffice kann ich die XLS nur einmal registrieren, danach öffnet der die Verbindung nicht mehr - jmd dazu auch einen RAT?
Ich würde testweise ein oder zwei andere LO-Versionen probieren.
Weil LO in rascher Folge immer neue Versionen herausgibt, die aber alle nicht besonders fehlerfrei sind, ist die Chance hoch das der konkrete Fehler nur in Deiner speziellen Version vorkommt. ZUmindest ist mir der geschilderte Fehler nicht bekannt oder ich missverstehe was Deine Fehlerbeschreibung meint.

außedem:
ich weiß spontan nicht viel über com.sun.star.text.MailMerge, schau doch einmal ins englische Forum:
https://forum.openoffice.org/en/forum/s ... mit=Search

Kein Problem kann das xls sein, denn in Deinem Code wird ja auf eine bereits angemeldete Datenquelle zugegriffen und wenn das manuelle Zuweisen (Daten in Felder) klappt, dann sollte diese Datenquelle auch in Ordnung sein.


Gruß
Stephan
TheUnreal
Beiträge: 4
Registriert: Mo, 18.09.2017 11:23

Re: MailMerge übernimmt keine Daten

Beitrag von TheUnreal »

VielenDank für den Link,
ich suche da erstmal nach weiteren Anregungen :). Wie geschrieben, kann ich die Datenquelle in LO mit Strg-Umsch-F4 aufrufen, klicke ich jedoch in die Tabelle stürzt LO ab, mit OO 4.1.3 ist das ganze kein Problem.
Im Grunde ist mir auch egal welche Version, solange funktioniert, was ich möchte :lol: .

Ich probiere das mit anderen LO Versionen auch noch mal !

Solong und danke

P.S. Ja die Verbindung muss stehen da ich mit

Code: Alles auswählen

DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
DataSource = DatabaseContext.getByName("InfoExchange")
Verbindung = DataSource.getConnection( "", "" )
'if DatabaseContext.hasByName("InfoExchange")=true then
'msgbox "jupp"
'else
'end if
ein "jupp" bekomme
TheUnreal
Beiträge: 4
Registriert: Mo, 18.09.2017 11:23

Re: MailMerge übernimmt keine Daten

Beitrag von TheUnreal »

So, dass Thema mit den Daten ist gelöst. Für alle die von MS Office zu OO umsteigen sei gesagt :

! Erstellt ein neues ODT/ODF Dokument auf Basis des alten Word-Docs. In diesem könnt ihr bequem per Doppelklick die Feldbefehle auf "OpenOffice" Style ändern. Wenn man dieses dokument dann als grundlage für MailMerge nimmt, klappt es auch. Beim Versuch das alte Dokument weiter zu nutzen, geht nur ein manueller Übertrag der Daten mittels F4 --> Klick --> Klick --> Daten in Felder !

Aber warum stürzt mein Writer mit dem MailMerge Macro neuerdings ab? Ich habe es gestern neu schreiben müssen, weil ich einen doofen Fehelr ohne Backup gemacht habe. Seitdem kommt nach "MailMerge.execute" --> Keine Rückmeldung.

Code: Alles auswählen

REM  *****  BASIC  *****

Sub Main
DIM MailMerge as Object

MailMerge = createunoservice("com.sun.star.text.MailMerge")
MailMerge.DocumentURL=ConvertToUrl("C:\Pfad\BasicMakro.odt")
MailMerge.DataSourceName="Exchange Database"
MailMerge.CommandType= 0

MailMerge.Command="InfoExchangeTabelle"
MailMerge.OutputType= 1
MailMerge.SinglePrintJobs=true
MailMerge.SaveAsSingleFile=True

Dim MyProps() as Object
MailMerge.execute(MyProps()) 'hier erfolgt keine Rückmeldung mehr
MailMerge.dispose()

ThisComponent.close(true)
End Sub
Antworten