Показать сообщение отдельно
Старый 24.05.2019, 19:27   #1  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
D365FO: Поля связи в расширенном фильтре
Добрый день!
Потребовалось тут мне построить нетривиальный фильтр на форме и столкнулся я с тем, что при попытке приджойнивания новой таблицы - выводится много связей с одинаковым названием и невозможно отличить одну связь от другой.
Особенно это заметно, если в одной таблице есть несколько сотрудников (как например, в таблице проектов - ProjTable). Но я покажу пример на более распространенной табличке - заказов на покупку (PurchTable). В табличке есть 2 поля, ссылающихся на справочник поставщиков (VendTable) - OrderAccount и InvoiceAccount. Итак, открываем заказ на покупку (например, из модуля Расчеты с поставщиками) и выбираем расширенный фильтр
Нажмите на изображение для увеличения
Название: SNAG_Program-0015.png
Просмотров: 184
Размер:	48.6 Кб
ID:	12318
Пытаемся добавить справочник поставщиков к существующему запросу
Название: SNAG_Program-0016.png
Просмотров: 741

Размер: 29.0 Кб
И видим две одинаковые строки
Нажмите на изображение для увеличения
Название: SNAG_Program-0017.png
Просмотров: 126
Размер:	48.5 Кб
ID:	12320
Изначально не очень понятно, какую мне связь выбирать, если я захочу к табличке PurchTable приджойнить табличку VendTable.
Кнопка "Показывать названия таблиц" не вносит ясности, т.к. в общем-то и так понятно, что я пытаюсь приджойнить VendTable к PurchTable

Я решил добавить сюда информацию о полях связи, добавив дополнительный столбец (он виден только, если включен флажок "Показывать названия таблиц")
Нажмите на изображение для увеличения
Название: SNAG_Program-0018.png
Просмотров: 132
Размер:	80.6 Кб
ID:	12321

В случае связей по нескольким полям - они "склеиваются" в одну строку и выводятся таким образом:
Нажмите на изображение для увеличения
Название: SNAG_Program-0019.png
Просмотров: 132
Размер:	81.2 Кб
ID:	12322

Проверил на PU25 - работает. В ходе разработки использовал технологию CoC для расширения класса и для расширения контрола (чтобы столбец скрывался при выключенном флажке "Показывать названия таблиц"), т.о. ранее, чем PU22 (кажется) такой подход работать не будет - нужно будет код немного поменять.
Думаю, тут уже можно будет справиться самостоятельно (в конце концов можно не скрывать новый столбец)
Кода немного - фактически, небольшое расширение класса SysQueryBuilder

Код делал в отдельной модели для лёгкости установки. Прикладываю 2 файла - .axpp (выгрузка проекта) и .axmodel (выгрузка модели)
SysQueryFormAddRelInfo.axpp
SysQueryFormAddRelInfo-VSUH.axmodel
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 24.05.2019 в 19:30.
За это сообщение автора поблагодарили: KiselevSA (6), trud (20), raz (17), belugin (15), Ar (1), wojzeh (7), vmoskalenko (3), S.Kuskov (10).