Newsgroup: it.comp.lang.visual-basic
Titolo: Formattare campi numerici in DataGrid

Ciao a tutti,
mi capita una cosa strana.
Ho la necessitï¿œ di formattare dei campi numerici nel formato 
123.456.789,123 cioï¿œ con separatore delle migliaia e separatore decimale.
Siccome i campi sono variabili, devo impostare la formattazione da 
codice. Se il caldo d'agosto non mi ha rincretinito, dovrebbe andar bene 
questa istruzione:
dg.Columns(i).NumberFormat = "#.##0"
Invece la Datagrid mi presenta il numero nel seguente formato 
123456789,123 cioï¿œ senza i separatori delle migliaia.
Dove sbaglio?
Nicola

 dg.Columns(i).NumberFormat = "#.##0"
Devi formattarlo cos�:
dg.Columns(i).NumberFormat = "#,###,###,##0.000"
--
Jack
http://jack.logicalsystems.it/homepage
------------------------------------------------------------------------------------------------
Questa mail, le informazioni in essa contenute e gli eventuali file allegati 
sono da considerarsi personali e strettamente confidenziali.Se ricevete 
questa mail per errore, significa che ho bevuto piu' del solito e/o ho messo 
poco tabacco in quello che fumo.Se intendete riutilizzare a scopo 
commerciale le informazioni contenute in questa mail e riuscite a ricavarne 
dei soldi siete pregati di dirmi come ci siete riusciti affinche' possa fare 
altrettanto.
----------------------------------------------------------------------------------------------- 

 dg.Columns(i).NumberFormat = "#,###,###,##0.000"
Grazie,
ora funziona, perï¿œ non capisco perchï¿œ, se seleziono la formattazione 
dalla finestra "personalizzate" -> "Formato" della datagrid, la 
formattazione del valore numerico con separatore delle migliaia mi viene 
descritta come "#.##0", boh che ci sia un errore nella traduzione 
italiana di VB6?
Nicola

 Nicola
Non lo so, tutto � possibile!
Non conosco nel dettaglio il datagrid, la formattazione che ti ho detto � 
quella che userei con l'istruzione
        Format[$](numero,"formato")
0 rappresenta una cifra sempre presente ( 0,4 formattato 000.000 ritorna 
000,400)
# rappresenta una cifra omettibile (0,4 formattato #00,00# ritorna 00,40)
. � il separatore decimale
, � il separatore delle migliaia
Format supporta poi i formati per data e ora (dd/mm/yyyy hh:nn:ss) e altri 
che ora non ricordo.


 dg.Columns(i).NumberFormat = "#.##0"
C'� qualcosa di strano in quella stringa. Gli dici dopo la virgola di
mettere due cifre opzionali e la terza obbligatoria?
Quella a 2 decimali classica �:
"#,##0.00" 
Se aggiungi uno 0 dopo il . ottieni 3 decimali.

 italiana di VB6?
Non credo, perch� si usa comunque la notazione eng per passare la format.
Secondo me la stringa che ti propone sopra � tipo quella di un intero, con
separatore sbagliato, probabilmente lo legge dalla localizzazione.
Hai provato se l� funzionano i vari "standard" o "currency" come propriet�?


Eppure secondo l'IDE di VB6 � proprio cos�.
Secondo VB6 #.##0 � una stringa con separatore dei decimali senza 
separatore delle migliaia.
http://bayimg.com/IADaNAacf
Viceversa, se provo con Excel mi d� un'altra interpretazione. Infatti 
#.##0 per lui � una stringa con separatore delle migliaia senza 
separatore decimale:
http://bayimg.com/JadAFaACf
In ogni caso sono entrambe diverse dalla tua interpretazione.
Io con queste cavolo di stringhe di formattazione non mi ci raccapezzo 
mai. Credi di sapere una cosa e, come per magia, scopri che in un altro 
ambiente quella cosa non � pi� valida :-(
Nicola

 ambiente quella cosa non � pi� valida :-(
Se non ricordo male io avevo messo su report manager la stessa stringa di
VB ma poi qualcosa non funzionava in alcuni casi, ma l� sono ambienti
diversi � comprensibile.
Io ho una variabile globale DecFormat che leggo da un file INI e uso quella
per tutte le visualizzazioni, anzi ce l'ho divisa fra Importi e Qta.