Фильтры

Фильтры предназначены для поиска  записей в таблицах по определенным условиям. Включение фильтра всегда уменьшает количество выводимых в таблице записей. То есть, при включенном фильтре будут показаны не все записи, а только записи удовлетворяющие условию фильтра. Следует иметь в виду, что в больших таблицах (тысячи записей) включение некоторых фильтров приводит к значительному "торможению" обновления таблицы, так как программа просматривает все записи для поиска удовлетворяющих условию фильтра.

Фильтры могут добавляться в программу самими пользователями по мере необходимости.

Для управления выбором и включением-выключением фильтра в таблице обычно имеются следующие органы управления:

Окно "Фильтры" показывает только фильтры, относящиеся к той таблице, из которой оно было вызвано. Следующая иллюстрация показывает окно "Фильтры", вызванного из таблицы "Люди" (People): 

- Кнопка выбора фильтра (горячие клавиши:<Enter> или двойной щелчок мышкой)

Добавление, изменение (просмотр) и удаление записей о фильтрах производится при помощи следующих кнопок, расположенных в левом верхней части окна:

- Добавить новую запись <Insert>
- Изменить (открыть) существующую запись <Ctrl+Enter>
- Удалить запись <Delete>
- Создать новую запись на основе существующей (копировать старую запись в новую)
- Кнопки для упорядочивания (перемещения) записей в списке фильтров.

Форма ввода записи о фильтре:

При помощи кнопки "Проверить выражение", расположенной в нижней части окна, можно проверить правильность выражения: отсутствие синтаксических ошибок.  Неправильное выражение (с ошибками) не будет действовать в качестве фильтра.

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

Таблица с наименованиями полей в левой части окна записи о фильтре предназначена для выбора и вставки в выражения фильтра полей таблицы базы данных. Вставка производится кнопкой "Выбрать", расположенной в верхней части окна.

При помощи ряда кнопок "Операторы" можно вставлять в выражение операторы языка.  

Кнопкой "Функции" вызывается окно "Выбор функции", где можно посмотреть краткое описание и выбрать функцию языка Clarion:

При помощи кнопки "Данные" можно вызвать окно "Описание таблиц", в котором также можно выбрать поле базы данных:

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


Примеры фильтров для таблицы "Люди"

1. Фильтр "Все "мс"
Выражение:  peo:Kval='мс'

В этом выражении проверяется поле "Квалификация"  таблицы "People" на равенство строковой константе "мс". Строковые константы должны быть заключены в одиночные кавычки (апострофы).


2. Фильтр "Спортсмены "мс" и "мсмк"
Выражение: peo:Gender='M' and peo:SManFlag and (peo:Kval='мс' or peo:Kval='мсмк')

Здесь одновременно должны быть выполнены (and) три условия: 
a) Поле "Пол" должно иметь значение "мужчина" - 'М'
б) Должен быть включен признак "Спортсмен" - peo:SManFlag
в) Поле "Квалификация" должно быть 'мс' или (or) 'мсмк'


3. Фильтр: "Спортсменки от 14 до 18 лет
Выражение: peo:Gender='D' and peo:SManFlag and (today()-peo:Birthday)/365 > 14 and (today()-peo:Birthday)/365 < 18 

Одновременно должно быть выполнено (and) четыре условия:
а) Поле "Пол" должно быть 'D
б) Должен быть включен признак "Спортсмен" - peo:SManFlag
в) Число лет ((today()-peo:Birthday)/365 должно быть больше 14
г) Число лет должно быть меньше 19

В этом выражении используется функция языка today(), возвращающая сегодняшнюю дату в днях, и поле таблицы peo:Birthday, в котором хранится дата рождения человека.

Фильтры можно писать самостоятельно, но в начале это не просто для "непрограммиста". Поэтому обращайтесь в службу поддержки ( support@pisoft.ru ). Мы всегда постараемся помочь Вам и напишем нужные фильтры по вашему заказу...