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 

Campo Calculated em uma TFDQuery (FireDAC)

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Banco de Dados
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
joseberto
Novato
Novato


Registrado: Quinta-Feira, 12 de Outubro de 2017
Mensagens: 23

MensagemEnviada: Sáb Dez 09, 2017 2:17 pm    Assunto: Campo Calculated em uma TFDQuery (FireDAC) Responder com Citação

Pessoal estou tentando criar um campo Status que informara que o registro esta ON ou OFF pois o campo no banco é 0 = OFF e 1 = ON
mais quando tento criar o campo tipo calculado na FDQuery da varios erros
mesmo tentando direto ou por código não consigo!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
lokasso
Aprendiz
Aprendiz


Registrado: Terça-Feira, 11 de Abril de 2017
Mensagens: 174

MensagemEnviada: Sáb Dez 09, 2017 4:56 pm    Assunto: Responder com Citação

Cara, pelo que entendi você já tem esse campo no banco certo?

O campo do tipo calculado não seria uma boa ideia nesse caso, pois o valor já está armazenado e você apenas quer que ele te informe em string.

A onde você quer o retorno dessa informação?

Label, Edit, Grid ou imagem ou o que?

Abraços
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joseberto
Novato
Novato


Registrado: Quinta-Feira, 12 de Outubro de 2017
Mensagens: 23

MensagemEnviada: Sáb Dez 09, 2017 11:31 pm    Assunto: Responder com Citação

Já, já tenho esse campo no banco sim!

O campo do tipo calculado não seria uma boa ideia nesse caso, pois o valor já está armazenado e você apenas quer que ele te informe em string

NESSE CASO NÃO: Eu quero o seguinte, tenho um campo fl_status tipo Integer, que recebe 0 ou 1, quando for 0 e pq esta "OFF" e 1 = "ON" mais quero colocar no sistema como um campo criado Rum time (calculated) para caso seja um ele apareça ON ou OFF so isso!

A onde você quer o retorno dessa informação?
Retorne em uma TFDQuery. em uma DBGrid


lokasso escreveu:
Cara, pelo que entendi você já tem esse campo no banco certo?

O campo do tipo calculado não seria uma boa ideia nesse caso, pois o valor já está armazenado e você apenas quer que ele te informe em string.

A onde você quer o retorno dessa informação?

Label, Edit, Grid ou imagem ou o que?

Abraços
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
lokasso
Aprendiz
Aprendiz


Registrado: Terça-Feira, 11 de Abril de 2017
Mensagens: 174

MensagemEnviada: Dom Dez 10, 2017 2:31 am    Assunto: Responder com Citação

joseberto nesse caso sugiro que use os eventos OnGetText e OnSetText do Field Status

Ex:
Código:
procedure TDM_Principal.FDQ_LeitorSEXOGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  if FDQ_LeitorSexo.AsString = 'F' then
    begin
      Text:= 'FEMININO';
    end
  else
    begin
      Text:= 'MASCULINO';
    end;
end;

procedure TDM_Principal.FDQ_LeitorSEXOSetText(Sender: TField;
  const Text: string);
begin
  if Text = 'FEMININO' then
    begin
      FDQ_LeitorSexo.AsString:= 'F';
    end
  else
    begin
      FDQ_LeitorSexo.AsString:= 'M';
    end;
end;



Algumas mudanças que precisará fazer:

Na onde está AsString, mude AsInteger

Na onde esta Feminino, mude para ON

Na onde esta Masculino, mude para OFF

Na onde esta F, mude para 1

Na onde esta M, mude para 0

Ai converta você terá que converter AsInteger para AsString


Espero que ajude


Abraços
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joseberto
Novato
Novato


Registrado: Quinta-Feira, 12 de Outubro de 2017
Mensagens: 23

MensagemEnviada: Dom Dez 10, 2017 9:54 am    Assunto: Responder com Citação

GOSTEI MESMO! PARABENS!

Mais qual a diferença do GetText para o SetText??
testei e nao funcionou, deu esse erro:
Citação:
QryPEsquisa: List index out of bounds(5)


lokasso escreveu:
joseberto nesse caso sugiro que use os eventos OnGetText e OnSetText do Field Status

Ex:
Código:
procedure TDM_Principal.FDQ_LeitorSEXOGetText(Sender: TField; var Text: string;
  DisplayText: Boolean);
begin
  if FDQ_LeitorSexo.AsString = 'F' then
    begin
      Text:= 'FEMININO';
    end
  else
    begin
      Text:= 'MASCULINO';
    end;
end;

procedure TDM_Principal.FDQ_LeitorSEXOSetText(Sender: TField;
  const Text: string);
begin
  if Text = 'FEMININO' then
    begin
      FDQ_LeitorSexo.AsString:= 'F';
    end
  else
    begin
      FDQ_LeitorSexo.AsString:= 'M';
    end;
end;



Espero que ajude


Abraços
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joseberto
Novato
Novato


Registrado: Quinta-Feira, 12 de Outubro de 2017
Mensagens: 23

MensagemEnviada: Dom Dez 10, 2017 11:04 am    Assunto: Responder com Citação

Eu criei o campo na TFDQuery diretamente como Calculated
mais nao funcionou da esse erro ai
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
lokasso
Aprendiz
Aprendiz


Registrado: Terça-Feira, 11 de Abril de 2017
Mensagens: 174

MensagemEnviada: Dom Dez 10, 2017 4:44 pm    Assunto: Responder com Citação

Cara, não cria o campo calculated, utilize o qual você já puxa do banco, não é preciso criar nada, se não conseguir, te mando um exemplo

O Get pelo que entendi ele vai ler em tempo de execução, já o Set vai gravar em memoria.

Mas caso, não de certo, um conselho que dou é mudar o campo status de integer para char, ai você consegue manipular strings sem precisar converter

Ah e mais uma coisa, não é apenas em grid que aparece, por exemplo Masculino e Feminino, até em combobox aparece o que você digitar ali


Abraços
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joseberto
Novato
Novato


Registrado: Quinta-Feira, 12 de Outubro de 2017
Mensagens: 23

MensagemEnviada: Dom Dez 10, 2017 10:23 pm    Assunto: Responder com Citação

É não entendi, se puder mandar um exemplo

Obrigado!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
lokasso
Aprendiz
Aprendiz


Registrado: Terça-Feira, 11 de Abril de 2017
Mensagens: 174

MensagemEnviada: Seg Dez 11, 2017 3:46 pm    Assunto: Responder com Citação

joseberto escreveu:
É não entendi, se puder mandar um exemplo

Obrigado!


irei te mandar um exemplo

Abraços
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 -> Banco de Dados 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