Ti ringrazio perché per trovare l'errore ho ripreso un po' di dimestichezza con le macro e ho pensato di poter sfruttare questo codice per implementare una funzione interessante per il mio DB.
Se devo essere del tutto sincero però quando ho finalmente trovato l'errore un po' di istinto omicida mi è salito
Togliendo ":" dal nome del file la macro è perfetta...è uno dei caratteri non ammissibili nei nomi file!!!
A volte è un singolo carattere a non far funzionare decine di righe di codice...il bello e il brutto di questo meraviglioso mondo
PS: ti rimetto il codice con un "-" al posto dei ":" e con i commenti per personalizzare le funzioni. Per disattivare o riattivare le righe basta mettere e togliere un apostrofo. Ti ho impostato la macro in modo che il report si apra in modalità nascosta, compaia il menù di esportazione pdf dove puoi cambiare eventualmente le opzioni, escluso il messaggio di conferma perché puoi avere la conferma della creazione dal fatto che si apre già il pdf, eliminato la chiusura del report perché è già nascosto. Ovviamente mettendo e togliendo gli apostrofi puoi riconfigurare come preferisci.
Codice: Seleziona tutto
Sub subDisplayReport
Personale = "Scadenza patenti"
pip = thisComponent.Parent.getReportDocuments
Dim ReportPropArgs(2) As New com.sun.star.beans.PropertyValue
ReportPropArgs(0).Name = "ActiveConnection"
ReportPropArgs(0).Value=thisComponent.Drawpage.Forms(0).ActiveConnection
ReportPropArgs(1).Name = "OpenMode"
ReportPropArgs(1).Value = "open"
ReportPropArgs(2).Name = "Hidden" 'Queste due righe attivano
ReportPropArgs(2).Value = true 'la modalità di apertura "nascosta"
penReport1 = pip.loadComponentFromURL(Personale,"_blank",8,ReportPropArgs())
document = penReport1.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
Dim args1(2) as new com.sun.star.beans.PropertyValue
sPDFURL=Left(ThisComponent.Parent.Location,len(ThisComponent.Parent.Location)-len(ThisComponent.Parent.Title))& format(Now(),"DD-MMMM-YYYY,HH-MM")&".pdf"
args1(0).Name = "URL"
args1(0).Value = sPDFURL
args1(1).Name = "FilterName"
args1(1).Value = "writer_pdf_Export"
'args1(2).Name = "FilterData" 'Queste due righe escludono
'args1(2).Value = Array() 'l'apertura del menù di esportazione PDF
dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())
'MsgBox "Report creato",64,"OK" 'Ho commentatoanche questo perchè il messaggio mi sembra inutile visto che ti si apre in anteprima il pdf appena creato
'Document.close( True ) 'Come era indicato questo è il comando di chiusura del report
End Sub
Spero di esserti stato di aiuto, se hai dubbi chiedi pure, se invece ho risolto il tuo problema chiudi pure