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]

Rispondere a