BDGrid listar somente registros da data atual

Delphi

27/07/2012

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?
Carlos Magno

Carlos Magno

Curtidas 0

Respostas

Joel Rodrigues

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

Carlos Magno

27/07/2012

Estou usando paradox
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

27/07/2012

Cara, tenta alterar a propriedade FILTER da tabela, por exemplo, CAMPO = ´data´
GOSTEI 0
Benilton

Benilton

27/07/2012

Estou usando paradox


Meu amigo não perda tempo, tenta migrar para o firebird...
GOSTEI 0
Carlos Magno

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

William

27/07/2012

Como Joel mencionou tente filtrar assim:

clientdataset.filter := data =  + QuotedStr(DateToStr(date));


Date traz a data atual do sistema.
GOSTEI 0
Carlos Magno

Carlos Magno

27/07/2012

Rsrsrsrsr....onde que eu coloco esse código, William?
GOSTEI 0
William

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.

clientdataeset.filtered := false;
clientdataset.filter := data = + QuotedStr(DateToStr(date));
clientdateset.filtered := true;


Nesse caso o dataset é um ClientDataSet....
GOSTEI 0
Carlos Magno

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:

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

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))
GOSTEI 0
Carlos Magno

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

Romulo Contro

27/07/2012

vc tem que colocar o yyyy-mm-dd entre aspas... deve ser isso
GOSTEI 0
Romulo Contro

Romulo Contro

27/07/2012

e faltou também o campo... OS_DATAIN = +
GOSTEI 0
Carlos Magno

Carlos Magno

27/07/2012

Agora o erro é Operator not applicable to this operand type.
GOSTEI 0
William

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.
GOSTEI 0
Carlos Magno

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

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?
GOSTEI 0
William

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!!
GOSTEI 0
Marco Antônio

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
GOSTEI 0
POSTAR