Применение фильтров в программе
Фильтры позволяют отфильтровать в таблице или в отчете записи, удовлетворяющие определенным условиям. В программе имеется два вида фильтров:
1) В любом окне, содержащем какую либо таблицу, работает «Быстрый фильтр». При помощи «Быстрого фильтра» можно отфильтровать все записи, которые содержат заданную подстроку в любом из строковых полей таблицы. Вызывается «Быстрый фильтр» при помощи комбинации клавиш <Ctrl+Shift+F> (раскладка клавиатуры должны быть латинской). При этом появляется окно, в котором в поле «Искать» нужно ввести искомую подстроку и нажать кнопку [Включить фильтр]. После окончания поиска важно не забыть отключить фильтр: <Ctrl+Shift+F> и затем кнопка [Отключить].
2) Настраиваемый фильтр, который вызывается нажатием на кнопку [Фильтры], расположенную справа от поля «Фильтр» в верхней части окна. Эта кнопка открывает окно «ФИЛЬТРЫ» со списком заранее написанных фильтров, относящихся к данной таблице. Нажатие на кнопку [Выбрать] в окне «ФИЛЬТРЫ» включает выбранный фильтр. При этом название фильтра видно в поле «Фильтр» в верхней части окна (над таблицей). Если записей в таблице очень много, то после включения фильтра может быть достаточно долгий период ожидания - пока программа просмотрит все записи и отфильтрует из них записи, удовлетворяющие условию фильтра. Те же самые фильтры используются также и при печати различных отчетов и списков, что очень сильно повышает полезность отчетов.
Окно "ФИЛЬТРЫ" предназначено для редактирования и выбора фильтров, применяемых для поиска и ограничения диапазона видимых записей. Фильтры могут добавляться в программу самими пользователями по мере необходимости. Окно "ФИЛЬТРЫ" показывает только фильтры, относящиеся к той таблице, из которой оно было вызвано. (То есть, в разных таблицах фильтры разные).
Пример окна "ФИЛЬТРЫ" для таблицы "ЛЮДИ".
- Кнопка выбора фильтра
Добавление, изменение и удаление записей в таблице Фильтры производится при помощи следующих кнопок, расположенных в верхней части окна:
- Добавить новую запись о фильтре
- Изменить (открыть) существующую запись
- Удалить запись о фильтре
- Создать новую запись на основе существующей (копировать старую запись в новую)
- Кнопки для упорядочивания (перемещения) записей в списке фильтров.
Окно записи о фильтре:
Назначение полей и кнопок окна ФИЛЬТР:
- Таблица - Название таблицы, для которой будет применяться данный фильтр. Это поле заполняется автоматически и его изменить нельзя.
- Номер - Порядковый номер фильтра в списке
- Фильтр - Название фильтра, по которому он будет выбираться конечным пользователем
- Выражение - Выражение фильтра на языке Clarion. После вычисления выражение должно принимать значение "Истина" или "Ложь" (0). Если выражение принимает значение "Истина" (не равно нулю), то условие фильтра считается выполненным и запись будет показана в таблице или в отчете.
В выражениях можно применять операторы и функции языка Clarion. Приоритет логических операторов ("and", "or", "not") ниже чем у арифметических операторов ("+", "-", "*", "/"), причем у оператора "логическое ИЛИ" ("or") приоритет ниже чем у оператора "логическое И" ("and"). Если вы не уверены в каком порядке будут выполняться операторы, рекомендуем для явного задания порядка выполнения широко применять скобки "(" и ")".
Чтобы правильно писать фильтры нужно знать обозначения полей базы данных программы. Эти обозначения видны, если подвести курсор мышки к любому полю в окне программы. Например, в окне «СПОРТСМЕН» поле «Год рождения» имеет обозначение peo:Year.
Для написания фильтров нужно хотя бы немного знать язык Clarion (операторы, функции) и иметь "математический" склад мышления. Поэтому, часто пользователям программы трудно самостоятельно написать нужный фильтр. Если вам нужны какие-либо новые фильтры, то проще всего сделать их с нашей помощью. Для этого нужно как можно точнее сформулировать, что именно нужно от фильтра. При этом нужно иметь в виду, что фильтр можно сделать только на основе значений тех полей, которые есть в данной таблице (например в таблице "Люди"). Поэтому не любую задачу можно решить при помощи фильтров.
Список фильтров постоянно пополняется. (И вы можете самостоятельно добавлять нужные вам фильтры).
Вот некоторые полезные фильтры для таблицы "Спортсмены":
Название фильтра | Выражение фильтра |
Спортсмены "мс" и "мсмк" | peo:SManFlag and (peo:Kval='мс' or peo:Kval='мсмк') |
Все "мс" | peo:SManFlag and peo:Kval='мс' |
Девушки 8 лет | peo:Gender='D' and peo:SManFlag and (year(today()) - peo:Year) <= 8 |
Девушки 9-10 лет | peo:Gender='D' and peo:SManFlag and (year(today()) - peo:Year) >=9 and (year(today()) - peo:Year) <=10 |
Девушки 11-13 лет | peo:Gender='D' and peo:SManFlag and (year(today()) - peo:Year) >=11 and (year(today()) - peo:Year) <=13 |
Девушки 14-15 лет | peo:Gender='D' and peo:SManFlag and (year(today()) - peo:Year) >=14 and (year(today()) - peo:Year) <=15 |
Девушки 16-18 лет | peo:Gender='D' and peo:SManFlag and (year(today()) - peo:Year) >=16 and (year(today()) - peo:Year) <=18 |
Женщины (>18 лет) | peo:Gender='D' and peo:SManFlag and (year(today()) - peo:Year) >=19 |
Юноши 8 лет | peo:Gender='M' and peo:SManFlag and (year(today()) - peo:Year) <= 8 |
Юноши 9-10 лет | peo:Gender='M' and peo:SManFlag and (year(today()) - peo:Year) >=9 and (year(today()) - peo:Year) <=10 |
Юноши 11-13 лет | peo:Gender='M' and peo:SManFlag and (year(today()) - peo:Year) >=11 and (year(today()) - peo:Year) <=13 |
Юноши 14-15 лет | peo:Gender='M' and peo:SManFlag and (year(today()) - peo:Year) >=14 and (year(today()) - peo:Year) <=15 |
Юноши 16-18 лет | peo:Gender='M' and peo:SManFlag and (year(today()) - peo:Year) >=16 and (year(today()) - peo:Year) <=18 |
Мужчины (>18 лет) | peo:Gender='M' and peo:SManFlag and (year(today()) - peo:Year) >=19 |
Эстафетные команды | peo:RelayFlag |