Статьи Королевства Дельфи

       

Свойство Filter


Свойство Filter компонента TTable позволяет задать критерий фильтрации. В этом случае база будет отфильтрована, как только свойство Filtered будет равно TRUE. Синтаксис описания критерия похож на синтаксис секции WHERE SQL-запроса с тем исключением, что имена переменных программы указывать нельзя, можно указывать имена полей и литералы (явно заданные значения); можно использовать обычные операции отношения и логические операторы AND, NOT и OR, например:

Эта запись фильтра оставит в таблице записи, в которых поля Doljnost='доцент' и TabNum больше 3000

Filter:=([Doljnost]='доцент') and ([TabNum] > 3000);
Filtered:=True;

Строку критерия фильтрации можно ввести во время прогона программы или на этапе конструирования. Например, с помощью такого обработчика события OnChecked компонента CheckBox1 критерий фильтрации считывается из поля Edit1 и помещается в свойство Filter компонента Table1:

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
Table1.Filter := Edit1.Text;
Table1.Filtered := CheckBox1.Checked;
end;

С помощью свойства



type TFilterOption = (foCaseInsensitive, foNoPartialCompare);
property FilterOptions: TFilterOptions;

можно определить дополнительные свойства фильтрации строковых полей:
foCaseInsensitive - фильтрация производится без учетра разницы регистра
foNoPartialCompare - поиск производится на точное соответствие.



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