Delphi 3 и создание приложений баз данных

       

Свойство 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)

или



Содержание раздела