Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ajuda Delphi 10 seatle + firebird 2.5 filtro entre datas com componente tdatetimerpicker


tsingas

Pergunta

Bom dia pessoal preciso de ajuda tenho no dbgrid os dados que preciso fitrar da tabela clientes campo data obs uso componentes do firedac para conecxao dataset query etc

segue a parte que parei no codico :

 


 

procedure TFormFiltroClientes.Filtrar;
begin
fdQryFiltro.Close;
 fdQryFiltro.SQL.Clear;
 fdQryFiltro.sql.Add('Select * from clientes join  grupo on grupo.id_grupo = clientes.id_grupo  join  subgrupo on subgrupo.id_subgrupo = clientes.id_subgrupo join  fpagamento on fpagamento.id_fpagamento = clientes.id_fpagamento join  conta on conta.id_conta = clientes.id_conta');
 fdQryFiltro.SQL.Add(' WHERE 1=1 ');


If edtData2.Date < edtData1.Date Then
begin    ShowMessage('Intervalo de datas inválido, a data inicial é maior que a data final!');

end;





//edtData 1 e edtData2 são os componentes tdatetimerpicker
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Tente isso

 fdQryFiltro.Close;
 fdQryFiltro.SQL.Clear;
 fdQryFiltro.sql.Add('Select * from clientes join
 grupo on grupo.id_grupo = clientes.id_grupo join
 subgrupo on subgrupo.id_subgrupo = clientes.id_subgrupo join
 fpagamento on fpagamento.id_fpagamento = clientes.id_fpagamento join
 conta on conta.id_conta = clientes.id_conta');

 fdQryFiltro.SQL.Add('WHERE (DATA >= '''+edtData1.Date+''' AND
 DATA <= '''+edtData2.Date+''' and 1=1 ');

 If edtData2.Date < edtData1.Date Then
    ShowMessage('Intervalo de datas inválido, a data inicial é maior que a data final!');

Obs: Coloque as datas no formato string no filtro

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Em 23/11/2019 em 11:41, Jhonas disse:

Tente isso


 fdQryFiltro.Close;
 fdQryFiltro.SQL.Clear;
 fdQryFiltro.sql.Add('Select * from clientes join
 grupo on grupo.id_grupo = clientes.id_grupo join
 subgrupo on subgrupo.id_subgrupo = clientes.id_subgrupo join
 fpagamento on fpagamento.id_fpagamento = clientes.id_fpagamento join
 conta on conta.id_conta = clientes.id_conta');

 fdQryFiltro.SQL.Add('WHERE (DATA >= '''+edtData1.Date+''' AND
 DATA <= '''+edtData2.Date+''' and 1=1 ');

 If edtData2.Date < edtData1.Date Then
    ShowMessage('Intervalo de datas inválido, a data inicial é maior que a data final!');

Obs: Coloque as datas no formato string no filtro

abraço

Muito obrigado jhonas vou testar e posto aqui

Link para o comentário
Compartilhar em outros sites

  • 0

Boa tarde Consegui resolver assim

 

 

procedure TFormFiltroClientes.Filtrar2;
begin
fdQryFiltro.Close;
 fdQryFiltro.SQL.Clear;
 fdQryFiltro.sql.Add('Select * from clientes join  grupo on grupo.id_grupo = clientes.id_grupo  join  subgrupo on subgrupo.id_subgrupo = clientes.id_subgrupo join  fpagamento on fpagamento.id_fpagamento = clientes.id_fpagamento join  conta on conta.id_conta = clientes.id_conta');
 fdQryFiltro.SQL.Add(' WHERE 1=1 ');
 if cbGrupo.Checked then begin
   fdQryFiltro.SQL.Add(' AND UPPER(TRIM(GRUPO)) LIKE ' + QuotedStr('%' + UpperCase(Trim(edtFiltro.Text)) + '%' ) );
 end;


 if edtDate1.Date >0 then   begin
  fdQryFiltro.SQL.Add(' AND DATA >= ' + QuotedStr(FormatDateTime('DD.MM.YYYY',edtDate1.DATE)));

 end;


 if edtDate2.Date >0 then   begin
  fdQryFiltro.SQL.Add(' AND DATA <= ' + QuotedStr(FormatDateTime('DD.MM.YYYY',edtDate2.DATE)));

 end;

 fdQryFiltro.Open();
 fdQryFiltro.FetchAll;


end;

 

Muito obrigado pelo apoio Jhonas.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...