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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.05.2012, 13:11   #1  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Вызов класса
Всем доброго дня. У меня есть мой класс в нем classdeclaration и main. В main я создаю и стартую Dialog с некоторыми Field. Как вызвать это класс из кода X++ а не по MI?
Пробовал cl = new Myclass();
cl.run(); ругается
Старый 10.05.2012, 13:20   #2  
FridmanV is offline
FridmanV
Участник
 
27 / 10 (1) +
Регистрация: 05.04.2012
Адрес: Самара
this.run();
я так делаю)
Старый 10.05.2012, 13:26   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
статические методы вызываются через два двоеточия
X++:
Myclass::main
За это сообщение автора поблагодарили: smailik (1).
Старый 10.05.2012, 13:28   #4  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
фигня какая-то. Сейчас я пытаюсь запустить мой класс из Job. this тут не катит
Старый 10.05.2012, 13:32   #5  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
X++:
static void Job5(Args _args)
{
    Torg12Configure clt;
    ;
    clt = new Torg12Configure();
    clt::main();
}
пишет clt не является классом
Старый 10.05.2012, 13:33   #6  
FridmanV is offline
FridmanV
Участник
 
27 / 10 (1) +
Регистрация: 05.04.2012
Адрес: Самара
Зачем из Jod.
Пиши в main.
this.run();
Старый 10.05.2012, 13:34   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
this существует только внутри нестатических методов класса.

Цитата:
Сообщение от smailik Посмотреть сообщение
пишет clt не является классом
X++:
static void Job5(Args _args)
{
    ;

    Torg12Configure::main();
}
P.S.: Советую немного пробежаться по учебнику С++ или Java чтобы подобные вопросы перед вами не вставали в будущем.
Старый 10.05.2012, 13:41   #8  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
спасибо
Старый 06.06.2012, 10:58   #9  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
В продолжение темы. У меня есть класс, я его вызываю через MenuItem из формы. Так же в MenuItem указываю DataSource. Я хочу вызвать этот класс из другой формы. Во второй форме другой DataSource поэтому в вызываемый класс я хочу подсунуть свою таблицу, но это у меня не выходит.
X++:
myClass::main(myTable);
если делаю так, то в классе ругается на строку
X++:
myTable1 = _args.record();
Пишет что не правильные типы аргументов. myTable и myTable1 таблицы одного типа
Хотел сделать через MenuItemBotton второй формы, руками подставлял ей DataSource
X++:
ButtonMy.datasource(myTable);
это не дало результатов, ругается все в том же месте. Подскажите что делаю не так?

Последний раз редактировалось smailik; 06.06.2012 в 11:00.
Старый 06.06.2012, 11:11   #10  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от smailik Посмотреть сообщение
X++:
myClass::main(myTable);
Какого типа у вас переменная myTable? Табличного? А входной параметр в методе main? Разве не Args?

Если всё праильно с типами, то должно быть что-то вроде этого:
X++:
Args myArgs = new Args();
;
myArgs.record(myTable)
myClass::main(myArgs);
За это сообщение автора поблагодарили: smailik (1).
Старый 06.06.2012, 11:11   #11  
online
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,737 / 404 (17) +++++++
Регистрация: 23.03.2006
посмотрите внимательно что является аргументом в main()
Старый 06.06.2012, 12:03   #12  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
В main() аргумент args. Дописал себе на форму в метод cliked кнопки то что написал S.Kuskov.
При компиляции не ругается, а вот при запуске выдает ошибку "Попытка чтения массива по неверному индексу". Если закоментить строку
X++:
myClass::main(myArgs);
то не ругается
Старый 06.06.2012, 12:37   #13  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Цитата:
Сообщение от smailik Посмотреть сообщение
Если закоментить строку
X++:
myClass::main(myArgs);
то не ругается
Это ещё не значит что ошибка возникает непосредственно в момент вызова myClass::main. Может быть ошибка происходит внутри класса.

Что бы определить источник ошибки, поставьте точку останова в методе add класса Info. Либо просто нажмите кнопку правка на окне инфолога, если она у вас есть
За это сообщение автора поблагодарили: Pustik (7).
Старый 06.06.2012, 12:46   #14  
smailik is offline
smailik
Участник
Аватар для smailik
 
250 / 70 (3) ++++
Регистрация: 10.04.2012
Адрес: Москва
Такой кнопки у меня нет. Если я поставлю точку останова в методе add, разве я туда попаду уже не после возникновения ошибки? Почему если я ставлю точку останова до
X++:
myClass::main(myArgs);
то она не срабатывает?

Насчет метода add я разобрался. Дебагер показывает куда и откуда он попадает. Спасибо за совет. Но почему все таки не срабатывает точка останова которую я поставил перед вызовом класса?

Последний раз редактировалось smailik; 06.06.2012 в 12:49.
Старый 06.06.2012, 12:50   #15  
online
ice
Участник
Аватар для ice
Лучший по профессии 2014
 
1,737 / 404 (17) +++++++
Регистрация: 23.03.2006
в методе cliсked точки останова не работают
За это сообщение автора поблагодарили: Pustik (1).
Старый 06.06.2012, 13:24   #16  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от smailik Посмотреть сообщение
..Но почему все таки не срабатывает точка останова которую я поставил перед вызовом класса?
а пробовали прописать точку остновова текстом?
X++:
...
breakpoint;
...
Вроде мне так удавалось вызвать отладчик на методе clicked() кнопки...
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
За это сообщение автора поблагодарили: Pustik (2).
Старый 07.06.2012, 07:08   #17  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Цитата:
Сообщение от lev Посмотреть сообщение
а пробовали прописать точку остновова текстом?
X++:
...
breakpoint;
...
Вроде мне так удавалось вызвать отладчик на методе clicked() кнопки...
Да да, сталкивались с таким глюком. Когда немного начало раздражать прописали метод в классе Global. Обозвали bp(). Чтобы меньше писать ))). Точно не помню, но вроде точка останова не срабатывает во всех методах контрола подобия кнопки. (только в AX2009)
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.

Последний раз редактировалось Dron AKA andy; 07.06.2012 в 16:43.
За это сообщение автора поблагодарили: driller (2).
Старый 07.06.2012, 16:44   #18  
Dron AKA andy is offline
Dron AKA andy
Moderator
 
944 / 253 (10) ++++++
Регистрация: 27.03.2002
Адрес: Москва
Часть темы выделена в Нужна ли теоретическая подготовка при программировании в Axapta?
__________________
Андрей.
За это сообщение автора поблагодарили: driller (0).
Теги
вызов класса, как правильно, класс

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Вызов метода базового класса Eldar9x DAX: Программирование 15 22.03.2008 19:10
корректный вызов класса kitty DAX: Программирование 9 11.07.2006 13:47
"Программный" вызов метода класса!? axaLearner DAX: Программирование 13 16.08.2005 08:12
Вызов формы из класса Vitaly_K DAX: Программирование 4 21.03.2005 10:36
вызов класса с передачей параметров simply DAX: Программирование 2 23.06.2004 18:04
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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