Alle 12:55, sabato 12 maggio 2007, Renato Ferrari ha scritto:
[...]
> Ora, dopo essermi scaricato, stampato e letto la developer's guide di OOo,
> dopo aver acquistato, e sto leggendo un po' a rilento, il libro di pitonyak
> OpenOffice.org Macros Explained, mi ritrovo a non aver risposta ai quesiti
> che mi rendono molto difficile anche solo iniziare a convertire le macro di
> staroffice 5.2 in openoffice, 

Visto che non lo hai citato, esiste anche un manuale in italiano della Sun:
http://docs.sun.com/app/docs/doc/819-1329?q=staroffice+8


> perciò chiedo aiuto a voi. 
>
> 1) In staroffice, la dichiarazione dei documenti e degli oggetti era, come
> dire? implicita invece mi par di capire che qui tutti gli oggetti che sono
> o verranno utilizzati devono essere esplicitamente dichiarati, o sbaglio?

Esistono dei puntatori impliciti anche in OOBasic.
I principali sono:
ThisComponent -> punta al documento corrente
StarDesktop -> punta ad un oggetto che rappresenta l'intera applicazione


> ad esempio, se ho un foglio di calcolo con due o tre finestre di dialogo,
> devo sempre creare-dichiarare nella macro le finestre di dialogo?

Non ho ben capito, puoi essere più specifico?


> (ActiveWindow.JumpToTable(3) mi permette di attivare la terza tabella di un
> foglio elettronico d'acchito)

Hai provato con il registratore di macro?


>
> 2) uno dei comandi che utilizzo di più in staroffice è portare il cursore
> nell'ultima cella contenente dati vuoi dell'intero foglio vuoi di una
> colonna: qual'è il comando equivalente in OOo?
> (per esempio:
> ActiveWindow.GoToCell( "$A$1" )
> Selection.GoDownToEndOfData( 1, FALSE )
> mi permette di portare il cursore sull'ultima cella contenente dati della
> colonna A e di attivarla)

Anche qui il registratore dovrebbe esserti di aiuto


> 3) qui chiedo una conferma: in staroffice si usa "ActiveWindow" per
> richiamare la finestra attiva, l'equivalente dovrebbe essere
> "ThisDocument", o sbaglio? (o ActiveDocument?)

Come ho detto sopra, ThisComponent si riferisce al documento attivo.

Notare che l'API (l'interfaccia di programmazione) di OOo è un po più 
strutturata e granulare rispetto a quella di StarOffice 5.x, perciò il 
concetto di "documento attivo" non equivale a "finestra attiva"


>
> 4) (e ultimo per ora, poi non vi tedio più): in staroffice si può fare
> riferimento a una cella indicando numero colonna, di numero di riga, e
> indice del foglio senza per questo attivare il foglio cui si fa'
> riferimento, c'è qualcosa di analogo in OOo?
> (Ad esempio con CellText(9,35,7) posso fare riferimento al testo della
> cella in colonna 9 o "I", riga 35, tabella 7)

Tenendo conto che nell'API di ooo gli indici partono sempre da zero, questo è 
il codice equivalente:

        oSheet = ThisComponent.Sheets(6)
        oCell = oSheet.getCellByPosition(8,34)
        Print oCell.getString()


> grazie

di nulla

ciao
Paolo M

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a