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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.04.2018, 13:40   #1  
kitty is offline
kitty
Участник
 
367 / 26 (1) +++
Регистрация: 24.05.2005
Reference group & Edit метод. Не могу сообразить, как правильно сделать (
Есть запись о поставщике.
Нужно дать возможность показать на форме поставщика несколько полей из записи DirParty таблицы . Эта DirParty запись - не та стандартная, на которую в ax ссылается party поле у поставщика , а связанна в данном нашем случае. с поставщиком иначе, через отдельную таблицу связей. То есть, поля как такового на vendTable для связи нет.
По требованию на карточке постащика должно быть показано 3 поля с этой DirParty записи , одно из которых - PartyName нужно иметь возможность редактировать и, таким образом, пользователь будет изменять связь в таблице связей между VendTable и DirParty. При его изменении значения в оставщихся двух полях тоже должны автоматически измениться(подтянуться соответствующие).
То есть, по сути для partyName - edit метод мог бы быть сделан на vendTable. Тогда при открытии формы поставщика значение бы текущее вычислялось и показывалось.,Пользователь потом мог б выбрать новое значение руками, и в этот момент связи между vendTable и dirParty через edit метод менялись бы.......Но.... тк мы говорим о DirParty, то lookup для Namе по сути должен быть сделан с помощью reference group, основанной на EDT DirPartyRecId(unbound с данном случае, тк поля на vendTable нет). И вот тут я уже не понимаю, как правильно совместить edit метод на таблице с refrerence group на форме? Как его указать в свойствах reference group ( там можно только поля, а не методы на таблицу выбирать из списка в referenceField)

Я пока вижу как решение только:
1) инициализировать значения твех оговоренных полей в Active() методе на VendTable DS формы.
2) в методе modified () у reference group.Обрабатывать изменение значения DirPartyRecId

Но таким образом теряется стройность и красота присваивания значения, как было бы, если все выполнялось в одном edit методе ..... поэтому я не уверена, что 1)-2) это - правильный подход
Подскажите, пожалуйста, как правильно реализовать описанное требование?

Последний раз редактировалось kitty; 04.04.2018 в 13:47.
Старый 04.04.2018, 14:35   #2  
Товарищ ♂uatr is offline
Товарищ ♂uatr
Участник
Аватар для Товарищ ♂uatr
MCBMSS
 
299 / 866 (29) +++++++
Регистрация: 23.10.2012
Вы пишите "unbound" поле, как же это так, когда у Вас есть таблица ссылок - её и используйте, приджоините её к форме. Это уже решит половину Ваших проблем, исходя из этого можно вполне ограничиться перекрытием логики update метода.
То, что Вы планируете сделать весьма трудное в дальнейшей поддержке решение.

Последний раз редактировалось Товарищ ♂uatr; 04.04.2018 в 14:47.
Старый 04.04.2018, 15:43   #3  
kitty is offline
kitty
Участник
 
367 / 26 (1) +++
Регистрация: 24.05.2005
Джойн простым там не получится, к сожалению, поэтому не могу рассматривать это решение.
В чем предполагаемая сложность поддержки?
Старый 04.04.2018, 15:55   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,438 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Если логика джойна сложная, а источник данных очень нужен, то можно сделать закат солнца вручную. При активации записи в ведущей таблице вычислять RecId связанной и устанавливать фильтр в Range. Этакая замена delayed связи/
Либо вообще заполнять временную таблицу нужными данными и отображать её вместо постоянной.
Такие вещи лучше делать по нажатию кнопки, с отображением результата на отдельной форме.
Старый 04.04.2018, 16:58   #5  
ax_mct is offline
ax_mct
Banned
 
2,548 / 1091 (0) ++++++++
Регистрация: 10.10.2005
Адрес: Westlands
Цитата:
Сообщение от kitty Посмотреть сообщение
То есть, по сути для partyName - edit метод мог бы быть сделан на vendTable. Тогда при открытии формы поставщика значение бы текущее вычислялось и показывалось.
...
Подскажите, пожалуйста, как правильно реализовать описанное требование?
Edit метод это крайне профессиональная фишка но лучше всеми силами ее избегать, особенно на сложных формах. То есть это крайняя мера.

Имея свой недавнюю работу с Edit методом на строках sales line, где альтернативных решений вроде бы и не было, жалею об этом. Вроде бы и в PROD уже больше года, но в топку все эти Edit методы. Убивает дебаг, убивает производильность.

Display методы и отдельная кнопка для вызова формы редактирования боковой таблицы 1:1 (AccountNum:AccountNum).
Как раз на днях сделал для формы CustTable.
При этом вначале сделал все "по уму" с Edit методом, но потом переделал.

C Edit производительность редактирования была никакая. Как не кэшировал лучше не стало. Отчасти из-за того что таблица крайне тяжелая, 230 полей, и требует 51KB буфера.
Также очень не хотел добавлять datasource и присоединяться, если можно обойтись без этого. Так как размер буфера.

Поэтому надо не красивее, а проще. Пользователя больше волнует скорость и удобство чему отдельная кнопка для вызова редактируемой формы не мешает.
Это более user friendly чем зависания Edit и гораздо легче в поддержке и расширении.

Последний раз редактировалось ax_mct; 04.04.2018 в 17:00.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Поговорим о SysGlobalObjectCacheItemWrapper? Кто использовал? Как правильно? Что можно сделать? mazzy DAX: Программирование 1 16.06.2017 13:07
sunilrakesh: Reference group lookup in D365 (Ax7) Blog bot DAX Blogs 0 31.05.2017 17:11
dynamicsaxtraining: Item setup: Item group Blog bot DAX Blogs 0 12.11.2009 17:05
emeadaxsupport: Group policy setting "System Objects: Default owner for objects created by members of the administrators group" is missing on Windows Server 2008 Blog bot DAX Blogs 2 28.08.2009 02:14
Подскажите как использовать метод Edit vasiliy DAX: Программирование 1 30.03.2005 09:45

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

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

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