02.11.2015, 21:16 | #1 |
Участник
|
Передача нескольких датасорсов формы в класс обработчик
Здравствуйте.
Есть форма на нескольких датасорсах. и в вызывающемся на ней по кнопке классе надо получить все три значения датасорсов текущей записи. как это сделать? когда один нужен - указываю в свойствах кнопки датасорс и беру в классе args.record(). А когда нужны 3 ? |
|
02.11.2015, 22:42 | #2 |
Сенбернар
|
Исходя из этого, предполагаю, что все три датасорса как-то связаны (a-la Header -> Line -> Subline)
Если это так - передавайте Subline (через args.record(), как обычно), затем по ней в обработчике находите все остальное. А вообще - опишите подробнее задачу, вы, ИМХО, маловато информации дали пока.
__________________
Best Regards, Roman Последний раз редактировалось RVS; 02.11.2015 в 22:47. |
|
02.11.2015, 23:16 | #3 |
Участник
|
Согласен с RVS - вы хотите чего-то странного.
обычно все проще делается. типичный паттерн для случаев, когда надо получить что-то из вызывающего, это... использовать args.caller() в форме, которая открывается по нажатию на кнопку. в init() сперва проверяете, что тип у caller - тот самый, что нужен вам, затем присваиваете caller() переменной нужного вам типа и, наконец, выполняете обращение к методам и датасорсам вызывающей формы уже через переменную. поищите по перекрестным ссылкам где и как используется args.caller. но повторюсь - вы хотите чего-то странного. обычно все проще делается. Последний раз редактировалось mazzy; 02.11.2015 в 23:18. |
|
03.11.2015, 00:15 | #4 |
Участник
|
Берите joinChild или joinParent от курсора, в зависимости от ситуации.
|
|
06.11.2015, 16:56 | #5 |
Участник
|
|
|
06.11.2015, 23:02 | #6 |
Молодой, подающий надежды
|
Цитата:
Вот, например, форма RetailStoreItemPriceList (AX 2012 R3) X++: public display Price getPrice(RetailAssortmentLookup _retailAssortmentLookup) { RetailChannelTable localChannelTable; InventTableModule localInventTableModule; RetailChannelItemPriceAgreement localChannelItemPriceAgreement; localChannelTable = _retailAssortmentLookup.joinChild().joinChild(); localInventTableModule = localChannelTable.joinChild().joinChild(); localChannelItemPriceAgreement = localInventTableModule.joinChild(); return localChannelItemPriceAgreement.Amount ? localChannelItemPriceAgreement.Amount : localInventTableModule.Price; }
__________________
Кононов Пётр |
|
|
За это сообщение автора поблагодарили: Start (1). |
|
Похожие темы | ||||
Тема | Ответов | |||
Передача нескольких строк в класс | 4 | |||
С Формы в Класс | 26 | |||
Проблема с передачей контролов из формы в класс | 0 | |||
Передача datasource формы в класс | 2 | |||
Русская локализация Axapta 3 ? | 59 |
|