Показать сообщение отдельно
Старый 02.05.2018, 15:48   #1  
kitty is offline
kitty
Участник
 
354 / 26 (1) +++
Регистрация: 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.