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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.04.2014, 10:58   #1  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
:( Разработки своей команды запуска
Добрый день. Решил попробовать создать свою команду запуска аксапты 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  
michel1971 is offline
michel1971
Участник
 
78 / 78 (3) ++++
Регистрация: 14.01.2011
В вашем случае думаю поможет
X++:
formRun.detach();
а вообще проще делать видимо так
X++:
MenuFunction menuFunction;\
;
menuFunction= new MenuFunction(menuItemDisplayStr(Tabax), MenuItemType::Display);
menuFunction.run()
Старый 11.04.2014, 11:18   #3  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от michel1971 Посмотреть сообщение
В вашем случае думаю поможет
X++:
formRun.detach();
а вообще проще делать видимо так
X++:
MenuFunction menuFunction;\
;
menuFunction= new MenuFunction(menuItemDisplayStr(Tabax), MenuItemType::Display);
menuFunction.run()
Это на сервере выполняется. Меню Функцион тут бесполезны
Старый 11.04.2014, 11:20   #4  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от michel1971 Посмотреть сообщение
В вашем случае думаю поможет
X++:
formRun.detach();
а вообще проще делать видимо так
X++:
MenuFunction menuFunction;\
;
menuFunction= new MenuFunction(menuItemDisplayStr(Tabax), MenuItemType::Display);
menuFunction.run()
formRun.detach(); не помогло, это не стандартная форма. Видимо вы не сталкивались с Tabax )))
Старый 11.04.2014, 11:35   #5  
michel1971 is offline
michel1971
Участник
 
78 / 78 (3) ++++
Регистрация: 14.01.2011
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
Это на сервере выполняется. Меню Функцион тут бесполезны
сделал ради интереса новый класс, как вы описали, под новую команду
перекрыл метод
X++:
void infoRun()
{
    MenuFunction menuFunction;

    super();

    menuFunction= new MenuFunction(menuItemDisplayStr(InventTable), MenuItemType::Display);
    menuFunction.run();
}
форма открылась. Tabax, не использую, не могу проверить.
Старый 11.04.2014, 11:40   #6  
michel1971 is offline
michel1971
Участник
 
78 / 78 (3) ++++
Регистрация: 14.01.2011
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
formRun.detach(); не помогло, это не стандартная форма. Видимо вы не сталкивались с Tabax )))
подсмотрел как табакс у нас тут запускается
X++:
TreeNode::findNode(@'\Forms\TabaxLite').AOTrun();
попробовал, запускается
За это сообщение автора поблагодарили: lev (5).
Старый 11.04.2014, 11:42   #7  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от michel1971 Посмотреть сообщение
сделал ради интереса новый класс, как вы описали, под новую команду
перекрыл метод
X++:
void infoRun()
{
    MenuFunction menuFunction;

    super();

    menuFunction= new MenuFunction(menuItemDisplayStr(InventTable), MenuItemType::Display);
    menuFunction.run();
}
форма открылась. Tabax, не использую, не могу проверить.
У вас клиент стоит?
Старый 11.04.2014, 11:44   #8  
michel1971 is offline
michel1971
Участник
 
78 / 78 (3) ++++
Регистрация: 14.01.2011
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
У вас клиент стоит?
Да клиент Ах 4.0
Старый 11.04.2014, 11:49   #9  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от michel1971 Посмотреть сообщение
Да клиент Ах 4.0
"Это на сервере выполняется. Меню Функцион тут бесполезны" видимо вы вот это не прочитали
Старый 11.04.2014, 12:03   #10  
michel1971 is offline
michel1971
Участник
 
78 / 78 (3) ++++
Регистрация: 14.01.2011
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
"Это на сервере выполняется. Меню Функцион тут бесполезны" видимо вы вот это не прочитали
зачем тогда Вы его тут используете (хотя и косвенно)?
напишите что-нибудь типа
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  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от 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  
lev is offline
lev
Ищущий знания...
Аватар для lev
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Регистрация: 18.01.2005
Адрес: Москва
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
Предложенный вами код, не работает, его я использовал первоначально. Что значит "зачем я это здесь использую?". Затем что мне нужно запустить при старте определенные окна.
Так Вам и написали, что можно написать, что бы форма открылась.
Примеры:
1. Хотим открыть справочник номенклатур, пишем:
X++:
TreeNode::findNode(@'\Forms\InventTable').AOTrun();
2. Хотим открыть заказы на продажу, пишем:
X++:
TreeNode::findNode(@'\Forms\SalesTable').AOTrun();
И т.д и т.п.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Старый 11.04.2014, 12:58   #13  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от lev Посмотреть сообщение
Так Вам и написали, что можно написать, что бы форма открылась.
Примеры:
1. Хотим открыть справочник номенклатур, пишем:
X++:
TreeNode::findNode(@'\Forms\InventTable').AOTrun();
2. Хотим открыть заказы на продажу, пишем:
X++:
TreeNode::findNode(@'\Forms\SalesTable').AOTrun();
И т.д и т.п.
так я и ответил, что предложенный варианта не работает. Что то непонятно? Да, "TreeNode::findNode(@'\Forms\SalesTable').AOTrun();" тоже игнорируется при старте
Старый 11.04.2014, 13:03   #14  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Напоминаю, что форму я запускаю через параметры запуска Аксапты. Наследник класса "SysStartupCmd". Все преложенные вами методы может и срабатывают в запущенной, когда вы делаете вызов вручную, но если их использовать в момент иницилизации Аксапты при запуске, то они не срабатывают
Старый 11.04.2014, 13:12   #15  
michel1971 is offline
michel1971
Участник
 
78 / 78 (3) ++++
Регистрация: 14.01.2011
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
Напоминаю, что форму я запускаю через параметры запуска Аксапты. Наследник класса "SysStartupCmd". Все преложенные вами методы может и срабатывают в запущенной, когда вы делаете вызов вручную, но если их использовать в момент иницилизации Аксапты при запуске, то они не срабатывают
еще раз....
делаем класс
X++:
class SysStartupCmdTabax extends SysStartupCmd
в нем метод
X++:
void infoRun()
{
    super();

    TreeNode::findNode(@'\Forms\TabaxLite').AOTrun();
}
в \Classes\SysStartupCmd\construct добавляем
X++:
            case 'tabax':
            sysStartupCmd = new SysStartupCmdTabax(s,parm);
            break;
в конфигурационной утилите в поле Command to run at application statup
пишем tabax.
Запускаме аксапту
Результат открытая форма TabaxLite
Старый 11.04.2014, 13:24   #16  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от michel1971 Посмотреть сообщение
еще раз....
делаем класс
X++:
class SysStartupCmdTabax extends SysStartupCmd
в нем метод
X++:
void infoRun()
{
    super();

    TreeNode::findNode(@'\Forms\TabaxLite').AOTrun();
}
в \Classes\SysStartupCmd\construct добавляем
X++:
            case 'tabax':
            sysStartupCmd = new SysStartupCmdTabax(s,parm);
            break;
в конфигурационной утилите в поле Command to run at application statup
пишем tabax.
Запускаме аксапту
Результат открытая форма TabaxLite
могу записать стрим видео. Если вы не верите. У меня Аксапта 3.0. И запуск я делаю через bat файл. Остальное , аналогично указанному вами коду. Не запускается ни табакс, ни какая либо другая форма.
Старый 11.04.2014, 13:45   #17  
michel1971 is offline
michel1971
Участник
 
78 / 78 (3) ++++
Регистрация: 14.01.2011
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
У меня Аксапта 3.0.
видимо это ключевое отличие. У меня работает всеми 3-мя описанными способами.
Старый 11.04.2014, 13:55   #18  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от michel1971 Посмотреть сообщение
видимо это ключевое отличие. У меня работает всеми 3-мя описанными способами.
печаль на мою голову =( Вот странность, вывод в инфо лог срабатывае, а вызов форм нет =(
Старый 11.04.2014, 14:33   #19  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Кому интересно, плюнул я и вписал вызов формы напрямую в класс Info. Работает =)
Старый 11.04.2014, 14:35   #20  
A_BAS is offline
A_BAS
Участник
Аватар для A_BAS
 
77 / 48 (2) +++
Регистрация: 19.04.2012
ключевое отличие здесь - серверный режим. На клиенте форма запускается. Запускать форму на AOS имхо бессмысленно.
Теги
sysstartupcmd

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Супер-утилита для запуска Dynamics AX Kabardian DAX: База знаний и проекты 7 16.01.2012 16:40
ax2009 demo vpc: полностью настроенная виртуальная машина со средствами разработки mazzy DAX: База знаний и проекты 76 27.12.2010 11:16
mazzy: Команды загрузки (Startup Command) в Dynamics AX4 Blog bot DAX Blogs 0 12.01.2009 20:05
mazzy: Команды загрузки (Startup Command) Blog bot DAX Blogs 0 30.12.2008 18:05
Минимальный пакет для разработки LTA DAX: Программирование 2 30.01.2003 14:04

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

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

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