[Risolto]Grid control visualizzare Date

Creare una macro - Scrivere uno script - Usare le API
Rispondi
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

[Risolto]Grid control visualizzare Date

Messaggio da maxrome84 »

Salve a tutti, torno sull'argomento gridcontrol in finestre di dialogo perché mi sono accorto di un'altro problemino.
Questa mia griglia prende i dati tra le altre cose, da una colonna formattata come Data.Ora giustamente nella griglia invece di es. 12/02/2017 vedrò una serie di numeri es.45539
C'È modo per aggirare il problema o devo cambiare la formattazione sul foglio?Non vorrei visto che poi non potrei ordinare per data.
Tra l'altro questo problema è comune anche a listbox e combobox.
Grazie.
Ultima modifica di maxrome84 il mercoledì 1 marzo 2017, 18:17, modificato 1 volta in totale.
Open Office 4 beta
windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Grid control visualizzare Date

Messaggio da Gaetanopr »

No, devi leggere i dati come string quindi cambiare la macro
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: Grid control visualizzare Date

Messaggio da maxrome84 »

Grazie intanto per la risposta Gaetanopr. Visto che popolo la griglia con un array come mi hai mostrato tu, ho provato a dichiarare string l'array ma il risultato non cambia...

dim arr() as string
Arr() = archivio.getcellRangeByName("A2:I" & LastRow+1).GetDataArray
datamodel.addRows(Arr, Arr)
Open Office 4 beta
windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Grid control visualizzare Date

Messaggio da Gaetanopr »

Non ho detto di dichiarare l'array come string ma di acquisire i dati come testo.
Una soluzione è popolare l'array e poi andare a cambiare solo la colonna interessata.
Riprendendo il tuo vecchio file, quindi colonne A B C , consideriamo che la colonna A è quella con le date, puoi fare in questo modo.

Codice: Seleziona tutto

 Arr() = archivio.getcellRangeByName("A2:I" & LastRow+1).GetDataArray
  For i = 1 To LastRow
    Arr() = archivio.getcellByPosition(0, i).String
  Next i
  datamodel.addRows(Arr, Arr)
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: Grid control visualizzare Date

Messaggio da maxrome84 »

Si inizialmente avevo pensato la stessa cosa, ma avevo scartato questa soluzione perché avendo moltissime righe, leggere riga per riga mi rallenterebbe troppo l'esecuzione.
A me andrebbe bene anche leggere l'intero range come string.C'é modo di farlo?
Grazie ancora.
Open Office 4 beta
windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Grid control visualizzare Date

Messaggio da Gaetanopr »

Guarda ho provato con 50000 righe ed è immediato, deve leggere solo una colonna gli array sono velocissimi non è come andare a leggere riga per riga, colonna per colonna ed inserirla nel grid come facevi inizialmente tu.
Comunque come dici tu si può fare solamente se formatti la cella come testo
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: Grid control visualizzare Date

Messaggio da maxrome84 »

È vero scusa, non avevo considerato la differenza.
Quindi volendo lasciare la formattazione come DATA , dovrei convertire da codice la data in stringa?
Open Office 4 beta
windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Grid control visualizzare Date

Messaggio da Gaetanopr »

La macro che ti ho allegato fà questo
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: Grid control visualizzare Date

Messaggio da maxrome84 »

Scusa Gaetanopr ma a me continua a visualizzare le date in modo sbagliato.Avrò sbagliato a modificare qualcosa.Ti allego un file di esempio.
Allegati
TEST.ods
(13.41 KiB) Scaricato 167 volte
Open Office 4 beta
windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Grid control visualizzare Date

Messaggio da Gaetanopr »

Ho sbagliato nel messaggio precedente

Codice: Seleziona tutto

 For i = 1 To 28 'LastRow
    Arr(i-1)(1) = sheet.getcellByPosition(1, i).String
  Next i
  datamodel.addRows(Arr, Arr)
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re:Grid control visualizzare Date

Messaggio da maxrome84 »

Grazie ancora tanto per la pazienza! Inserisco risolto!
Ultima modifica di maxrome84 il mercoledì 1 marzo 2017, 18:18, modificato 2 volte in totale.
Open Office 4 beta
windows 7
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Grid control visualizzare Date

Messaggio da Gaetanopr »

LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
maxrome84
Messaggi: 55
Iscritto il: mercoledì 1 giugno 2016, 18:37

Re: [Risolto]Grid control visualizzare Date

Messaggio da maxrome84 »

Sistemato! Alla prima botta non ci azzecco mai!
Open Office 4 beta
windows 7
Rispondi