Показать сообщение отдельно
Старый 22.03.2019, 17:59   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
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 в гриде, когда фильтр задан?
Миниатюры
Нажмите на изображение для увеличения
Название: 1.PNG
Просмотров: 153
Размер:	47.3 Кб
ID:	12252   Нажмите на изображение для увеличения
Название: 2.PNG
Просмотров: 204
Размер:	83.8 Кб
ID:	12253  

Нажмите на изображение для увеличения
Название: 3.PNG
Просмотров: 151
Размер:	32.3 Кб
ID:	12254   Нажмите на изображение для увеличения
Название: 4.PNG
Просмотров: 160
Размер:	63.7 Кб
ID:	12255  

__________________
полезное на axForum, github, vk, coub.