Свойство 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 - поиск производится на точное соответствие.