AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.05.2018, 15:48   #1  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Как отфильтровать лукап
Есть лукап по работникам. В стандарте они подвязаны через reference group , в моем случае, нужно, чтобы поведение было как по referenceGroup , но без нее То есть, сохраняем RecID, но пользователь видит и выбирает Имя-фамилию.(тк при открытии формы размер буфера привышает лимит из-за скрыто привязываемых черезе reference group датасоурсов, то приходится вот так изощряться)

1) Сам лукап создаю через через
X++:
formRun = FormAutoLookupFactory::buildLookupFromCustomForm(stringControl, HcmWorkerLookup, AbsoluteFieldBinding::construct(fieldStr(DirPerson, Name), tableStr(DirPerson)), args);;
разницы в поведении не вижу, кстати, даде если укажу AbsoluteFieldBinding::construct(fieldStr(HcmWorker, PersonnelNumber). Поэтому не совсем понимаю, за что отвечает этот параметр, если не на возвращаемое поле?

2) А в run формы HcmWorkerLookUp, если она вызвана по конкретному моему условию, то указываю вернуть :
X++:
this.selectMode(dirPerson_Name);
3) В close select вызываю по тому же условию метод своей формы для передачи recid обратно в мою форму ...

Все здорово. Работает. Но....не могу заставить лукап фильтровать по символам подстановки. То есть, если пишу в контроле NameABC*, то открывающийся лукап по нему не фильтруется. Через какой метод можно передать это?
Могу только предположить, что dirPerson на hcmWorker подвязывается через суррогатный ключ, поэтому это стрытый outer join , поэтому фильтр не срабатывает... , но как-то стандартный referece-group лукап же это делает...... То есть, если в employee responsible на vendTable вбить NameABC*, то выпадающий лукап отфильтруется же

Последний раз редактировалось kitty; 02.05.2018 в 15:52.
Старый 03.05.2018, 09:12   #2  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Вот тут https://community.dynamics.com/ax/f/33/t/144486 пишут, что работает если в args положить lookupRecord предварительно найденный по текущему значению.

Возможно получится и со свойствами lookupField, LookupValue http://www.axaptapedia.com/Args_Class#lookupValue
Старый 03.05.2018, 15:04   #3  
kitty is offline
kitty
Участник
 
370 / 30 (2) +++
Регистрация: 24.05.2005
Спасибо, но lookupRecord устанавливает курсор на конкретной, переданной ему записи, а не по шаблону типа ABC*
Старый 04.05.2018, 08:11   #4  
KiselevSA is offline
KiselevSA
Злыдни
Аватар для KiselevSA
Злыдни
Лучший по профессии 2015
 
958 / 333 (13) ++++++
Регистрация: 25.01.2002
Адрес: Москва
Я с написанием собственного кода не в ладах (системный аналитик - консультант, якобы), но для лукапов с поиском и фильтрацией прошу всегда рисовать форму для лукапа и, в новом расширенном типе или в поле другой формы для "старых" EDT, ссылаться на эту форму.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании.

Последний раз редактировалось KiselevSA; 04.05.2018 в 08:12. Причина: Очепятки
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Не отрабатывает лукап Skolos DAX: Программирование 2 29.04.2016 12:53
как переопределить Relation чтобы лукап работал? lvan DAX: Программирование 10 24.01.2014 16:20
Как сделать хитрый лукап miklenew DAX: Программирование 11 08.10.2007 17:28
лукап-форма с доп. фильтром patron DAX: Программирование 10 30.03.2007 12:19
Лукап, содержащий поля нескольких таблиц matew DAX: Программирование 4 30.11.2006 16:02

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 15:45.