Fórum Comparar data de vencimento e alterar status na exibição da DBgrid #537479
17/11/2015
0
Pessoal boa noite,
Sou iniciante e o pouco que sei foi seguindo tutorial do youtube. Estou com o seguinte problema.
Tenho uma tabela “cadastro”, dentro dessa tabela tenho algumas colunas, porem oque importa são duas colunas que são data de vencimento e Status.
Neste caso o Status é somente um campo que irá aparecer na DBgrid como consulta, o usuário não irá gravar nada nele.
Eu gostaria que quando quando a data de vencimento cadastrada pelo usuário fosse igual ou maior que a data do pc, quando o usuário fizer a pesquisa na dbgrid apareça na coluna Status “Inativo” e quando a data seja menor que a data do pc apareça “Ativo”.
Existe alguma maneira de fazer isso? Caso alguém tenha um exemplo de código onde eu deveria colocar esse código?
Sou iniciante e o pouco que sei foi seguindo tutorial do youtube. Estou com o seguinte problema.
Tenho uma tabela “cadastro”, dentro dessa tabela tenho algumas colunas, porem oque importa são duas colunas que são data de vencimento e Status.
Neste caso o Status é somente um campo que irá aparecer na DBgrid como consulta, o usuário não irá gravar nada nele.
Eu gostaria que quando quando a data de vencimento cadastrada pelo usuário fosse igual ou maior que a data do pc, quando o usuário fizer a pesquisa na dbgrid apareça na coluna Status “Inativo” e quando a data seja menor que a data do pc apareça “Ativo”.
Existe alguma maneira de fazer isso? Caso alguém tenha um exemplo de código onde eu deveria colocar esse código?
Ricardo
Curtir tópico
+ 0
Responder
Posts
18/11/2015
Mateus Ribeiro
Bom dia!
Bom, como esse campo "Status" não irá armazenar nada, aconselho vc a usar um campo calculado para somente exibição.
Vamos lá...
1° Dê dois clicks na query, depois botão direito e depois New Field.
2° Preencha o campo NAME com "STATUS", TYPE com "STRING", SIZE com 7, FIELD TYPE com CALCULATED e dê OK.
3° Vá no evento OnCaldField da sua query e faça o seguinte:
Espero que tenha entendido... boa sorte!
Bom, como esse campo "Status" não irá armazenar nada, aconselho vc a usar um campo calculado para somente exibição.
Vamos lá...
1° Dê dois clicks na query, depois botão direito e depois New Field.
2° Preencha o campo NAME com "STATUS", TYPE com "STRING", SIZE com 7, FIELD TYPE com CALCULATED e dê OK.
3° Vá no evento OnCaldField da sua query e faça o seguinte:
if (ADOQuery1.Fields.FieldByName('DATA_VENCIMENTO').AsDateTime >= Now) then // Compara se o campo DATA_VENCIMENTO é maior que a data do PC
ADOQuery1.Fields.FieldByName('STATUS').AsString:= 'INATIVO'
else
ADOQuery1.Fields.FieldByName('STATUS').AsString:= 'ATIVO';
Espero que tenha entendido... boa sorte!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)