On 05/04/06, Paolo Mantovani <[EMAIL PROTECTED]> wrote:
>
> Ciao Michele,
>
> Alle 12:22, mercoledì 5 aprile 2006, Michele Zarri ha scritto:
> > Ciao Dev-IT,
> >
> > Prima di tutto devo confessare che per il 99% dei casi uso StarBasic per
> > creare macro in Writer, tuttavia di recente ho avuto bisogno di creare
> un
> > paio di macro in Calc e mi sono subito trovato di fronte a un bel
> > problemuccio (sicuramente causato dalla mia inesperienza).
> >
> > Ho un insieme di stringhe in una colonna che vorrei mettere in un array,
> > cercando qua e la' ho trovato questo:
> >
> http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/XCellRangeData
> >html#getDataArray
> >
> > Percio' avevo scritto le seguenti istruzioni:
> > Nota: Un po' sopra queste istruzioni ho un Dim mCategoriesArray() As
> String
> >
> > oSourceRange = oDataSheet.getCellRangeByPosition
> (0,1,0,nNumberOfCategories)
> > mCategoriesArray() = oSourceRange.getDataArray(  )
> >
> > .. e non funziona.
> >
> > dove sbaglio?
>
> Mi pare che problema sia il dimensionamento dell'array come String
>
> notare che la documentazione che hai citato dice:
> ---------
> Methods' Details
>   getDataArray
> sequence< sequence< any > >
>
> ---------
>
> In sostanza il metodo restituisce una sequenza di sequenze che a loro
> volta
> contengono dati di tipo any
>
> tradotto in Basic:
> si tratta di un array di arrays nei quali gli elementi sono di tipo
> Variant
>
> In pratica, se chiami getDataArray() sul range A1:B3 ti viene restituito
> un
> array nidificato come questo:
>
> [ [A1,B1], [A2,B2], [A3,B3] ]
>
> Dove A1,B1 ecc. rappresentano i dati contenuti nelle celle omonime.
>
> In termini di codice dovrai dichiarare il tuo array principale come
> Variant
> Oppure puoi omettere del tutto il tipo di dato (equivale a Variant)
>
> Poi per ottenere il contenuto delle celle dovrai impostare non uno ma due
> cicli nidificati:
>
>
> Dim mCategoriesArray() As Variant
> Dim Riga() As Variant
> Dim Cella As Variant
>
> oSourceRange = oDataSheet.getCellRangeByPosition
> (0,1,0,nNumberOfCategories)
> mCategoriesArray() = oSourceRange.getDataArray()
>
> For Each riga in mCategoriesArray()
>   For Each Cella in Riga()
>     Print Cella
>   Next Cella
> Next Riga
>
>
> NB: nell'esempio ho dichiarato solo le variabili legate alla questione
> proposta.
>
>
> saluti
> Paolo Mantovani
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
> Mmm... mi pare che la cura sia peggiore del male :)

Mi sa che mi accontento del ciclo For...Next.

Grazie tantissimo per la spiegazione come sempre chiarissima.

Ciao,

Michele

PS: Ancora nessuno con il pollice verde che mi sappia dare una mano con i
miei benedetti alberi... :-(

Rispondere a