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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 31.03.2014, 13:58   #1  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Red face Вызов из MenuFunction и Form из кода?
Добрый день. Аксапта 3, все на сервере выполняется. Хочу сделать вызов формы заказов в другой компании и форму расчета доп.скидки, после копирования заказа из другой компании. В принципе я сделал, но не уверен что это не костыль. Потому что форма то - вызывается, но вещает в ожидание "родителя" форму(если убрать .wait то форма появляется и сразу закрывается). Что посоветуете гуру аксапты?
X++:
 appl.company("exp");

                salesTab = null;
                salesTab = SalesTable::find(num);
                info(curExt());
                args_ = new Args(formstr(SalesTable));
                args_.record(salesTab);

                formRun =classFactory.formRunClass(args_);// new MenuFunction(menuItemDisplayStr(SalesTable), MenuItemType::Display).create(args_);

                formRun.init();
                formRun.run();

                formRun.wait();
                formRun.detach();
P.S. В коде только вызов таблицы заказов. Вызов доп.функции еще не сделал.

Последний раз редактировалось АртемМелихов; 31.03.2014 в 14:00. Причина: память дырявая, уточнение
Старый 31.03.2014, 14:07   #2  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Если будете вызывать через ClassFactory - не сможете управлять правами для этой формы, помнится уважаемый mazzy писал об этом где-то.
А с помощью MenuFunction нормально ведь, по BP так нужно?
Старый 31.03.2014, 14:12   #3  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от user_ax Посмотреть сообщение
Если будете вызывать через ClassFactory - не сможете управлять правами для этой формы, помнится уважаемый mazzy писал об этом где-то.
А с помощью MenuFunction нормально ведь, по BP так нужно?
через MenuFunction не работает, пробывал. Ругается что переменная не определенна
Старый 31.03.2014, 14:22   #4  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от user_ax Посмотреть сообщение
Если будете вызывать через ClassFactory - не сможете управлять правами для этой формы, помнится уважаемый mazzy писал об этом где-то.
А с помощью MenuFunction нормально ведь, по BP так нужно?
вот к примеру:
X++:
  formRun.init();
                formRun.run();
                _args = new Args(formstr(vsn_ExtDisc_Processing_Dialog));
                _args.record(salesTab);
                menuExtDisc  = new menufunction(menuitemDisplayStr(vsn_ExtDisc_Processing_Dialog), menuitemtype::Display);
               
                menuExtDisc.run(_args);
                formRun.wait();
                formRun.detach();
добавил вызов функции для строки из вызванной формы. Форма вызывается, а функция даже не пытается запуститься. Тупо игнорируется без ошибок.
Старый 31.03.2014, 15:30   #5  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Вместо
X++:
appl.company("exp");
лучше
X++:
changecompany('exp')
{
    // Ваши директивы
}
Старый 31.03.2014, 15:35   #6  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Посмотрите дебагером что у вас в _args и formRun ?
Старый 31.03.2014, 16:03   #7  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от Cardagant Посмотреть сообщение
Вместо
X++:
appl.company("exp");
лучше
X++:
changecompany('exp')
{
    // Ваши директивы
}
у меня вызывается одна главная форма в другой компании, и две подчиненные. И пользователь должен иметь возможность закрыть, формы из старой компании и работать с теми, которые мы вызвали. Посему посчитал что лучше сделать так. Или важно только какая компания была активна при старте окна и функций?
Старый 31.03.2014, 16:37   #8  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Ещё раз :
У вас есть 2 компании. Находясь в компании1 вы открываете форму1
Переходя в компанию2, вы хотите чтобы форма1 осталась открыта и вызвать из неё форму2 и форму3 ?
Старый 31.03.2014, 16:47   #9  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от user_ax Посмотреть сообщение
Ещё раз :
У вас есть 2 компании. Находясь в компании1 вы открываете форму1
Переходя в компанию2, вы хотите чтобы форма1 осталась открыта и вызвать из неё форму2 и форму3 ?
нахожусь в компании1 в форме1. Запускаю процесс копирования записи из формы1 в компанию 2 и хочу в после копирования открыть форму1 в компании2 и еще пару дочерних окон для формы1 в компании2
Старый 31.03.2014, 16:52   #10  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
нахожусь в компании1 в форме1. Запускаю процесс копирования записи из формы1 в компанию 2 и хочу в после копирования открыть форму1 в компании2 и еще пару дочерних окон для формы1 в компании2
Открывайте формы нетекущей компании через
X++:
changecompany
Остальные открывайте обычно. Всё через менюайтемы, всё должно корректно отработать.
Старый 01.04.2014, 08:07   #11  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от Cardagant Посмотреть сообщение
Открывайте формы нетекущей компании через
X++:
changecompany
Остальные открывайте обычно. Всё через менюайтемы, всё должно корректно отработать.
еще раз говорю! Через меню не работает! НЕ РАБОТАЕТ!Вам стрим записать?
Старый 01.04.2014, 08:51   #12  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Появился такой вопрос:
Как в args положить caller? Учитывая то что нахожусь я в классе, а нужно в каллер положить SalesTable. Как получить ссылку на SalesTable в формате object?
Старый 01.04.2014, 09:50   #13  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
599 / 39 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
Появился такой вопрос:
Как в args положить caller? Учитывая то что нахожусь я в классе, а нужно в каллер положить SalesTable. Как получить ссылку на SalesTable в формате object?
Посмотрите эту тему С Формы в Класс

Как получить параметры в класс из формы, созданной классом.

Проблема с передачей контролов из формы в класс
За это сообщение автора поблагодарили: АртемМелихов (1).
Старый 01.04.2014, 10:07   #14  
Cardagant is offline
Cardagant
Участник
 
317 / 54 (2) ++++
Регистрация: 11.10.2011
Цитата:
Сообщение от АртемМелихов Посмотреть сообщение
еще раз говорю! Через меню не работает! НЕ РАБОТАЕТ!Вам стрим записать?
Да, да. Возможно, потому, что не учёл, что на сервере идёт выполнение, как указано в первом сообщении.
Теги
formrun, menifunction, trabla

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
setTimeOut() не работает в классе, если экземпляр класса создан через вызов MenuFunction AR® DAX: Программирование 10 22.05.2013 16:53
dynamicsaxtraining: Vendor returns Blog bot DAX Blogs 0 11.10.2012 00:11
dynamicsaxtraining: Sales Blog bot DAX Blogs 0 25.04.2012 03:18
dynamicsaxtraining: Paying a Vendor Blog bot DAX Blogs 0 22.03.2012 22:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25

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

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

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