На форумах нашел вот такой код
Код:
procedure Tf_Main.Grid_MainApplyFilter(Sender: TObject);
var
s: string;
cond: variant;
i: integer;
begin
cond := '';
s := '';
Datamodule1.T_Dogovor_View.filtered:=false;
with TDBGridEh(Sender) do begin
if (not DataSource.DataSet.Active) or (DataSource.DataSet.RecordCount = 0) then exit;
for i := 0 to TDBGridEh(Sender).Columns.Count - 1 do
begin
cond := TDBGridEh(Sender).Columns[i].STFilter.ExpressionStr;
if cond <> '' then begin
s := s + '['+TDBGridEh(Sender).Columns[i].FieldName + '] LIKE ''%'+ cond + '%'' AND ';
end;
end; Delete(s, Length(s) - 3, 4);
Datamodule1.T_Dogovor_View.Filter := s;
end;
Datamodule1.T_Dogovor_View.filtered:=true;
end;
Когда фильтрация происходит по полю (формат стринг) все хорошо, но если поле Дата или Логическое, соответственно не работает, кто нибудь сможет поправить код, что не зависеть от от формата поля.