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]
