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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.01.2004, 12:11   #1  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
? FormRun extends ObjectRun - что это концептуально значит?
Что означает
<pre>public class FormRun extends ObjectRun</pre>
если это объявление нового класса, то почему можно делать одновременно много таких объявлений в разных формах?

Допустим, я добавил свой метод в форму: как правильно использовать его извне со статическим контролем типов? (т.е. если я сделаю опечатку в коде, то компилятор мне на это указал)
Старый 21.01.2004, 13:15   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
это объявление делает сама аксапта и сама же следит за правильностью.
статический контроль работать будет.
форма, таблица, отчет - специализированнные классы, ядро обрабатывает их дополнительно.
Старый 21.01.2004, 13:31   #3  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Изначально опубликовано mazzy
это объявление делает сама аксапта и сама же следит за правильностью.
статический контроль работать будет.
Не вполне понятно что оно значит и как обрабатывается самой Axapтой.
Я просто вижу признак того, что я не понимаю .
я заменил эту строчку на
public class NotFormRun extends ObjectRun
при это никакой разницы не заметил.

Цитата:
форма, таблица, отчет - специализированнные классы, ядро обрабатывает их дополнительно.
Где почитать про это дополнительно (как оно конкретно их обрабатывает)?

Как воспользоваться этим статическим контролем?

Я полазил по форуму и тьюториалам и сконструировал следующий код
PHP код:
    Form _form = new Form(formstr(MBAddress_Form));
    
FormRun      _formRun;
    
Object f;
    
Args         _args = new Args();
    
_args.object(_form);
    
_formRun classFactory.formRunClass(_args);
    
_formRun.init();
    
f=_formRun;
    
f.setCatg(category.ID);
    
_formRun.run();
    
_formRun.detach();
    
super(); 
,где setCatg метод, обявленный в форме MBAddress_Form.

как мне сделать, чтобы f был объявлен не как ссылка на объект вообще, а как ссылка на конкретный класс формы MBAddress_Form?
MBAddress_Form f; приводит к ошибке компиляции.
Старый 21.01.2004, 13:38   #4  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
как мне сделать, чтобы f был объявлен не как ссылка на объект вообще, а как ссылка на конкретный класс формы MBAddress_Form?
Для этого надо classFactory.formRunClass() переписать, который всегда инстанцирует класс SysSetupFormRun.
Старый 21.01.2004, 14:00   #5  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
- каким образом инстанциирование SysSetupFormRun влияет на объявление переменной (я говорил об объявлении переменной типа моей формы)?

- каким образом до моей формы доходит вызов setCatg если оно обращено к экземпляру другого класса?
Старый 21.01.2004, 14:25   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
не думаю, что надо переписывать forumRun. Хотя согласен с тем, что в конечном итоге задачу создания экземпляра выполняет ClassFactory.

О правильном запуске (инстанцировании) форм читайте хелп разработчика
Activating a menu item from your X++ code
можно поискать по ключевому слову "formRun"

Или, если все же хотите заниматься созданием форм вручную, прочиатйте
Constructing a form from your X++ code

реальный тип формы, таблицы, отчета берется не из classDeclaration, а из AOT.
classDeclaration нужен только для определения локальных для формы/отчета переменных.

Цитата:
каким образом до моей формы доходит вызов setCatg если оно обращено к экземпляру другого класса
прочитайте про виртуальные методы.
Старый 26.01.2004, 16:35   #7  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Формы, таблицы и отчеты не являются классами в полном понимании этого слова. Более точным будет считать их объектами соответствующих надклассов с различными наборами начальных значений.

Соответственно, получить объект класса MySpecialForm невозможно, так как такого класса просто нет.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 26.01.2004, 17:59   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Потрассировал создание формы и увидел что создается SysSetupFormRun, который сразу же возврашяется и непостижимым образом мутирует в мою форму... вобщем понятно, что общие механизмы тут не используются.

Кстати, есть ли способ самому динамически добавлять методы в объект? как в динамических языках?
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
FormRun.defaultDataSource() virtuoso DAX: Программирование 2 11.08.2008 12:42
У DialogRunbase нет FormRun? Eldar9x DAX: Программирование 3 12.02.2008 09:53
Есть FormRun. Можно ли извлечь из него элемент управления по имени belugin DAX: Программирование 6 23.11.2006 12:51
что значит: WebSession.back()? yooshi DAX: Программирование 1 11.11.2005 13:52
Получить ссылку на FormRun Dron AKA andy DAX: Программирование 2 09.06.2003 16:06

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

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

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