Alle 15:51, venerdì 6 gennaio 2006, Paolo Mantovani ha scritto:
> Dubito che la cosa possa funzionare.
Registrandola con OO.1.3 funziona, ma durante l' esecuzione si apre il
dialogo per poter scegliere cosa esportare(cioè quello con il pulsante
"Selezione") questo non viene salvato nella macro(poco male)
Con OO.2 invece viene salvato anche le impostazioni del suddetto dialogo
ma sbaglia la numerazione dell' array(passa da (0), (1), (4), (5))
correggiendo la sequenza a mano si comporta come OO.1.3 cioè fa apparire
la suddetta finestra
>
> Il registratore è spesso in difficoltà quando ci sono di mezzo dei dialoghi
Credo che tu abbia ragione, come si può costatare sopra
>
> > Questa procedura usa i dispatches, cosa non proprio consigliata da Paolo
> > Mantovani in un altro thread, ma non conosco un modo più semplice per
> > farlo.
>
> Dovevo immaginare che la mia frase sarebbe stata usata contro di me...
Non avevo nessuna intenzione di polemizzare con te, anzi
se uno, che ha conoscenze superiori alle mie in un determinato argomento, mi
da un consiglio lo accetto ben volentieri, se poi aggiunge anche qualche
spiegazione ancora meglio
Tornando al problema sollevato da Mirko, visto che il registratore non da
buoni frutti, ho modificato ancora il codice di Bart cosi:
Sub esporta_fattura_in_pdf
Dim myProps(1) as New com.sun.star.beans.PropertyValue
'il valore di questo array va impostato a 1
oSheet = ThisComponent.CurrentController.ActiveSheet
mycell = oSheet.getCellRangeByName("$a$5") 'ovviamente scrivi
'l'indirizzo della tua cella
oNumero = mycell.string
print oNumero 'adesso hai una parte del nome
' potrebbe essere il numero della fattura
' allo stesso modo puoi prelevare il nome del cliente
' adesso aggiungamo un po' di roba
oAnno = "2006"
oRange = oSheet.getCellRangeByName("A1:G20").getRangeAddress()
ThisComponent.CurrentController.getActiveSheet().setPrintAreas(Array(oRange))
'queste 2 linee servono aselezionare un' area del foglio attivo
'in questo caso A1 G20
Dim sCartella As String
sCartella = Folder()
'Questa variabile chiama la funzione Folder()
'la quale apre una finestra nella quale puoi
'scegliere la cartella dove vuoi salvare.
'La riga "sUrl= "file:/// ...." può essere modificata
'così
sUrl= sCartella + "Fattura_" + oNumero + oAnno + ".pdf"
' oppure come si preferisce...
Print sUrl 'adesso hai anche la path corrente come prima proposta
myProps(1).Name = "Selection"
myProps(1).Value = true
'queste due linee per salvare solo la parte selezionata
myProps(0).Name="FilterName"
myProps(0).Value = "Calc_pdf_Export" ' l'errore era qui...
'(a me non da nessun errore)
'ma come faceva a funzionare?
thisComponent.storetoUrl(sUrl,myProps())
End Sub
Function Folder()
Dim oCartella as Object
Dim iAccetta as Integer
oCartella = CreateUnoService("com.sun.star.ui.dialogs.FolderPicker")
iAccetta = oCartella.Execute()
If iAccetta = 1 Then Folder() = oCartella.GetDirectory()
End Function
A me funziona
Provate anche voi
ciao Lido
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]