Вот как у меня в одном месте программы сделана фильтрация по датам. Это фрагмент кода, использующий свойство Filter датасета:
Код:
if ((chbDate1.Checked) or (chbDate2.Checked)) then
begin
s := '';
da1 := DateToStr(dtp1.Date);
da2 := DateToStr(dtp2.Date);
if chbDate1.Checked then
begin
if chbDate2.Checked then
begin
s := '((Data_dok >= "' + da1 + '") AND (Data_dok <= "' + da2 + '"))';
end
else
begin
s := 'Data_dok >= "' + da1 + '"';
end;
end
else
begin
if chbDate2.Checked then
begin
s := 'Data_dok <= "' + da2 + '"';
end;
end;
В "s" формируется строка для фильтра по датам, затем следует
Код:
fq.Filter := s;
fq.Filtered := true;
(где fq - фильтруемый датасет). Разъяснения, что есть что - на прикреплённом скриншоте.