Фильтрация по выражению
При использовании фильтрации по выражению набор данных ограничивается записями, удовлетворяющими выражению фильтра, задающему условия отбора записей.
Достоинством фильтрации по выражению состоит в том, что она применима к любым полям, в том числе к неиндексированным. Так как в процессе отбора просматриваются все записи таблицы, фильтрация по выражению эффективна при небольшом количестве записей.
Свойство 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 = [ ].
Дата добавления: 2015-05-16; просмотров: 714;