Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
DataGrid - Formattazione Contenuto Celle
mercoledì 28 febbraio 2007 - 10.01
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Piumy83
Profilo
| Newbie
27
messaggi | Data Invio:
mer 28 feb 2007 - 10:01
Ciao a tutti!!!
Sto lavorando in C# e ho questo problema...
Io leggo dei dati da una Query che vanno poi caricati in un DataGrid... Tra i campi letti, ce n'è uno che su DB presenta i seguenti valori:
- "I" --> "ISCRITTI"
- "A" --> "ARRIVATI"
- "M" --> "MERITO"
A seconda del valore che leggo, devo scrivere nella cella corrispondente del DataGrid (In fase di caricamento dei dati) la giusta "trascodifica"...
Per la Personalizzazione delle colonne ho usato il seguente codice:
DataGridTableStyle Stile = new DataGridTableStyle();
Stile.MappingName = dgCategorie.DataMember;
DataGridColumnStyle Col;
Stile.MappingName = dgCategorie.DataMember;
Stile.RowHeaderWidth = 15;
Col = new DataGridTextBoxColumn();
Col.MappingName = "c_categoria";
Col.Width = 100;
Col.HeaderText = "c_categoria";
Col.NullText = "";
Stile.GridColumnStyles.Add(Col);
Per personalizzare il contenuto di una cella come posso fare???
Grazie mille
Piumy83 - Micky
chava
Profilo
| Newbie
3
messaggi | Data Invio:
mer 28 feb 2007 - 17:09
Potresti aggiungere una nuova colonna alla tabella con la proprietà
Expression = "iif(c_categoria='I','...',iif(c_categoria='A','arri...','...'))"
Se ti è possibile intervieni con questa formula sulla query oppure in join con una seconda tab con i valori
Piumy83
Profilo
| Newbie
27
messaggi | Data Invio:
gio 1 mar 2007 - 09:50
Mmmm... No non funziona... Ma probabilmente non ho capito il suggerimento... Specifico intanto che il DB su cui lavoro è un DB Access
Piumy83 - Micky
Kommad
Profilo
| Newbie
6
messaggi | Data Invio:
gio 1 mar 2007 - 12:43
Io agirei direttamente sulla select che fai nel database access in maniera che fosse lui a risponderti i valori corretti.
- "I" --> "ISCRITTI"
- "A" --> "ARRIVATI"
- "M" --> "MERITO"
Nella select che richiami per farti passare i dati potresti fare:ù
SELECT Pippo, Pluto, Paperino, Paperoga: IIf(CampoData="I";"ISCRITTI";IIf(CampoData="A";"ARRIVATI";IIf(CampoData="M";"MERITO";"NC")))
IN questa maniera non hai problemi di inventarti giri strani, perchè è gia il database a passarti il tutto correttamente.
Ciao.
Piumy83
Profilo
| Newbie
27
messaggi | Data Invio:
gio 1 mar 2007 - 14:22
Mmmmm
Io ho fatto questa query:
SELECT C_CATEGORIA, TIPO_PUNT: IIf(TIPO_PUNT="I";"ISCRITTI";"NULLO")
FROM T_CETEGORIE
where c_categoria = 43
Ma mi da' questo errore: "Operatore mancante nell'espressione della query: TIPO_PUNT: IIf(TIPO_PUNT='I';'ISCRITTI';'NULLO')
Dove sbaglio?
Piumy83 - Micky
Kommad
Profilo
| Newbie
6
messaggi | Data Invio:
gio 1 mar 2007 - 14:41
>SELECT C_CATEGORIA, TIPO_PUNT: IIf(TIPO_PUNT="I";"ISCRITTI";"NULLO")
>FROM T_CETEGORIE
>where c_categoria = 43
Se TIPO_PUNT è il nome del campo l'espressione è sbagliata perche' l'alias che hai usato (TIPO_PUNT:) è uguale al nome del campo della tabella sul quale vuoi fare l'IIF
Dovresti scrivere:
SELECT C_Categoria, Alias_Tipo_Punt: IIf(Tipo_Punt="I";"ISCRITTI";"NULLO")
FROM T_Categire
where C_Categoria = 43
Così dovrebbe funzionare!!
Ciao
Piumy83
Profilo
| Newbie
27
messaggi | Data Invio:
gio 1 mar 2007 - 15:21
A me continua a dare errore
Piumy83 - Micky
Jumpa
Profilo
| Junior Member
176
messaggi | Data Invio:
gio 1 mar 2007 - 16:33
scusate l'intromissione,
ma io farei una tabella di supporto con dentro la codifica,
e poi ti tiri fuori i dati o facendo un join al volo,
oppure facendo una vista statica contenente il join, cosi che tu fai la select direttamente sulla vista e ti alimenti il datagrid.
secondo me è piu funzionale anche perche il giorno che ti cambia la codifica o aggiungi una voce o quello che ti pare non fai altro che aggiungere un record nella tabella dei codici
-------------------------
Follow the White Rabbit...
http://www.jumpa.org
-------------------------
Piumy83
Profilo
| Newbie
27
messaggi | Data Invio:
gio 1 mar 2007 - 16:35
Sì... Anche... Ma è appunto la codifica che a me non funziona...
Piumy83 - Micky
Jumpa
Profilo
| Junior Member
176
messaggi | Data Invio:
gio 1 mar 2007 - 16:40
hai provato ad implementare la soluzione che ti ho proposto?
-------------------------
Follow the White Rabbit...
http://www.jumpa.org
-------------------------
Kommad
Profilo
| Newbie
6
messaggi | Data Invio:
gio 1 mar 2007 - 17:01
>tu fai la select direttamente sulla vista e ti alimenti il datagrid.
>secondo me è piu funzionale anche perche il giorno che ti cambia
>la codifica o aggiungi una voce o quello che ti pare non fai
>altro che aggiungere un record nella tabella dei codici
Hai Ragione Jampa, ma non aveva parlato di tabelle o quant'altro per la codifica, quindi la cosa più semplice mi sembrava quella di mettere un IIF...
Sicuramente quello è il modo più versatile...
E' strano però che ti dia errore.. L'unica cosa che mi viene in mente e che potrebbe dipendere dal ";"
Prova a sostituirli con "," magari digerisce meglio la select...
Piumy83
Profilo
| Newbie
27
messaggi | Data Invio:
gio 1 mar 2007 - 17:16
Io scrivo la Query su Access e non funziona...
Ho provato in tutti i modi... Anche con la "," mi continua a dare lo stesso errore: "Operatore Mancante"...
Piumy83 - Micky
Kommad
Profilo
| Newbie
6
messaggi | Data Invio:
gio 1 mar 2007 - 17:39
Scusami ho fatto un po' di confusione tra le versioni di access, e un bel po' che non ci metto le mani.
SELECT C_CATEGORIA, IIf(TIPO_PUNT="I","ISCRITTI","NULLO") AS TIPO_PUNT
FROM T_CETEGORIE
where c_categoria = 43
Questa l'ho provato sul crea query di Access e funziona.
Piumy83
Profilo
| Newbie
27
messaggi | Data Invio:
ven 2 mar 2007 - 09:01
Grande!!!
Grazie mille!!! Io ho sempre lavorato su DB Oracle, ed Access lo odio profondamente!!!
Grazie mille, mi hai risolto una grossa rogna!!!!
Piumy83 - Micky
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !