| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
Sr_Bohemia Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006 Mensagens: 121
|
Enviada: Seg Fev 25, 2013 4:56 pm Assunto: [RESOLVIDO] DBGRID - Variáveis para TRUE e FALSE |
|
|
Prezados Colegas,
Estou jogando os dados de uma consulta SQL em um DBGRID e em uma das colunas (STATUS) me retorna TRUE e FALSE.
Como faço pra alterar a exibição de TRUE para SIM e FALSE para NÃO, por exemplo?
Na consulta em SQL no código fonte, utilizei um CASE,
mas quando as informações é jogada no DBGRID, na coluna mostra (MEMO).
Acho q por usar CASE no SQL a coluna é do tipo TEXT.
Tentei criando uma VIEW no banco(Postgre), mais acontece a mesma coisa.
Alguem pode me ajudar?
Grato desja, _________________ ------------------------------------
RAPHAEL DANTAS
Técnico de Monitoramento de Sistema
Editado pela última vez por Sr_Bohemia em Ter Mar 05, 2013 1:39 pm, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
Ghost_Rider Colaborador

Registrado: Segunda-Feira, 6 de Outubro de 2003 Mensagens: 4437
|
Enviada: Seg Fev 25, 2013 5:07 pm Assunto: |
|
|
| Cria um campo calculado na sua Query, dai no evento oncalcfields voce troca de true para verdadeiro, e false para falso... |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Seg Fev 25, 2013 5:14 pm Assunto: |
|
|
Boa tarde,
Na aplicação você também pode utilizar o evento OnGetText do Field mais ou menos como segue:
| Código: | if DisplayText then
if dm1.DataSet1Campo1.AsString = 'True' then
Text := 'Sim'
else
Text := 'Não'
else
Text := dm1.DataSet1Campo1.AsString; |
Sobre o campo do tipo Memo, não tenho experiência com o PostgreSQL mas talvez você consiga resolver fazendo um Cast desse campo.
Espero que ajude.
Editado pela última vez por imex em Sex Set 29, 2023 11:51 am, num total de 1 vez |
|
| Voltar ao Topo |
|
 |
Batera Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Seg Fev 25, 2013 5:15 pm Assunto: |
|
|
Você pode usar o evento OnGetText do Field do DataSet (STATUS), e colocar esse código:
| Código: | if (Sender.AsString = 'TRUE') and (DisplayText) then
Text := 'SIM'
else if (Sender.AsString = 'FALSE') and (DisplayText) then
Text := 'NÃO'; |
|
|
| Voltar ao Topo |
|
 |
felipekk Colaborador


Registrado: Quinta-Feira, 5 de Janeiro de 2012 Mensagens: 1531 Localização: Pirapora - MG
|
|
| Voltar ao Topo |
|
 |
Sr_Bohemia Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006 Mensagens: 121
|
Enviada: Seg Fev 25, 2013 10:30 pm Assunto: |
|
|
| Ghost_Rider escreveu: | | Cria um campo calculado na sua Query, dai no evento oncalcfields voce troca de true para verdadeiro, e false para falso... |
Da pra explicar melhor? _________________ ------------------------------------
RAPHAEL DANTAS
Técnico de Monitoramento de Sistema |
|
| Voltar ao Topo |
|
 |
Sr_Bohemia Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006 Mensagens: 121
|
Enviada: Seg Fev 25, 2013 10:32 pm Assunto: |
|
|
| imex escreveu: | Boa tarde,
Na aplicação você também pode utilizar o evento OnGetText do Field mais ou menos como segue:
| Código: | if DisplayText then
if dm1.DataSet1Campo1.AsString = 'True' then
Text := 'Sim'
else
Text := 'Não'
else
Text := dm1.DataSet1Campo1.AsString; |
Sobre o campo do tipo Memo, não tenho experiência com o PostgreSQL mas talvez você consiga resolver fazendo um Cast desse campo.
Espero que ajude.
|
Imex,
Não encontrei esse evento no Form, Dbgrid, Dataset,....
Mas no caso do SQL como seria esse CAST com a função CASE? _________________ ------------------------------------
RAPHAEL DANTAS
Técnico de Monitoramento de Sistema |
|
| Voltar ao Topo |
|
 |
Sr_Bohemia Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006 Mensagens: 121
|
Enviada: Seg Fev 25, 2013 10:35 pm Assunto: |
|
|
| Batera escreveu: | Você pode usar o evento OnGetText do Field do DataSet (STATUS), e colocar esse código:
| Código: | if (Sender.AsString = 'TRUE') and (DisplayText) then
Text := 'SIM'
else if (Sender.AsString = 'FALSE') and (DisplayText) then
Text := 'NÃO'; |
|
o STATUS é o nome da coluna boolena.
E não encontrei esse evento.
Da pra explicar melhor? _________________ ------------------------------------
RAPHAEL DANTAS
Técnico de Monitoramento de Sistema |
|
| Voltar ao Topo |
|
 |
Sr_Bohemia Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006 Mensagens: 121
|
Enviada: Seg Fev 25, 2013 10:45 pm Assunto: |
|
|
felipekk,
Muito bom.... consegui!
Muito obrigado!
Mas juro que não entendi "bulhufas"...... _________________ ------------------------------------
RAPHAEL DANTAS
Técnico de Monitoramento de Sistema |
|
| Voltar ao Topo |
|
 |
Batera Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Seg Fev 25, 2013 11:24 pm Assunto: |
|
|
Quando você clica 2 vezes no DataSet, é exibido o Fields Editor, certo?
É nessa janelinha que tem os campos. Basta selecionar o campo STATUS e conferir os eventos dele. O OnGetText vai estar lá!  |
|
| Voltar ao Topo |
|
 |
Sr_Bohemia Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006 Mensagens: 121
|
Enviada: Ter Fev 26, 2013 12:33 am Assunto: |
|
|
| Batera escreveu: | Quando você clica 2 vezes no DataSet, é exibido o Fields Editor, certo?
É nessa janelinha que tem os campos. Basta selecionar o campo STATUS e conferir os eventos dele. O OnGetText vai estar lá!  |
Fiz isso...
Acho que esse evento não tem no Delphi7 _________________ ------------------------------------
RAPHAEL DANTAS
Técnico de Monitoramento de Sistema |
|
| Voltar ao Topo |
|
 |
Batera Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008 Mensagens: 4899 Localização: Maringá
|
Enviada: Ter Fev 26, 2013 12:44 am Assunto: |
|
|
Tem, oras bolas!
 |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Ter Fev 26, 2013 11:06 am Assunto: |
|
|
| Sr_Bohemia escreveu: | | Mas no caso do SQL como seria esse CAST com a função CASE? |
O Cast teria que ser executado depois do Case. Ex:
| Código: | | Cast(case when Campo1 = 1 then 'True' else 'False' end as Boolean) as Status |
Apesar que desconfio que o Cast não será necessário se você remover as aspas:
| Código: | | case when Campo1 = 1 then True else False end as Status |
Espero que ajude. |
|
| Voltar ao Topo |
|
 |
|