Фильтрация по выражению

При использовании фильтрации по выражению набор данных ограничивается записями, удовлетворяющими выражению фильтра, задающему условия отбора записей.

Достоинством фильтрации по выражению состоит в том, что она применима к любым полям, в том числе к неиндексированным. Так как в процессе отбора просматриваются все записи таблицы, фильтрация по выражению эффективна при небольшом количестве записей.

Свойство Filter типаSrting компонента Table – задает выражение фильтра. В его состав могут входить элементы:

1) имена полей таблиц;

2) литералы – значение, заданное явно (число, строка или символ). В выражение фильтра включаются только выражения строкового типа.

3) операции сравнения (<, >, =, >=, <=, <>);

4) арифметические операции (+, -, *, /);

5) логические операции (and (логическое умножение), or (логическое сложение), not (логическое отрицание));

6) () и [ ] скобки.

Пример:

Tovar = 'Макароны'

Cena >=150 or Cena <= 500

Если имя поля содержит пробелы, то его заключают в [ ] (например, [Name Firma] = 'Слад&Ко'), в противном случае [ ] необязательны.

Нельзя использовать в выражении фильтра имена переменных. Если в выражение фильтра требуется включить значение переменной или свойство какого-нибудь компонента, то это значение должно быть преобразовано в строковый тип.

Для активизации и деактивизации фильтра используется свойство Filtered типа Boolean. Если Filtered=True, то фильтрация включается, и НД отбираются записи, которые удовлетворяют фильтру, записанному в свойстве Filter. Если Filtered=False (по умолчанию), то фильтрация выключена.

Свойство FilterOptions типа TFilterOptions задает параметры фильтрации. Может принимать комбинации двух значений:

§ foCaseInsensitive – регистр букв не учитывается, т. е. при задании фильтра Tovar='Хлеб' слова "Хлеб", "хЛеБ", "ХЛЕБ" или "хлеб" будут восприняты как одинаковые;

§ foNoPartialCompare – выполняется проверка на полное соответствие содержимого поля и значения, заданного для поиска. Обычно применяется для строк. Если известны только первые символы строки, то нужно указать их в выражении фильтра, заменив остальные символом «*» и выключив значение foNoPartialCompare. Например, при выключенном значении foNoPartialCompare для фильтра Tovar = 'C*' будут отобраны записи, у которых в поле Tovar содержатся значения "Сметана", "Сыр", "Сахар" или "Сельдь с/м".

Все параметры фильтра перечисляются в свойстве FilterOptions через «,» и заключаются в [ ]. По умолчанию все параметры фильтра выключены, т.е. свойство FilterOptions = [ ].


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: