Написал процедуру фильтрации данных в DBGridEh для компонентов AnyDAC.
В конце unit'a написал
DBGridEhDefaultStyle.FilterEditCloseUpApplyFilter := True;
Но сортировка всё равно происходит только после нажатия Enter.
Код:
procedure TFormMain.DBGridEhPurchaseApplyFilter(Sender: TObject);
var s : string;
cond:string;
i:integer;
begin
cond:='';
s:='';
TADDataSet(TDBGridEh(Sender).DataSource.DataSet).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);
TADDataSet(DataSource.DataSet).Filter:=s;
end; //with
TADDataSet(TDBGridEh(Sender).DataSource.DataSet).filtered:=true;
end;
initialization
DBGridEhDefaultStyle.FilterEditCloseUpApplyFilter:=true;
Версия EhLib 3.6