Свойство Filtered
property Filtered: Boolean;
Свойство Filtered, установленное в True, инициирует фильтрацию, условие которой записано или в обработчике события OnFilterRecord, или содержится как строковое значение в свойстве Filter. Если установлены разные условия фильтрации и в событии OnFilterRecord, и в свойстве Filter, выполняются оба.
Например, если в НД одновременно установлены фильтры
Tablel.Filter = ' [Doljnost] = 'профессор''';
procedure TFormX.TablelFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := DataSet['UchStepen'] = 'дтн';
end;
то установка Tablel Filtered в True приведет к двум фильтрациям; в результирующем наборе данных будут показаны только записи, у которых поле Doljnost содержит значение 'профессор' и поле UchStepen содержит значение 'дтн'.
Установка Filtered^ False приведет к отмене фильтрации, условия которой указаны в событии OnFilterRecord или (и) свойстве Filter. При этом фильтрация,
наложенная на НД методом SetRange или ApplyRange и ему сопутствующими методами, не нарушается
Пример
Пусть ТБД "Сотрудники" подвергается фильтрацииprocedure TFormI.Table1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept := DataSet['UchStepen'] = 'доцент';
end;
и по нажатию кнопки "SetRange" показываются только записи, у которых табельный номер больше 150000
procedure TFormI.SetRangeClick(Sender: TObject) ;
begin
Tablel.SetRange ( [150000],[900000]) ;
end;
Нажатие клавиши "CancelRange" снимает фильтрацию по табельному номеру (рис 7 29 - 7 31)
procedure TFormI.CancelRangeClick(Sender: TOb^ect);
begin
Tablel.CancelRange;
end;
Последовательность установки фильтров произвольна - SetRange может применяться после Filtered = True, и наоборот
Отмена одного из этих условий фильтрации не приводит к отмене другого способа фильтрации (рис 7 32, 7 33)
или