Показать сообщение отдельно
  #8  
Старый 13.10.2012, 10:44
DOR DOR вне форума
Начинающий
 
Регистрация: 14.01.2011
Сообщения: 171
Версия Delphi: 7
Репутация: 10
По умолчанию

На форумах нашел вот такой код
Код:
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;
Когда фильтрация происходит по полю (формат стринг) все хорошо, но если поле Дата или Логическое, соответственно не работает, кто нибудь сможет поправить код, что не зависеть от от формата поля.
Ответить с цитированием