166
Параметры фильтрации можно задать с помощью свойств FilterOptions
типа TFilterOptions. Это свойство принадлежит к множественному типу и мо-
жет принимать комбинации двух значений:
- foCaseIntensitive – регистр букв не учитывается. Например, при нали-
чии этого значения для выражения фильтра Avtom='Автомат' в поле Avtom, на-
пример, могут содержаться слова «Автомат», «АВТОМАТ» или «автомат», ко-
торые
будут восприняты как одинаковые.
- foNoPartialCompare – выполняется проверка на полное соответствие
содержимого поля и значения, заданного для поиска. Обычно применяется для
строк. Если известны только первые символы или символ строки, то нужно ука-
зать их в выражении фильтра, заменив остальные символы символом «*» и вы-
ключив значение FoNoPartialCompare.
По умолчанию все
фильтры выключены, и свойство FilterOptions имеет
значение, равное «[ ]».
10.1.4.2 Фильтрация по диапазону
При фильтрации по диапазону в набор данных будут включены те записи,
значение полей которых соответствуют заданному диапазону. Таким образом,
условием фильтрации является выражение вида «значение > нижней границы
AND значение < верхней границы», в котором вместо операций сравнения <
и > могут указываться операции <= и >=. Такая фильтрация применяется к на-
борам данных Table.
Достоинством фильтрации
по диапазону является высокая скорость обра-
ботки записей. В отличие от фильтрации по выражению, когда последовательно
просматриваются все записи таблицы, фильтрация по диапазону ведётся ин-
дексно-последовательным методом, поэтому этот способ фильтрации приме-
ним только для индексированных полей. Индекс поля, диапазон которого задан
в качестве критерия для отбора записей, должен быть
установлен как текущий с
помощью свойства IndexName или IndexFieldNames.
В лабораторной работе индексированные поля не создавались, поэтому
фильтрация по диапазону более подробно рассматриваться не будет.
10.1.4.3 Пример создания фильтрации по выражению
Рассмотрим в качестве примера обработчики событий формы, исполь-
зующей фильтрацию записей набора данных по выражению. Вид формы приве-
дён
на рисунке 10.9.
Для задания выражений фильтра используются редакторы Edit. Компо-
нент Edit2 предназначен для задания выражения при фильтрации по подгруппе
станка, компоненты Edit3 и Edit4 задают соответственно минимальную и мак-
симальную границу значения поля «Максимальный диаметр заготовки».
На форму помещаются две кнопки Button. При нажатии кнопки Button11
с заголовком «Фильтровать»
фильтр активизируется путём присваивания зна-
чения True свойству Filtered набора данных. При активизации фильтра проис-