AXForum  
Go Back   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Forgotten Your Password?
Register Forum Rules FAQ Members List Today's Posts Search

 
 
Thread Tools Search this Thread Display Modes
Old 11.04.2014, 10:58   #1  
АртемМелихов is offline
АртемМелихов
Участник
АртемМелихов's Avatar
 
120 / 10 (1) +
Join Date: 18.12.2013
Location: 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: при запуске не выводиться только последний инфолог, ну и форма не запускается. Пробовал этот же код в джобе, все ок - форма открылась

Last edited by АртемМелихов; 11.04.2014 at 11:00. Reason: наадо
Old 11.04.2014, 11:11   #2  
michel1971 is offline
michel1971
Участник
 
79 / 80 (3) ++++
Join Date: 14.01.2011
В вашем случае думаю поможет
X++:
formRun.detach();
а вообще проще делать видимо так
X++:
MenuFunction menuFunction;\
;
menuFunction= new MenuFunction(menuItemDisplayStr(Tabax), MenuItemType::Display);
menuFunction.run()
Old 11.04.2014, 11:18   #3  
АртемМелихов is offline
АртемМелихов
Участник
АртемМелихов's Avatar
 
120 / 10 (1) +
Join Date: 18.12.2013
Location: Samara
Quote:
Originally Posted by michel1971 View Post
В вашем случае думаю поможет
X++:
formRun.detach();
а вообще проще делать видимо так
X++:
MenuFunction menuFunction;\
;
menuFunction= new MenuFunction(menuItemDisplayStr(Tabax), MenuItemType::Display);
menuFunction.run()
Это на сервере выполняется. Меню Функцион тут бесполезны
Old 11.04.2014, 11:20   #4  
АртемМелихов is offline
АртемМелихов
Участник
АртемМелихов's Avatar
 
120 / 10 (1) +
Join Date: 18.12.2013
Location: Samara
Quote:
Originally Posted by michel1971 View Post
В вашем случае думаю поможет
X++:
formRun.detach();
а вообще проще делать видимо так
X++:
MenuFunction menuFunction;\
;
menuFunction= new MenuFunction(menuItemDisplayStr(Tabax), MenuItemType::Display);
menuFunction.run()
formRun.detach(); не помогло, это не стандартная форма. Видимо вы не сталкивались с Tabax )))
Old 11.04.2014, 11:35   #5  
michel1971 is offline
michel1971
Участник
 
79 / 80 (3) ++++
Join Date: 14.01.2011
Quote:
Originally Posted by АртемМелихов View Post
Это на сервере выполняется. Меню Функцион тут бесполезны
сделал ради интереса новый класс, как вы описали, под новую команду
перекрыл метод
X++:
void infoRun()
{
    MenuFunction menuFunction;

    super();

    menuFunction= new MenuFunction(menuItemDisplayStr(InventTable), MenuItemType::Display);
    menuFunction.run();
}
форма открылась. Tabax, не использую, не могу проверить.
Old 11.04.2014, 11:40   #6  
michel1971 is offline
michel1971
Участник
 
79 / 80 (3) ++++
Join Date: 14.01.2011
Quote:
Originally Posted by АртемМелихов View Post
formRun.detach(); не помогло, это не стандартная форма. Видимо вы не сталкивались с Tabax )))
подсмотрел как табакс у нас тут запускается
X++:
TreeNode::findNode(@'\Forms\TabaxLite').AOTrun();
попробовал, запускается
This post has been rated by: lev (5).
Old 11.04.2014, 11:42   #7  
АртемМелихов is offline
АртемМелихов
Участник
АртемМелихов's Avatar
 
120 / 10 (1) +
Join Date: 18.12.2013
Location: Samara
Quote:
Originally Posted by michel1971 View Post
сделал ради интереса новый класс, как вы описали, под новую команду
перекрыл метод
X++:
void infoRun()
{
    MenuFunction menuFunction;

    super();

    menuFunction= new MenuFunction(menuItemDisplayStr(InventTable), MenuItemType::Display);
    menuFunction.run();
}
форма открылась. Tabax, не использую, не могу проверить.
У вас клиент стоит?
Old 11.04.2014, 11:44   #8  
michel1971 is offline
michel1971
Участник
 
79 / 80 (3) ++++
Join Date: 14.01.2011
Quote:
Originally Posted by АртемМелихов View Post
У вас клиент стоит?
Да клиент Ах 4.0
Old 11.04.2014, 11:49   #9  
АртемМелихов is offline
АртемМелихов
Участник
АртемМелихов's Avatar
 
120 / 10 (1) +
Join Date: 18.12.2013
Location: Samara
Quote:
Originally Posted by michel1971 View Post
Да клиент Ах 4.0
"Это на сервере выполняется. Меню Функцион тут бесполезны" видимо вы вот это не прочитали
Old 11.04.2014, 12:03   #10  
michel1971 is offline
michel1971
Участник
 
79 / 80 (3) ++++
Join Date: 14.01.2011
Quote:
Originally Posted by АртемМелихов View Post
"Это на сервере выполняется. Меню Функцион тут бесполезны" видимо вы вот это не прочитали
зачем тогда Вы его тут используете (хотя и косвенно)?
напишите что-нибудь типа
X++:
        args = new args(formstr(TabaxLite));
        args.caller(this);
        formrun = ClassFactory::formRunClassOnClient(args);
        formrun.init();
        formrun.run();
        formrun.detach();
четсно говоря не понял что вы имеете под фразой "на сервере". В двухуровневой системе?

Last edited by michel1971; 11.04.2014 at 12:13.
Old 11.04.2014, 12:17   #11  
АртемМелихов is offline
АртемМелихов
Участник
АртемМелихов's Avatar
 
120 / 10 (1) +
Join Date: 18.12.2013
Location: Samara
Quote:
Originally Posted by michel1971 View Post
зачем тогда Вы его тут используете (хотя и косвенно)?
напишите что-нибудь типа
X++:
        args = new args(formstr(TabaxLite));
        args.caller(this);
        formrun = ClassFactory::formRunClassOnClient(args);
        formrun.init();
        formrun.run();
        formrun.detach();
четсно говоря не понял что вы имеете под фразой "на сервере". В двухуровневой системе?
Предложенный вами код, не работает, его я использовал первоначально. Что значит "зачем я это здесь использую?". Затем что мне нужно запустить при старте определенные окна.
Old 11.04.2014, 12:36   #12  
lev is offline
lev
Ищущий знания...
lev's Avatar
Oracle
MCBMSS
Axapta Retail User
 
1,723 / 491 (20) +++++++
Join Date: 18.01.2005
Location: Москва
Quote:
Originally Posted by АртемМелихов View Post
Предложенный вами код, не работает, его я использовал первоначально. Что значит "зачем я это здесь использую?". Затем что мне нужно запустить при старте определенные окна.
Так Вам и написали, что можно написать, что бы форма открылась.
Примеры:
1. Хотим открыть справочник номенклатур, пишем:
X++:
TreeNode::findNode(@'\Forms\InventTable').AOTrun();
2. Хотим открыть заказы на продажу, пишем:
X++:
TreeNode::findNode(@'\Forms\SalesTable').AOTrun();
И т.д и т.п.
__________________
"Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с)
С Уважением,
Елизаров Артем
Old 11.04.2014, 12:58   #13  
АртемМелихов is offline
АртемМелихов
Участник
АртемМелихов's Avatar
 
120 / 10 (1) +
Join Date: 18.12.2013
Location: Samara
Quote:
Originally Posted by lev View Post
Так Вам и написали, что можно написать, что бы форма открылась.
Примеры:
1. Хотим открыть справочник номенклатур, пишем:
X++:
TreeNode::findNode(@'\Forms\InventTable').AOTrun();
2. Хотим открыть заказы на продажу, пишем:
X++:
TreeNode::findNode(@'\Forms\SalesTable').AOTrun();
И т.д и т.п.
так я и ответил, что предложенный варианта не работает. Что то непонятно? Да, "TreeNode::findNode(@'\Forms\SalesTable').AOTrun();" тоже игнорируется при старте
Old 11.04.2014, 13:03   #14  
АртемМелихов is offline
АртемМелихов
Участник
АртемМелихов's Avatar
 
120 / 10 (1) +
Join Date: 18.12.2013
Location: Samara
Напоминаю, что форму я запускаю через параметры запуска Аксапты. Наследник класса "SysStartupCmd". Все преложенные вами методы может и срабатывают в запущенной, когда вы делаете вызов вручную, но если их использовать в момент иницилизации Аксапты при запуске, то они не срабатывают
Old 11.04.2014, 13:12   #15  
michel1971 is offline
michel1971
Участник
 
79 / 80 (3) ++++
Join Date: 14.01.2011
Quote:
Originally Posted by АртемМелихов View Post
Напоминаю, что форму я запускаю через параметры запуска Аксапты. Наследник класса "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
Old 11.04.2014, 13:24   #16  
АртемМелихов is offline
АртемМелихов
Участник
АртемМелихов's Avatar
 
120 / 10 (1) +
Join Date: 18.12.2013
Location: Samara
Quote:
Originally Posted by michel1971 View Post
еще раз....
делаем класс
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 файл. Остальное , аналогично указанному вами коду. Не запускается ни табакс, ни какая либо другая форма.
Old 11.04.2014, 13:45   #17  
michel1971 is offline
michel1971
Участник
 
79 / 80 (3) ++++
Join Date: 14.01.2011
Quote:
Originally Posted by АртемМелихов View Post
У меня Аксапта 3.0.
видимо это ключевое отличие. У меня работает всеми 3-мя описанными способами.
Old 11.04.2014, 13:55   #18  
АртемМелихов is offline
АртемМелихов
Участник
АртемМелихов's Avatar
 
120 / 10 (1) +
Join Date: 18.12.2013
Location: Samara
Quote:
Originally Posted by michel1971 View Post
видимо это ключевое отличие. У меня работает всеми 3-мя описанными способами.
печаль на мою голову =( Вот странность, вывод в инфо лог срабатывае, а вызов форм нет =(
Old 11.04.2014, 14:33   #19  
АртемМелихов is offline
АртемМелихов
Участник
АртемМелихов's Avatar
 
120 / 10 (1) +
Join Date: 18.12.2013
Location: Samara
Кому интересно, плюнул я и вписал вызов формы напрямую в класс Info. Работает =)
Old 11.04.2014, 14:35   #20  
A_BAS is offline
A_BAS
Участник
A_BAS's Avatar
 
77 / 48 (2) +++
Join Date: 19.04.2012
ключевое отличие здесь - серверный режим. На клиенте форма запускается. Запускать форму на AOS имхо бессмысленно.
Tags
sysstartupcmd

 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Супер-утилита для запуска 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

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Рейтинг@Mail.ru
All times are GMT +3. The time now is 11:25.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.