Показать сообщение отдельно
Старый 06.04.2018, 18:38   #1  
kitty is offline
kitty
Участник
 
354 / 26 (1) +++
Регистрация: 24.05.2005
Подменить lookup для DirPartyRecId referenceControl
Есть форма, основанная на временной таблице.
Среди ее полей есть DirPartyRecId, DirPartyNumber. На форме с помощю Reference group вместо DirPartyRecId пользователю показывается DirPartyName.
Нужно изменить стандартный лукап,выпадающий на DirPartyRecId. В новом лукапе должны показываться только записи DirOrganization, а колонками должны быть
1) CountryRegionId из первичного адреса(то есть, в запросе для лукапа нужен join c LogisticsPostalAddress по доп условию на DirPartyLocation, IsPrimary = true)
2) OrgNumber(из DirOrganization)
3) Name (из DirParty).
Пользователь должен иметь фозможность фильтровать по колонкам лукапа

Я сделала View с нужным запросом и его использую с sysTableLookup. Но не могу понять, как это "привинтить" к referenceControl формы. Я переопределила lу контрола на форме методookup() и там вызываю свой лукап. Но, вижу, через дебаггер, что в методе sysTableLookup -> performFormLookup() вариант referenceControl принципе не рассматривается.....поэтому лукап не создается

Нашла еще пример в DirUtility-> namelookup(), но там используется не sysTableLookup, а по сути создается новый FormRun...

Можно ли в принципе как-то решить задачу через sysTableLookup ? (Сontrol для DirPartyName это по сути же FormStringControl, поэтому я лелею надежду), или это возможно только через новую Form в AOT? Может, еще есть варианты?

Замечание: Такой же лукап мне нужно будет использовать в другой функциональности, где на форме диалога пользователь выбирает запись из DirParty и по ней запускается обработка. Там сейчас поле диалога основано на DirPartyRecId и автосоздается аксаптой стандартный лукап. Мне нужно заменить его на такой же , как описан выше. То есть, с CountryRegionId, OrgNumber, Name

Спасибо

Последний раз редактировалось kitty; 06.04.2018 в 18:42.