ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

[RESOLVIDO] DBGRID - Variáveis para TRUE e FALSE

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
Sr_Bohemia
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006
Mensagens: 121

MensagemEnviada: Seg Fev 25, 2013 4:56 pm    Assunto: [RESOLVIDO] DBGRID - Variáveis para TRUE e FALSE Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Seg Fev 25, 2013 5:07 pm    Assunto: Responder com Citação

Cria um campo calculado na sua Query, dai no evento oncalcfields voce troca de true para verdadeiro, e false para falso...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Seg Fev 25, 2013 5:14 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Batera
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008
Mensagens: 4899
Localização: Maringá

MensagemEnviada: Seg Fev 25, 2013 5:15 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
felipekk
Colaborador
Colaborador


Registrado: Quinta-Feira, 5 de Janeiro de 2012
Mensagens: 1531
Localização: Pirapora - MG

MensagemEnviada: Seg Fev 25, 2013 5:29 pm    Assunto: Responder com Citação

No caso da palavra memo na DBGrid, de uma olhada neste link;

>> http://www.activedelphi.com.br/forum/viewtopic.php?p=385709&highlight=#385709

Espero que ajude.
_________________
"Esteja ligado em melhora contínua: hoje melhor do que ontem e pior do que amanhã."


Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Sr_Bohemia
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006
Mensagens: 121

MensagemEnviada: Seg Fev 25, 2013 10:30 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Sr_Bohemia
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006
Mensagens: 121

MensagemEnviada: Seg Fev 25, 2013 10:32 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Sr_Bohemia
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006
Mensagens: 121

MensagemEnviada: Seg Fev 25, 2013 10:35 pm    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Sr_Bohemia
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006
Mensagens: 121

MensagemEnviada: Seg Fev 25, 2013 10:45 pm    Assunto: Responder com Citação

felipekk escreveu:
No caso da palavra memo na DBGrid, de uma olhada neste link;

>> http://www.activedelphi.com.br/forum/viewtopic.php?p=385709&highlight=#385709

Espero que ajude.



felipekk,

Muito bom.... consegui!
Muito obrigado!

Mas juro que não entendi "bulhufas"......
_________________
------------------------------------
RAPHAEL DANTAS
Técnico de Monitoramento de Sistema
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Batera
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008
Mensagens: 4899
Localização: Maringá

MensagemEnviada: Seg Fev 25, 2013 11:24 pm    Assunto: Responder com Citação

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á! Smile
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
Sr_Bohemia
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 6 de Dezembro de 2006
Mensagens: 121

MensagemEnviada: Ter Fev 26, 2013 12:33 am    Assunto: Responder com Citação

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á! Smile


Fiz isso...
Acho que esse evento não tem no Delphi7
_________________
------------------------------------
RAPHAEL DANTAS
Técnico de Monitoramento de Sistema
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail MSN Messenger
Batera
Colaborador
Colaborador


Registrado: Quarta-Feira, 23 de Julho de 2008
Mensagens: 4899
Localização: Maringá

MensagemEnviada: Ter Fev 26, 2013 12:44 am    Assunto: Responder com Citação

Tem, oras bolas!

Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Visitar a homepage do Usuário
imex
Moderador
Moderador


Registrado: Sexta-Feira, 7 de Janeiro de 2011
Mensagens: 11666

MensagemEnviada: Ter Fev 26, 2013 11:06 am    Assunto: Responder com Citação

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
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB