ax2009, ax2012: как правильно отобразить фильтр на форме?
обратите внимание:
= версия аксапты - 2009, 2012
= вопрос сформулирован "как правильно?", поэтому воздержитесь от "быстрых и грязных" решений при обсуждении.
Итак, типовая задача от пользователей - отобразить фильтр на форме.
Вы уже показывали Ctrl+F3, рассказали о возможности сохранения фильтров и даже показали как добавлять новые таблицы к стандартным фильтрам. Вы даже добавили пункт меню, который позволяет копировать настроенные фильтры другим пользователям.
Но пользователи все равно хотят фильтр на форме.
С одной стороны, добавлять таблицы в Ctrl+F3 - действительно утомляет.
С другой стороны, есть такие пользователи, что ну его нафиг, пусть будет фильтр на форме.
===============
Требования к фильтру:
= это должен быть критерий, а не единственное значение для фильтрации
= поле должно показывать текущий фильтр при входе на форму и при изменении критерия стандартными средствами (тот же Ctrl+F3)
= фильтр должен изменять только свой range, не изменяя другие критерии в запросе
= фильтр должен работать и по добавленным таблицам.
==============
типичный пример - добавить фильтр по дате в Партии на форме складских проводок.
если фильтр не задан, то показываем все проводки
если фильтр задан, то показываем проводки для которых партии заданы И дата в партии подходит под критерий
==============
типичный сценарий использования:
1. пользователь открывает форму складских проводок [скриншот 1]
2. пользователь выполняет поиск, фильтрацию сортировку (по номенклатуре, по датам, по статусам и т.п.)
3. в какой-то момент пользователь хочет отфильтровать и по дате, которая указана в партии. при этом он понимает, что после фильтрации он НЕ увидит проводок, для которых партия не включена в складских аналитиках. [в стандартном функционале] пользователь нажимает Ctrl+F3, добавляет таблицу InventBatch, добавляет range. получает проводки, отфильтрованные еще и по полю Expired Date
4. затем пользователь может убрать фильтр по номенклатуре, а фильтр по полю Expired Date оставить
==============
вопрос:
как правильно реализовать подобный функционал при помощи фильтра на форме аксапты 2009, 2012? внимание: важно не только добавлять фильтр по Expired Date, но и убирать его, когда пользователь очищает критерий.
бонус вопрос:
предположим мы реализовали подобный фильтр. как отобразить поле Expired Date в гриде, когда фильтр задан?
|