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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 03.07.2018, 10:25   #1  
oleyhov is offline
oleyhov
Участник
 
1 / 10 (1) +
Регистрация: 20.06.2018
? Вызов метода класса на форме
Добрый день, возникла проблема. Если просто запускать форму из класса, то я знаю как объявить текущий класс на форме через MyClass = element.args().caller(); и можно соответственно вызывать его методы. Вопрос в том, если вызвать форму в диалоге, то есть через dialog = Dialog::newFormnameRunbase(formstr(MyForm),this); то данный метод уже не работает. Причина в том, что в этом случае объявляется объект класса RunBase, а не моего и соответственно у него нет методов моего класса. Есть ли возможность как-то это сделать, или в этом случае обязательно необходимо вызывать форму отдельно?
Старый 03.07.2018, 10:33   #2  
Pandasama is offline
Pandasama
Участник
 
130 / 18 (1) ++
Регистрация: 11.08.2014
Адрес: Барнаул
Из путанного объяснения толком не понял о чем речь, но может быть можно сделать так?

myClass = runBase;
myClass.myMethod();
Старый 03.07.2018, 11:37   #3  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
721 / 535 (19) +++++++
Регистрация: 14.10.2004
Присвойте значение переменной dialog новой переменной, у которой тип Object. И у неё вызывайте ваши методы. В подсказке вы этих методов не увидите, но компилятор откомпилирует без ошибок.
X++:
Object  obj;
;
....
dialog = Dialog::newFormnameRunbase(formstr(MyForm),this); 
obj = dialog;
obj.doSomething();
__________________
Мои утилиты для Аксапты версий 3.0-2012: http://aceofdatabase.blogspot.com/
За это сообщение автора поблагодарили: wojzeh (1).
Старый 03.07.2018, 11:48   #4  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
1,714 / 886 (33) +++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Все правильно. получить класс можно вызовом:
X++:
element.args().caller().runbase();
Например, можно посмотреть форму tutorial_RunbaseForm
Старый 03.07.2018, 21:18   #5  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
463 / 217 (8) ++++++
Регистрация: 27.04.2006
Адрес: Montreal
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Присвойте значение переменной dialog новой переменной, у которой тип Object. И у неё вызывайте ваши методы. В подсказке вы этих методов не увидите, но компилятор откомпилирует без ошибок.
X++:
Object  obj;
;
....
dialog = Dialog::newFormnameRunbase(formstr(MyForm),this); 
obj = dialog;
obj.doSomething();
парашютики не забываем!

X++:
static void Job1(Args _args)
{
SysDictClass dictClass = new SysDictClass(classNum(InventOnHand));
;
dictClass.hasObjectMethod(methodStr(InventOnHand, arrived));
dictClass.hasStaticMethod(staticmethodStr(InventOnHand, newItemDim));
}

//Kashperuk Ivan (Vanya), Dynamics AX MCBMSS
//My blog - [url]http://kashperuk.blogspot.com[/url]
__________________
Felix nihil admirari
-----------------------------------------------------------------------------------------------
AX2012
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
setTimeOut() не работает в классе, если экземпляр класса создан через вызов MenuFunction AR® DAX: Программирование 10 22.05.2013 16:53
Вызов метода базового класса Eldar9x DAX: Программирование 15 22.03.2008 19:10
Вызов метода класса из HTML Chezer DAX: Программирование 2 26.12.2006 15:34
Свойство элемента управления из метода класса Zeratul DAX: Программирование 4 11.05.2006 17:32
"Программный" вызов метода класса!? axaLearner DAX: Программирование 13 16.08.2005 08:12
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 10:22.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.