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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.09.2014, 11:21   #1  
yuriy_64 is offline
yuriy_64
Участник
 
88 / 10 (1) +
Регистрация: 21.03.2014
? Отловить действия
НАРООООООД, хелп
Ситуация такая: Существует класс, который добавляет кнопку на другую форму. По этой кнопке запускается еще одна форма, в которой проставляются галочки и по завершении нажимается кнопка выхода. Вопрос такой, как в классе отловить закрытие второй формы?
Старый 11.09.2014, 11:31   #2  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
На закрытии формы вызвать метод в классе. По другому - никак .
Старый 11.09.2014, 11:52   #3  
yuriy_64 is offline
yuriy_64
Участник
 
88 / 10 (1) +
Регистрация: 21.03.2014
Может я чего то не догоняю. Пишу поподробнее:
в своем классе запускаю форму через fr = new formRun (Args). До метода fr.Init, цепляю на эту форму кнопку с вызовом другой формы через menuItem. Далее по идее идет fr.run b fr.wait. Вот после этого я могу отловить только закрытие первой формы. Писать методы в другие формы не хотелось бы. Печалька.
Старый 11.09.2014, 12:13   #4  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
А кто мешает пользователю закрыть форму №1 не закрыв форму №2 ?
Как-то все неоч выглядит

Последний раз редактировалось skuull; 11.09.2014 в 12:28.
Старый 11.09.2014, 12:15   #5  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Попробуйте для начала отловить открытие второй формы. А то сейчас получается что она сама открывается и вы про неё ничего не знаете.
Старый 11.09.2014, 12:34   #6  
yuriy_64 is offline
yuriy_64
Участник
 
88 / 10 (1) +
Регистрация: 21.03.2014
skuull Все в руках юзера.
S.Kuskov По моему, все дело в написании кнопки. Может использовать другой способ открывания формы?
Цитата:
fr = new FormRun(args);
btn = fr.form().addControl(FormControlType::MenuFunctionButton,'MyBut');
btn.skip(false);
btn.defaultButton(true);
btn.text('Копировать в магазины');
btn.menuItemType(MenuItemType:isplay);
btn.menuItemName('Form2');

fr.init();
fr.run();
fr.wait();
Старый 11.09.2014, 13:32   #7  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Угу. Запуском второй формы придется управлять вручную. Для этого нужно будет перекрывать метод у динамически создаваемой кнопки. Пример есть здесь Создание формы в рантайме: прикрепить кнопку с МЕТОДОМ clicked

P.S.: На всякий случай напишу что такие приемы разработки не является естественными для Аксапты. Обычно кнопки и методы стараются создавать явно, а не в момент выполнения.
Старый 12.09.2014, 06:40   #8  
yuriy_64 is offline
yuriy_64
Участник
 
88 / 10 (1) +
Регистрация: 21.03.2014
Цитата:
P.S.: На всякий случай напишу что такие приемы разработки не является естественными для Аксапты. Обычно кнопки и методы стараются создавать явно, а не в момент выполнения.
Согласен. Но форма чужая, вносить что то на века, полагаю, не целесообразно. Хотя, на формах много кнопок, которые не всегда используются. Попробую пойти таким путем. Спасибо.
Старый 12.09.2014, 08:49   #9  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Я тут подумал, если все же соберетесь создавать кнопку динамически, то лучше будет не метод у неё перекрывать, а просто нацелить menuitem кнопки на свой класс обработчик, в котором уже будет находиться код вызова второй формы.
Старый 12.09.2014, 12:13   #10  
yuriy_64 is offline
yuriy_64
Участник
 
88 / 10 (1) +
Регистрация: 21.03.2014
А примерчик можно? У меня по коду
Цитата:
btn = fr.form().addControl(FormControlType::MenuFunctionButton,'AddBut');
btn.skip(false);
btn.defaultButton(true);
btn.text('Копировать в магазины');
btn.menuItemType(MenuItemType:isplay);
btn.menuItemName('MyMenuItem');
создается кнопка. Думал, что можно метод AddBut_clicked() как то вытащить, Но кнопка нажималась, а действий - никаких.
Старый 12.09.2014, 12:45   #11  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от yuriy_64 Посмотреть сообщение
А примерчик можно? У меня по коду

создается кнопка. Думал, что можно метод AddBut_clicked() как то вытащить, Но кнопка нажималась, а действий - никаких.
С помощью controlMethodOverloadObject() можно указать ваш класс как обработчик событий на форме
Старый 12.09.2014, 13:02   #12  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Рекомендую воспользоваться этим советом. Процитирую себя.
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
нацелить menuitem кнопки на свой класс обработчик, в котором уже будет находиться код вызова второй формы.
Для этого не нужно перекрывать методы. нужно просто заменить в вашем примере
X++:
//btn.menuItemType(MenuItemType:: Display);
//btn.menuItemName('Form2');
btn.menuItemType(MenuItemType::Action);
btn.menuItemName('myClass2');
При нажатии пользователем кнопки управление получит статический метод main указанного класса.
Старый 12.09.2014, 14:31   #13  
skuull is offline
skuull
Участник
Most Valuable Professional
Лучший по профессии 2014
 
700 / 752 (27) +++++++
Регистрация: 08.03.2013
Адрес: ХЗ
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
Рекомендую воспользоваться этим советом. Процитирую себя.

Для этого не нужно перекрывать методы. нужно просто заменить в вашем примере
X++:
//btn.menuItemType(MenuItemType:: Display);
//btn.menuItemName('Form2');
btn.menuItemType(MenuItemType::Action);
btn.menuItemName('myClass2');
При нажатии пользователем кнопки управление получит статический метод main указанного класса.
X++:
btn.menuItemType(MenuItemType::Action);
btn.menuItemName(menuItemActionStr(myClass2));
За это сообщение автора поблагодарили: S.Kuskov (1), yuriy_64 (1).
Теги
отловить действия

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отловить событие из виртуальной кнопки yuriy_64 DAX: Программирование 3 18.07.2014 14:28
Действия при открытии "накладная" user_ax DAX: Программирование 7 03.04.2013 11:08
Ax2009 Workflow. Действия -> Просмотр журнала Poleax DAX: Программирование 2 25.05.2011 12:23
либо никто не пользует эти чертовы действия... sparur DAX: Функционал 13 08.02.2008 13:11
Поле "Срок действия" на таблице партий sev DAX: Функционал 2 14.04.2006 11:09

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

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

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