sono alla disperata ricerca di una soluzione ad un problema di stampa unione (mail merge) eseguita con una macro. Sto usando LibreOffice 6.
Premetto che non conosco nulla di Basic per cui ho pedestremente copiato e modificato una macro che ho trovato in rete. Il tutto non con poche difficoltà.
Adesso, quando la eseguo la prima volta tutto funziona. Quando la eseguo la seconda volta (e le successive) mi da un errore che non riesco a risolvere.
Errore di runtime BASIC.
Si è verificata un'eccezione
Type: com.sun.star.uno.RuntimeException
Message: Failed to save temporary file..
Il solo modo che ho trovato per ovviare al problema è killare soffice.bin e soffice.exe.
In seguito la macro viene nuovamente eseguita per una sola volta poi di nuovo l'errore.
Qualcuno sa come risolvere?
Vi ringrazio molto.
Di seguito il codice della macro
Codice: Seleziona tutto
Sub myMailmerge
dim NameSource as String
dim NameTable as String
dim colunnPrefix as string
dim URLframe as string
dim CommandType as string
dim Command as string
dim dirResults as string
dim myMailmerge as object, props()
dim MergedFile as object, propFile()
Dim url as string
NameSource = "tosap"
NameTable = "tosap"
URLframe = ConvertToURL("C:\temp_sipal\StampaUnioneOccupazione.odt")
dirResults = ConvertToURL("C:\temp_sipal\risultati\")
myMailmerge = createUnoService("com.sun.star.text.MailMerge")
With myMailmerge
.DataSourceName = NameSource
.CommandType = com.sun.star.sdb.CommandType.TABLE
.Command = NameTable
.OutputType = com.sun.star.text.MailMergeType.FILE
.SaveAsSingleFile = True
.DocumentURL = URLframe
.OutputURL = dirResults
.execute(props())
End With
MsgBox("Il file è stato salvato nella cartella: "+dirResults)
url = ConvertToURL("C:\temp_sipal\risultati\StampaUnioneOccupazione0.odt")
StarDesktop.loadComponentFromURL(url,"_blank",0,Array())
End Sub