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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.11.2012, 13:53   #1  
bodeaux is offline
bodeaux
Участник
Аватар для bodeaux
 
35 / 10 (1) +
Регистрация: 08.10.2012
Адрес: Екатеринбург
Как обратиться к public-методу формы (Form)?
Скажите, пожалуйста, как обратиться к public-методу (не унаследованному от FormRun) формы.
Старый 30.11.2012, 13:53   #2  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
X++:
Object object = formRun;
object.xxxMyMethod();
За это сообщение автора поблагодарили: bodeaux (1).
Старый 30.11.2012, 14:26   #3  
AndyD is offline
AndyD
Участник
КОРУС Консалтинг
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
2,560 / 2479 (88) +++++++++
Регистрация: 20.08.2005
Я для этих целей делаю класс-интерфейс, в котором прописываю сигнатуры нужных методов, а в форме делаю реализацию интерфейса.
Соответственно, вызов делается так
X++:
Object object = formRun;
MyInterface intf = object;
;
intf.xxxMyMethod();
Как огромные плюсы - проверка сигнатур во время компиляции и работающие перекрестные ссылки (на интерфейсе)

Скользкий момент с intf = object.
Перед присвоением делаю проверку на реализацию интерфейса формой.
Так как все формы основаны одном классе FormRun, то стандартная проверка через DictClass в данном случае не подходит. Пришлось реализовывать ее через ScannerClass.

Что бы не заморачиваться с подобными сложностями, можно просто проверять по списку имен форм, что несколько коряво
__________________
Axapta v.3.0 sp5 kr2

Последний раз редактировалось AndyD; 30.11.2012 в 14:28.
За это сообщение автора поблагодарили: macklakov (5), Logger (3), gl00mie (1), S.Kuskov (2), bodeaux (1).
Старый 30.11.2012, 14:31   #4  
Stitch_MS is offline
Stitch_MS
Участник
Аватар для Stitch_MS
Соотечественники
 
397 / 478 (16) +++++++
Регистрация: 27.02.2006
Адрес: Дания
На всякий пожарный, используйте проверку Global::formHasMethod перед вызовом метода формы
За это сообщение автора поблагодарили: bodeaux (1).
Старый 30.11.2012, 23:54   #5  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
С точки зрения вызова метода формы, formHasMethod() проверяет лишь наличие на форме метода с указанным именем - ни типы/число формальных параметров, ни тип возвращаемого значения он вам не проверит, к сожалению.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxtraining: Vendor returns Blog bot DAX Blogs 0 11.10.2012 00:11
dynamicsaxtraining: Sales Blog bot DAX Blogs 0 25.04.2012 03:18
dynamicsaxtraining: Paying a Vendor Blog bot DAX Blogs 0 22.03.2012 22:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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