[Risolto] Percorso salvataggio pdf macro.

Discussioni sulle caratteristiche di database
Rispondi
Pierluigi1982+
Messaggi: 126
Iscritto il: martedì 7 aprile 2020, 15:36

[Risolto] Percorso salvataggio pdf macro.

Messaggio da Pierluigi1982+ »

Buonasera, non riesco a trovare dove salva il pdf la macro seguente... grazie

Codice: Seleziona tutto

Sub subDisplayReport'(Personale as string)
   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"
   ReportPropArgs(2).Value = true
    penReport1 = pip.loadComponentFromURL(Personale,"_blank",8,ReportPropArgs())
   document   = penReport1.CurrentController.Frame' il nostro 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"
   args1(2).Value = Array()
   dispatcher.executeDispatch(document, ".uno:ExportToPDF", "", 0, args1())
   MsgBox "Report creato",64,"OK"
   Document.close( True )  ' se si vuole chiudere il report
End Sub
inoltre se non volessi chiudere il report?

grazie
Ultima modifica di Pierluigi1982+ il giovedì 18 giugno 2020, 9:22, modificato 2 volte in totale.
LibreOffice 6.4.7 su Windows 10/MacOS
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Percorso salvataggio pdf macro.

Messaggio da charlie »

Ciao, per cortesia, utilizza le funzioni di formattazione del codice nei tuoi post.
Schermata 2020-06-17 alle 16.25.40.png
Migliorerai la leggibilità e sarai in "regola con regole" del forum.
Grazie.
P.S. Anche questa volta ho provveduto io.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Pierluigi1982+
Messaggi: 126
Iscritto il: martedì 7 aprile 2020, 15:36

Re: Percorso salvataggio pdf macro.

Messaggio da Pierluigi1982+ »

Scusa Charlie, sono veramente sbadato alcune volte, non avevo capito dove inserirlo! grazie!
LibreOffice 6.4.7 su Windows 10/MacOS
Pierluigi1982+
Messaggi: 126
Iscritto il: martedì 7 aprile 2020, 15:36

Re: Percorso salvataggio pdf macro.

Messaggio da Pierluigi1982+ »

Sul mac, il pdf me lo esporta nella cartella del db ma su windows 7 non lo trovo, mi dà un errore generico I/O e poi me lo crea ma non riesco a trovarlo mi puoi aiutare? come si cambia il percorso? grazie mille!
LibreOffice 6.4.7 su Windows 10/MacOS
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Percorso salvataggio pdf macro.

Messaggio da charlie »

Il messaggio ti dice che l'ha creata, ma non è vero. Infatti è preceduto da un messaggio di errore.
Ho verificato anch'io il problema, anche impostando un percorso diverso.
Strano che funzioni in ambiente macOS (funziona) e non Windows, perché @Gaetanopr che ha postato la macro lavora in ambiente Windows.
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Pierluigi1982+
Messaggi: 126
Iscritto il: martedì 7 aprile 2020, 15:36

Re: Percorso salvataggio pdf macro.

Messaggio da Pierluigi1982+ »

Ti assicuro, che mi funziona su mac, prima mi funzionava anche su windows 7, ore nn più, non so cosa possa essere successo, come posso risolvere? grazie.
LibreOffice 6.4.7 su Windows 10/MacOS
Avatar utente
Zago_87
Messaggi: 111
Iscritto il: mercoledì 14 gennaio 2015, 23:53

Re: Percorso salvataggio pdf macro.

Messaggio da Zago_87 »

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. :super:
Se devo essere del tutto sincero però quando ho finalmente trovato l'errore un po' di istinto omicida mi è salito :mrgreen:

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 :ouch:

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 ;)
LibreOffice 6.3.6
Windows 7 PRO
Pierluigi1982+
Messaggi: 126
Iscritto il: martedì 7 aprile 2020, 15:36

Re: Percorso salvataggio pdf macro.

Messaggio da Pierluigi1982+ »

Buongiorno, ti sono davvero grato, grazie mille, ho risolto! sto cercando di imparare, ma la strada è lunga, Charlie mi ha consigliato un manuale ma è in inglese, io non sono molto bravo in inglese...mi sapresti indicare qualcosa in italiano per imparare a fare le macro? qualcosa da principianti! grazie ancora!
LibreOffice 6.4.7 su Windows 10/MacOS
Avatar utente
Zago_87
Messaggi: 111
Iscritto il: mercoledì 14 gennaio 2015, 23:53

Re: [RISOLTO] Percorso salvataggio pdf macro.

Messaggio da Zago_87 »

Sono poco più che un principiante anche io con la scrittura delle macro...consigli migliori di Charlie non ne ho davvero.
Ho cercato a lungo manuali che una volta letti mi facessero dire "CI SONO!", ma ancora mai avuta quella sensazione :knock:

Quello che ho imparato l'ho imparato affrontando un problema alla volta come penso stai facendo anche tu, soprattutto grazie a questo forum. Poi anche quelli analoghi in inglese, spagnolo e francese aiutano, altri risultati in rete...e tante ore di test.

Un consiglio che mi viene in mente ora al volo, se non lo stai già facendo cerca di sfruttare le MsgBox per verificare passaggio per passaggio se la macro sta facendo quello che ti aspetti. Ad esempio se inserisci

Codice: Seleziona tutto

MsgBox sPDFURL
dopo il passaggio in cui setti il nome del file, arrivato a quel punto della macro ti appare un messaggio con il percorso. In generale quando imposti una variabile, se nella riga successiva la stampi ti accerti che sia tutto ok.

Alla prossima ;)
LibreOffice 6.3.6
Windows 7 PRO
Avatar utente
charlie
Site Admin
Site Admin
Messaggi: 8807
Iscritto il: mercoledì 19 dicembre 2012, 10:50
Contatta:

Re: Percorso salvataggio pdf macro.

Messaggio da charlie »

Pierluigi1982+ ha scritto:Charlie mi ha consigliato un manuale ma è in inglese
Ho fatto una traduzione in italiano viewtopic.php?f=29&t=10531
charlie
macOS 14.4.1 Sonoma: Open Office 4.1.15 - LibreOffice 7.5.7.2
http://www.charlieopenoffice.altervista.org
Pierluigi1982+
Messaggi: 126
Iscritto il: martedì 7 aprile 2020, 15:36

Re: [Risolto] Percorso salvataggio pdf macro.

Messaggio da Pierluigi1982+ »

Gazie a tutti per l'aiuto, a presto! :)
LibreOffice 6.4.7 su Windows 10/MacOS
Rispondi