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]

Rispondere a