BDGrid listar somente registros da data atual
Me perdoem galera por ainda ter tópicos meus abertos....mas me apareceu uma dúvida agorinha.
Como faço para um DBGrid listar somentes registros cadastrados na data atual?
Como faço para um DBGrid listar somentes registros cadastrados na data atual?
Carlos Magno
Curtidas 0
Respostas
Joel Rodrigues
27/07/2012
Você deverá fazer a consulta no banco de dados, resgatando apenas os registros desejados. Que banco você está usando?
GOSTEI 0
Carlos Magno
27/07/2012
Estou usando paradox
GOSTEI 0
Joel Rodrigues
27/07/2012
Cara, tenta alterar a propriedade FILTER da tabela, por exemplo, CAMPO = ´data´
GOSTEI 0
Benilton
27/07/2012
Estou usando paradox
Meu amigo não perda tempo, tenta migrar para o firebird...
GOSTEI 0
Carlos Magno
27/07/2012
Eu poderia migrar para o firebird, mas programa inicial não foi feito por mime esta todo em paradox. Só estou fazendo uma implementação.
GOSTEI 0
William
27/07/2012
Como Joel mencionou tente filtrar assim:
Date traz a data atual do sistema.
clientdataset.filter := data = + QuotedStr(DateToStr(date));
Date traz a data atual do sistema.
GOSTEI 0
Carlos Magno
27/07/2012
Rsrsrsrsr....onde que eu coloco esse código, William?
GOSTEI 0
William
27/07/2012
Bom depende de qual evento vc vai disparar o filtro, se for a partir de um button ou quando o usuário abrir o form:
FormCreate quando o sistema carrega o forma da consulta
ButtonClick quando o usuário clica no botão.
Nesse caso o dataset é um ClientDataSet....
FormCreate quando o sistema carrega o forma da consulta
ButtonClick quando o usuário clica no botão.
clientdataeset.filtered := false; clientdataset.filter := data = + QuotedStr(DateToStr(date)); clientdateset.filtered := true;
Nesse caso o dataset é um ClientDataSet....
GOSTEI 0
Carlos Magno
27/07/2012
Deu um erro aqui: Operator not applicable to this operand type;
Alterei da seguinte forma...so não sei se esta correto:
Alterei da seguinte forma...so não sei se esta correto:
procedure Tfrm_servlist.FormCreate(Sender: TObject); begin dm01.tbl_servico.Filtered := false; dm01.tbl_servico.Filter := OS_DATAIN = + QuotedStr(DateToStr(date)); dm01.tbl_servico.Filtered := true; end;
GOSTEI 0
Romulo Contro
27/07/2012
tenta colocar datetimetostr...
ou ainda assim, vc pode tentar dar um formatdatetime
aí ficaria mais ou menos assim:
dm01.tbl_servico.Filter := QuotedStr(FormatDateTime(yyyy-mm-dd,now()))
ou entao
dm01.tbl_servico.Filter := QuotedStr(FormatDateTime(yyyy-mm-dd,date))
ou ainda assim, vc pode tentar dar um formatdatetime
aí ficaria mais ou menos assim:
dm01.tbl_servico.Filter := QuotedStr(FormatDateTime(yyyy-mm-dd,now()))
ou entao
dm01.tbl_servico.Filter := QuotedStr(FormatDateTime(yyyy-mm-dd,date))
GOSTEI 0
Carlos Magno
27/07/2012
Ta dando um erro na compilação...Project raised exception class EDatabaseError with message Incorrectly formed filter expression. Process stopped.
GOSTEI 0
Romulo Contro
27/07/2012
vc tem que colocar o yyyy-mm-dd entre aspas... deve ser isso
GOSTEI 0
Romulo Contro
27/07/2012
e faltou também o campo... OS_DATAIN = +
GOSTEI 0
Carlos Magno
27/07/2012
Agora o erro é Operator not applicable to this operand type.
GOSTEI 0
William
27/07/2012
Carlos seu campo é do tipo Date no banco de dados?
Esse código eu testei filtrando um campo do tipo date no Firebird.
Esse código eu testei filtrando um campo do tipo date no Firebird.
GOSTEI 0
Carlos Magno
27/07/2012
Isso mesmo William.....eu coloquei o campo para ser Date na tabela. Pode ser q eu esteja errando em alguma coisa.
GOSTEI 0
Carlos Magno
27/07/2012
Atenção galera....consegui resolver esse probleminha. Obrigado as todos os que deram suas contribuições. Resolvi da forma como o William havia me passado, só estava errando nas aspas. Um moderador por favor marque este como resolvido.
Aliás, como se marca um tópico como resolvido?
Aliás, como se marca um tópico como resolvido?
GOSTEI 0
William
27/07/2012
Carlos vou conversar com Administrador Wesley e ver se tem como melhorar essa questão das aspas, eu respondi com mais gravou sem aspas.
Que bom q deu certo!!
Que bom q deu certo!!
GOSTEI 0
Marco Antônio
27/07/2012
só confirmando, a propriedade FILTER recebe string, logo:
procedure Tfrm_servlist.FormCreate(Sender: TObject);
begin
dm01.tbl_servico.Filtered := false;
// dm01.tbl_servico.Filter := OS_DATAIN = + QuotedStr(DateToStr(date)); // errado
dm01.tbl_servico.Filter := ' OS_DATAIN = ' + QuotedStr(DateToStr(date)); // corrigido
dm01.tbl_servico.Filtered := true;
end
procedure Tfrm_servlist.FormCreate(Sender: TObject);
begin
dm01.tbl_servico.Filtered := false;
// dm01.tbl_servico.Filter := OS_DATAIN = + QuotedStr(DateToStr(date)); // errado
dm01.tbl_servico.Filter := ' OS_DATAIN = ' + QuotedStr(DateToStr(date)); // corrigido
dm01.tbl_servico.Filtered := true;
end
GOSTEI 0