Exibição de dados no DBGrid
Pessoal, tenho uma aplicação em que exibo os dados de uma tabela num DBGrid. Um dos campos dessa tabela é Integer e o valor desse campo pode variar de 0 a 3. Gostaria que a coluna do DBGrid responsável pela exibição dos dados desse campo Integer, em lugar de mostrar os números de 0 a 3, mostrasse textos. Ex.: Quando o valor for ´0´, o DBGrid irá mostrar ´AAA´ na conluna Integer; Quando o valor do campo for ´1´, será mostrado ´BBB´; quando for ´2´ irá mostrar ´CCC´ e quando for ´3´ irá mostrar ´DDD´.
Imagino que deva ser feito um tipo de máscara talvez...
Alguém tem idéia de como resolver isso?
Valeu
wbb
Imagino que deva ser feito um tipo de máscara talvez...
Alguém tem idéia de como resolver isso?
Valeu
wbb
Wbb
Curtidas 0
Respostas
Rjun
11/08/2005
Crie um campo calculado. No evento OnCalcFields você atribiu para o campo o valor que você deseja. Na grade você exibe o campo calculado.
GOSTEI 0
Wbb
11/08/2005
Fala Rjun
Não implementei o que você indicou, mas você me deu uma idéia de como resolver usando isso. Criei uma nova tabela contendo os valores que eu precisava que fossem exibidos e adicionei um campo calculado, do tipo Lookup. Depois adicionei um novo DataSet para a nova tabela e apontei o campo para o valor que eu precisava (na nova tabela).
Outra opção mais simples, já que existe uma nova tabela, é unir as duas por meio de INNER JOIN e exibir no DBGrid apenas o que eu preciso.
Valeu
Não implementei o que você indicou, mas você me deu uma idéia de como resolver usando isso. Criei uma nova tabela contendo os valores que eu precisava que fossem exibidos e adicionei um campo calculado, do tipo Lookup. Depois adicionei um novo DataSet para a nova tabela e apontei o campo para o valor que eu precisava (na nova tabela).
Outra opção mais simples, já que existe uma nova tabela, é unir as duas por meio de INNER JOIN e exibir no DBGrid apenas o que eu preciso.
Valeu
GOSTEI 0
Fievel
11/08/2005
Olá amigo, você também poderia usar o CASE na sua SQL.
Saiba mais em:
[url]http://www.sqlmagazine.com.br/Colunistas/LucianoPimenta/02_casefirebird.asp[/url]
Saiba mais em:
[url]http://www.sqlmagazine.com.br/Colunistas/LucianoPimenta/02_casefirebird.asp[/url]
GOSTEI 0
Joaoshi
11/08/2005
Outra possibilidade seria usar o evento OnGetText da Field
if Campo = 1 then Text := ´AAA´;
Espero ter ajudado.
if Campo = 1 then Text := ´AAA´;
Espero ter ajudado.
GOSTEI 0