11.04.2014, 10:58 | #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. Причина: наадо |
|
11.04.2014, 11:11 | #2 |
Участник
|
В вашем случае думаю поможет
X++: formRun.detach(); X++: MenuFunction menuFunction;\ ; menuFunction= new MenuFunction(menuItemDisplayStr(Tabax), MenuItemType::Display); menuFunction.run() |
|
11.04.2014, 11:18 | #3 |
Участник
|
Это на сервере выполняется. Меню Функцион тут бесполезны
|
|
11.04.2014, 11:20 | #4 |
Участник
|
formRun.detach(); не помогло, это не стандартная форма. Видимо вы не сталкивались с Tabax )))
|
|
11.04.2014, 11:35 | #5 |
Участник
|
сделал ради интереса новый класс, как вы описали, под новую команду
перекрыл метод X++: void infoRun() { MenuFunction menuFunction; super(); menuFunction= new MenuFunction(menuItemDisplayStr(InventTable), MenuItemType::Display); menuFunction.run(); } |
|
11.04.2014, 11:40 | #6 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: lev (5). |
11.04.2014, 11:42 | #7 |
Участник
|
Цитата:
Сообщение от michel1971
сделал ради интереса новый класс, как вы описали, под новую команду
перекрыл метод X++: void infoRun() { MenuFunction menuFunction; super(); menuFunction= new MenuFunction(menuItemDisplayStr(InventTable), MenuItemType::Display); menuFunction.run(); } |
|
11.04.2014, 11:44 | #8 |
Участник
|
|
|
11.04.2014, 11:49 | #9 |
Участник
|
|
|
11.04.2014, 12:03 | #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.04.2014, 12:17 | #11 |
Участник
|
Цитата:
Сообщение от michel1971
зачем тогда Вы его тут используете (хотя и косвенно)?
напишите что-нибудь типа X++: args = new args(formstr(TabaxLite)); args.caller(this); formrun = ClassFactory::formRunClassOnClient(args); formrun.init(); formrun.run(); formrun.detach(); |
|
11.04.2014, 12:36 | #12 |
Ищущий знания...
|
Цитата:
Примеры: 1. Хотим открыть справочник номенклатур, пишем: X++: TreeNode::findNode(@'\Forms\InventTable').AOTrun(); X++: TreeNode::findNode(@'\Forms\SalesTable').AOTrun();
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем |
|
11.04.2014, 12:58 | #13 |
Участник
|
Цитата:
Сообщение от lev
Так Вам и написали, что можно написать, что бы форма открылась.
Примеры: 1. Хотим открыть справочник номенклатур, пишем: X++: TreeNode::findNode(@'\Forms\InventTable').AOTrun(); X++: TreeNode::findNode(@'\Forms\SalesTable').AOTrun(); |
|
11.04.2014, 13:03 | #14 |
Участник
|
Напоминаю, что форму я запускаю через параметры запуска Аксапты. Наследник класса "SysStartupCmd". Все преложенные вами методы может и срабатывают в запущенной, когда вы делаете вызов вручную, но если их использовать в момент иницилизации Аксапты при запуске, то они не срабатывают
|
|
11.04.2014, 13:12 | #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 |
|
11.04.2014, 13:24 | #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 |
|
11.04.2014, 13:45 | #17 |
Участник
|
|
|
11.04.2014, 13:55 | #18 |
Участник
|
|
|
11.04.2014, 14:33 | #19 |
Участник
|
Кому интересно, плюнул я и вписал вызов формы напрямую в класс Info. Работает =)
|
|
11.04.2014, 14:35 | #20 |
Участник
|
ключевое отличие здесь - серверный режим. На клиенте форма запускается. Запускать форму на AOS имхо бессмысленно.
|
|
Теги |
sysstartupcmd |
|
|