Meglio è così:
Format(Valore, "###,##0.00")
Spiegazione: la "," rappresenta il separatore delle migliaia (su Ubuntu ci sono dei problemini, viene messo uno spazio invece del punto); il "." è il separatore dei decimali. Il "#" rappresenta la posizione di una cifra opzionale, mentre lo "0" rappresenta la posizione di una cifra obbligatoria, che viene riempita con lo 0 se non c'è.
Quindi
Format("15.2", "###,##0.00")
dà come risultato 15,20, mentre
Format("15.00", "###,##0.00")
diventa 15,00.
Beh, considera di dover inserire il valore di Numero in una cella:
Griglia.Item[indice] = Format(Numero, "###,##0.00")
Mettiamo il caso che tu debba inserire in una ColumnView delle scadenze .
Allora il codice di un'ipotetica funziona CaricaScadenza sarà il seguente:
(...)
Griglia.Add(Comodo, "") '--aggiungi una riga
Griglia.Item[0] = Cliente '-- codice cliente
Griglia.Item[1] = Data '-- data scadenza effetto
Griglia.Item[2] = Format(Importo, "###,###,##0.00")
(...)
Ricordati che, per funzionare, devi passare a Format un dato Importo di tipo numerico. In genere io uso il tipo Single.
Devi modificare il tuo codice così:
FOR EACH faResult
CvwFindArt.Add(faResult.Index, faResult[0])
FOR c = 1 TO faResult.Fields.Count - 1
IF c= 3 THEN
CvwFindArt[faResult.Index][c] = Format(faResult[c], "##,###,##0.00")
ELSE
CvwFindArt[faResult.Index][c] = faResult[c]
NEXT
NEXT
leo72 ha scritto:
Devi modificare il tuo codice così:
FOR EACH faResult
CvwFindArt.Add(faResult.Index, faResult[0])
FOR c = 1 TO faResult.Fields.Count - 1
IF c= 3 THEN
CvwFindArt[faResult.Index][c] = Format(faResult[c], "##,###,##0.00")
ELSE
CvwFindArt[faResult.Index][c] = faResult[c]
NEXT
NEXT
Ho utilizzato il suggerimento di leo per formattare una colonna di una ColumnView
FOR EACH faResult
CvwFindArt.Add(faResult.Index, faResult[0])
FOR c = 1 TO faResult.Fields.Count - 1
IF c= 3 THEN
CvwFindArt[faResult.Index][c] = Format(faResult[c], "000000")
ELSE
CvwFindArt[faResult.Index][c] = faResult[c]
NEXT
NEXT
per visualizzare i dati in questo modo:
000001
000002
000050
000100
ecc...
ma niente da fare, gli zeri anteposti ai numeri non appaiono.
Risolto :-D
La colonna che dovevo formattare era la prima, quindi il codice va modificato così,
per ottenere il risultato descritto nel post precedente
FOR EACH faResult
CvwFindArt.Add(faResult.Index, Format(faResult[0], "000000"))
FOR c = 1 TO faResult.Fields.Count - 1
CvwFindArt[faResult.Index][c] = faResult[c]
NEXT
NEXT