Фильтры

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

1) В любом окне, содержащем какую либо таблицу, работает «Быстрый фильтр». При помощи «Быстрого фильтра» можно отфильтровать все записи, которые содержат заданную подстроку в любом из строковых полей таблицы. Вызывается «Быстрый фильтр» при  помощи комбинации клавиш <Ctrl+Shift+F> (раскладка клавиатуры должны быть латинской). При этом появляется окно, в котором в поле «Искать» нужно ввести искомую подстроку и нажать кнопку [Включить фильтр].  После окончания поиска важно не забыть отключить фильтр: <Ctrl+Shift+F> и затем кнопка [Отключить].

Окно "Быстрого фильтра"

2) Настраиваемый фильтр, который вызывается нажатием на кнопку [Выбрать фильтр], расположенную справа от поля «Фильтр» в верхней части окна. После нажатия этой кнопки появляется окно «Фильтры» со списком заранее написанных фильтров, относящихся к данной таблице (окну). Нажатие на кнопку [Выбрать] в окне «Фильтры» включает выбранный фильтр и при этом название фильтра видно в поле «Фильтр» в верхней части окна. Если записей в таблице очень много, то сразу после включения фильтра может быть достаточно долгий период ожидания - пока программа просмотрит все записи и отфильтрует из них записи, удовлетворяющие условию фильтра.

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

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

- Кнопка выбора фильтра

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

- Добавить новую запись о фильтре
- Изменить (открыть) существующую запись
- Удалить запись
- Создать новую запись на основе существующей (копировать старую запись в новую)
- Кнопки для упорядочивания (перемещения) записей в списке фильтров.
- Экспорт списка фильтров в таблицу Excel (в том виде, в каком он виден в данный момент в таблице - c учетом всех фильтров и других ограничений)

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

Для облегчения написания выражений фильтров в центре окна имеется ряд кнопок для выбора и вставки в выражение операторов, функций и полей файлов базы данных. При помощи кнопки [Данные] можно вызвать окно "Описание таблиц", в котором можно выбрать поле базы данных. Другой вариант: можно выбрать поле из таблицы со списком полей, расположенной в правой части окна, при помощи кнопки [Выбрать].

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

Операторы языка можно вставлять в выражение фильтра "вручную" либо при помощи кнопок группы "Операторы", расположенных в окне "Фильтр" над полем выражения фильтра. Приоритет логических операторов ("and", "or", "not") ниже чем у арифметических операторов ("+", "-", "*", "/"), причем у оператора "логическое ИЛИ" ("or") приоритет ниже чем у оператора "логическое И" ("and"). Если вы не уверены в каком порядке будут выполняться операторы, рекомендуем для явного задания порядка выполнения широко применять скобки "(" и ")".

Чтобы правильно писать фильтры нужно знать обозначения полей базы данных программы. Эти обозначения видны, если подвести курсор мышки к любому полю в окнах программы. Например, в окне «Заказ» поле «Дата подачи» имеет обозначение zak:DateZak. Также нужно хотя бы немного знать язык (операторы, функции) и иметь "математический" склад мышления. Поэтому пользователям программы самостоятельно писать фильтры трудно... Если вам нужны какие-либо новые фильтры, то проще всего сделать их с нашей помощью. Для этого нужно как можно точнее сформулировать что именно требуется от фильтра. При этом нужно иметь в виду, что фильтр можно сделать ТОЛЬКО на основе значений тех полей, которые есть в данной таблице (Заказы, Платежи, Клиенты, Автомобили и т.п.). Поэтому далеко не любую задачу можно решить при помощи фильтров.

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

Фильтры для окна «Заказы»:

1. Без предварительных заказов: ~zak:PredvFlag
2. Только предварительные заказы: zak:PredvFlag
3. Только организации: zak:OrgFlag
4. Оплата Наличными: zak:PlatType='Наличные'
5. Оплата Безнал.: zak:PlatType='Безнал'
6. Оплата Карточкой: zak:PlatType='Карточка'
7. Успешно завершенные заказы: zak:ZCompID=2
8. Не успешно завершенные: zak:ZCompID>2
9.  Не завершенные заказы: zak:ZCompID<2
10. Состояние заказа «Выехал»: zak:ZState=2
11. Состояние заказа «Ждет»: zak:ZState=3
12. Состояние «Сообщили клиенту»: zak:ZState=6
13. Состояние «В пути»: zak:ZState=4
14. Тип заказа «Такси»: zak:ZType='Такси'
15. Тип заказа «Доставка»: zak:ZType='Доставка '
16. Вид рекламы «Интернет»: zak:ReclamID=2
(здесь «2» - это код вида рекламы в справочнике «Виды рекламы»)
17. Сумма "Оплачено" равна 0: zak:Sum=0
18. Сумма "Оплачено" больше 1000: zak:Sum>=1000
19. Сумма "Оплачено" не равна расчетной суме: zak:SumCalc<>zak:Sum
20. Вид завершения «Не оплачен»: zak:ZCompID=3
(здесь «3» - это код вида завершения в справочнике «Виды завершения заказа»)
21. Эконом класс: zak:CarClassNum=1
(здесь «1» - это номер класса в справочнике «Классы автомобилей»)
22. Бизнес класс: zak:CarClassNum=2
23. Время поездки от 1 до 2-х часов: zak:TimeCalc>=360000 and zak:TimeCalc<2*360000
24. Закрытые, но без водителя: zak:ZState=5 and zak:DriverID=0
25. Водители категории № 2: dri:CategID=2 and zak:DriverID<>0

Фильтры для окна «Клиенты»:

1. Организации: cli:OrgFlag
2. Больше 2-х поездок: cli:QuantZakaz>2
3. От 2-х до 5-и поездок: cli:QuantZakaz>=2 and cli:QuantZakaz<=5
4. Тарифный план = 2: cli:PlanID=2
5. Слово «Приз» в поле «Примечание»: instring('приз', lower(cli:Note),1,1)>0
6. Баланс меньше минимального: cli:BalSum<cli:MinBalans
7. Черный список: сli:BlackListFlag
8. Проблемные: cli:ProblemFlag
9. Категория 1: cli:CliStatID=1
(здесь «1» - это код категории в справочнике «Категории клиентов»)
10. Клиенты, которым нужно дать скидку 5 процентов:
cli:QuantZakaz>=10 and cli:QuantZakaz<20 and cli:Skidka<5
11. Клиенты, которым нужно дать скидку 10 процентов:
cli:QuantZakaz>=20 and cli:QuantZakaz<30 and cli:Skidka<10
12. Клиенты, которым нужно дать скидку 15 процентов:
cli:QuantZakaz>=30 and cli:Skidka<15
13. День рожденья в ближайшие 7 дней:
date(month(cli:RogDate),day(cli:RogDate),year(today()))>=today() and date(month(cli:RogDate),day(cli:RogDate),year(today()))<today()+7

Фильтры для окна «Водители»:

1. Автомобили ГАЗ: instring( 'ГАЗ', upper(dri:Model), 1,1 )<>0
2. Имеющие задолженность: dri:BalansSum<dri:MinBalans
3. Эконом класс: car:CarClassNum=1
(здесь «1» - это номер класса в справочнике «Классы автомобилей»)
4. Штатные (категория № 1): dri:DrCategID=1
(здесь «1» - это номер категории «Штатные» в справочнике «Категории водителей»)
5. Признак «Флаг»: dri:FictFlag
6. C незакрытыми заказами: dri:ZakCountNC>0
7. Состояние «Свободен»: dri:DrState=’Свободен’
8. Состояние «Занят»: dri:DrState=’Занят’
9. Заблокирован: dri:BlockedFlag
10. Уволен: dri:DateOut >100

Фильтры для окна «Автомобили»:

1. Не указан цвет: car:Color = ''
2. Пробег меньше 5000 км: car:Probeg < 5000
3. Пробег от 5000 до 10000 км: car:Probeg>=5000 and car:Probeg<10000
4. Cписанные: car:CarState='Списан'
5.  Не списанные: car:CarState<>'Списан'
6. Неисправные (состояние «Ремонт»): car:CarState='Ремонт'
7. На объекте № 1: car:StoreID=1
8. Принадлежит фирме № 1: car:FirmID=1
9. До окончания срока ОСАГО меньше 14 дней:
car:EDateOSAGO<>0 and car:EDateOSAGO>today()+14
10. До окончания срока КАСКО меньше 14 дней:
car:EDateKASKO<>0 and car:EDateKASKO>today()+14
12. Статус «Такси»: car:StatusID=1
(здесь «1» - это номер статуса в справочнике «Статусы автомобилей»)
13. С топливными картами: car:CardNum<>’’
14. Просрочен ГТО: car:SpisFlag=0 and car:SrokGTO<>0 and car:SrokGTO<today()
15. До очередного ТО осталось меньше 500 км: (car:Probeg%mod:TO1)>(mod:TO1-500)
(Чтобы этот фильтр работал, нужно чтобы в записи о Модели автомобиля были заполнены поля «ТО1» - «ТО7»).

Фильтры для окна «Кассовая книга»:

1. Сегодня: pay:Date=today()
2. Вчера: pay:Date=today()-1
3. Водители: pay:SotrType=1
4. Клиенты: pay:SotrType=3
5. Сотрудники: pay:SotrType=2
6. Сумма от 1000 до 2000 руб: pay:Sum>=1000 and pay:Sum<2000


Фильтры для окна «Журнал операций»:

1. Замена водителя в заказе: instring(' - Вод.:  (был: ',log:Changes,1,1)>0
2. Изменение суммы:
instring('Сумма', log:Changes,1, 1)>0 and instring('было', log:Changes,1, 1)>0  and instring('Изменение записи',log:Operation,1,1)>0
3. Удаление водителя: log:Operation = 'Удаление записи о водителе'

Главная страница        Сайт PSoft         Оплата и регистрация программы