|
05.07.2024, 19:29 | #1 |
Участник
|
Hookable(false) - как обойти?
Есть стандартная форма с гридом.
На поле, точнее его контроле, в методе modified вызывается метод, что устанавливает другое поле того же датасоурса Qty = 1 Этот modified добрый MS сделал Hookable(false)., а тот метод, что он вызывает, тот помечен как internal Мне надо , чтобы Qty устанавливалось в другое значение, но не понимаю, как подцепиться , чтобы мой код выполнялся после стандартного. Подскажите, пожалуйста, какие есть варианты? |
|
05.07.2024, 20:29 | #2 |
Участник
|
создать extensibility request, например?
|
|
06.07.2024, 10:04 | #3 |
Участник
|
Сколько это занимает по времени? Есть проблемы потом с накатыванием новой версии?
|
|
13.07.2024, 05:54 | #4 |
Участник
|
Вот здесь описывается https://dynamics365musings.com/overr...ain-of-command
как extension формы перегрузить метод lookup у котрола. Пример легко переписать под modified |
|
14.07.2024, 11:04 | #5 |
Участник
|
Цитата:
Сообщение от ice321i
Вот здесь описывается https://dynamics365musings.com/overr...ain-of-command
как extension формы перегрузить метод lookup у котрола. Пример легко переписать под modified |
|
14.07.2024, 11:08 | #6 |
Участник
|
Склоняюсь к идее сделать extension, а в нем сделать копию этого контрола и скрыть стандартный. Не знаю, прокатит ли
|
|
14.07.2024, 21:03 | #7 |
Участник
|
Цитата:
Сообщение от kitty
Спасибо за Вашу попытку помочь, но, как указала в теме, hookable[false]
Перегрузить нужный вам метод у контрола с помощью registerOverrideMethod указав ваш метод который будет вызываться, вместо стандартного. X++: ExtensionOf(formStr(CustTable))] final class TutorialCustTable_Form_Extension { public void init() { next init(); Posting_CustGroup.registerOverrideMethod(methodStr(FormDataObject, lookup), formMethodStr(CustTable, overridenCustGroupLookup)); } public void overridenCustGroupLookup(FormStringControl _formControl) { SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(CustGroup), _formControl); // Add the lookup columns sysTableLookup.addLookupfield(fieldNum(CustGroup, CustGroup)); sysTableLookup.addLookupfield(fieldNum(CustGroup, Name)); sysTableLookup.addLookupfield(fieldNum(CustGroup, PaymTermId)); // Run the lookup sysTableLookup.performFormLookup(); } } Последний раз редактировалось ice321i; 14.07.2024 в 21:24. |
|
|
За это сообщение автора поблагодарили: Logger (3). |
Теги |
d365, registeroverridemethod |
|
|