![]() |
#1 |
Участник
|
![]()
Добрый день. Решил попробовать создать свою команду запуска аксапты 3.0. Создал класс, наследовал его от SysStartupCmd. Информация в лог выводится, а запуск формы не происходит. В чем может быть проблема?
X++: class TestAuto extends SysStartupCmd { } void infoRun() { FormRun formRun; ; info("!"); super(); info("!!ok"); formRun = new MenuFunction(menuItemDisplayStr(Tabax), MenuItemType::Display).create(); formRun.run(); info("!!!"); } ![]() Причина: P.S: при запуске не выводиться только последний инфолог, ну и форма не запускается. Пробовал этот же код в джобе, все ок - форма открылась Последний раз редактировалось АртемМелихов; 11.04.2014 в 11:00. Причина: наадо |
|
![]() |
#2 |
Участник
|
В вашем случае думаю поможет
X++: formRun.detach(); X++: MenuFunction menuFunction;\ ; menuFunction= new MenuFunction(menuItemDisplayStr(Tabax), MenuItemType::Display); menuFunction.run() |
|
![]() |
#3 |
Участник
|
Это на сервере выполняется. Меню Функцион тут бесполезны
|
|
![]() |
#4 |
Участник
|
formRun.detach(); не помогло, это не стандартная форма. Видимо вы не сталкивались с Tabax )))
|
|
![]() |
#5 |
Участник
|
сделал ради интереса новый класс, как вы описали, под новую команду
перекрыл метод X++: void infoRun() { MenuFunction menuFunction; super(); menuFunction= new MenuFunction(menuItemDisplayStr(InventTable), MenuItemType::Display); menuFunction.run(); } |
|
![]() |
#6 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: lev (5). |
![]() |
#7 |
Участник
|
Цитата:
Сообщение от michel1971
![]() сделал ради интереса новый класс, как вы описали, под новую команду
перекрыл метод X++: void infoRun() { MenuFunction menuFunction; super(); menuFunction= new MenuFunction(menuItemDisplayStr(InventTable), MenuItemType::Display); menuFunction.run(); } |
|
![]() |
#8 |
Участник
|
|
|
![]() |
#9 |
Участник
|
|
|
![]() |
#10 |
Участник
|
Цитата:
напишите что-нибудь типа X++: args = new args(formstr(TabaxLite)); args.caller(this); formrun = ClassFactory::formRunClassOnClient(args); formrun.init(); formrun.run(); formrun.detach(); Последний раз редактировалось michel1971; 11.04.2014 в 12:13. |
|
![]() |
#11 |
Участник
|
Цитата:
Сообщение от michel1971
![]() зачем тогда Вы его тут используете (хотя и косвенно)?
напишите что-нибудь типа X++: args = new args(formstr(TabaxLite)); args.caller(this); formrun = ClassFactory::formRunClassOnClient(args); formrun.init(); formrun.run(); formrun.detach(); |
|
![]() |
#12 |
Ищущий знания...
|
Цитата:
Примеры: 1. Хотим открыть справочник номенклатур, пишем: X++: TreeNode::findNode(@'\Forms\InventTable').AOTrun(); X++: TreeNode::findNode(@'\Forms\SalesTable').AOTrun();
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
![]() |
#13 |
Участник
|
Цитата:
Сообщение от lev
![]() Так Вам и написали, что можно написать, что бы форма открылась.
Примеры: 1. Хотим открыть справочник номенклатур, пишем: X++: TreeNode::findNode(@'\Forms\InventTable').AOTrun(); X++: TreeNode::findNode(@'\Forms\SalesTable').AOTrun(); |
|
![]() |
#14 |
Участник
|
Напоминаю, что форму я запускаю через параметры запуска Аксапты. Наследник класса "SysStartupCmd". Все преложенные вами методы может и срабатывают в запущенной, когда вы делаете вызов вручную, но если их использовать в момент иницилизации Аксапты при запуске, то они не срабатывают
|
|
![]() |
#15 |
Участник
|
Цитата:
Сообщение от АртемМелихов
![]() Напоминаю, что форму я запускаю через параметры запуска Аксапты. Наследник класса "SysStartupCmd". Все преложенные вами методы может и срабатывают в запущенной, когда вы делаете вызов вручную, но если их использовать в момент иницилизации Аксапты при запуске, то они не срабатывают
делаем класс X++: class SysStartupCmdTabax extends SysStartupCmd X++: void infoRun() { super(); TreeNode::findNode(@'\Forms\TabaxLite').AOTrun(); } X++: case 'tabax': sysStartupCmd = new SysStartupCmdTabax(s,parm); break; пишем tabax. Запускаме аксапту Результат открытая форма TabaxLite |
|
![]() |
#16 |
Участник
|
Цитата:
Сообщение от michel1971
![]() еще раз....
делаем класс X++: class SysStartupCmdTabax extends SysStartupCmd X++: void infoRun() { super(); TreeNode::findNode(@'\Forms\TabaxLite').AOTrun(); } X++: case 'tabax': sysStartupCmd = new SysStartupCmdTabax(s,parm); break; пишем tabax. Запускаме аксапту Результат открытая форма TabaxLite |
|
![]() |
#17 |
Участник
|
|
|
![]() |
#18 |
Участник
|
|
|
![]() |
#19 |
Участник
|
Кому интересно, плюнул я и вписал вызов формы напрямую в класс Info. Работает =)
|
|
![]() |
#20 |
Участник
|
ключевое отличие здесь - серверный режим. На клиенте форма запускается. Запускать форму на AOS имхо бессмысленно.
|
|
Теги |
sysstartupcmd |
|
|