Filter em IBQuery

24/07/2017

0

Amigos, estou achando dificuldades em usar a propriedade filter na IBQuery.

Vejam como estou trabalhando.

Ao clicar no calendario, executo esse select, para trazer todo que tenho marcado no dia

  for X := 1 to 16 do
  begin
    HoraIni := IncMinute(HoraIni, 45);
    //Contando os registros pra colorir o grid horarios
    with frmdm.qrAgenda do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT * FROM AGENDA');
      SQL.Add('WHERE HORA = :H AND DATA = :D');
      ParamByName('H').AsTime := HoraIni;
      ParamByName('D').AsDate := Calendario.Date;
      Open;
      FetchAll;
    end;

    cdsHorarios.Append;
    cdsHorarios.FieldByName('HORA').AsDateTime := HoraIni;
    cdsHorarios.FieldByName('QTDE').AsInteger  := frmdm.qrAgenda.RecordCount; // Criei este campo para pintar o grid
    cdsHorarios.Post;

    if HoraIni = StrToTime('11:45') then
       HoraIni := IncMinute(HoraIni, 60);
  end;


Esse código carrega um clientdataset com todos horarios do dia e já puxa quantos horarios tenho marcados.

Agora, preciso de um filter para mostrar no, evento de click, os agendamentos que tenho naquele horario.
Executar um select no banco não é uma opção, pois já tenho os dados do dia em memória...
Testei assim, mas nada acontece

  frmdm.qrAgenda.Filtered := false;
  frmdm.qrAgenda.Filter := 'Hora = ''' + TimeToStr(cdsHorariosHORA.AsDateTime) + '''';
  frmdm.qrAgenda.Filtered := true;
Renan

Renan

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar