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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 26.11.2007, 14:28   #1  
dreamer is offline
dreamer
Участник
Аватар для dreamer
 
53 / 15 (1) ++
Регистрация: 18.01.2007
Адрес: Киев
Можно ли получить объект формы
Есть класс. Из него активируется метод clicked() одного из контролов формы А и в этом методе запускается форма В. Можно ли как то из класса получить объект формы В?
Большое спасибо!
Старый 26.11.2007, 14:40   #2  
dns is offline
dns
Участник
 
19 / 13 (1) ++
Регистрация: 11.05.2007
Извените, конечно, что очередной раз прошу обратиться к BestPractic's, но ваша проблемма решается именно им. Вы, хотя б с "кликеда" код снимите и перенесите на форму, если используется меню - вызовите его из кода своего класса.
Старый 26.11.2007, 14:44   #3  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
Есть класс. Из него активируется метод clicked() одного из контролов формы А и в этом методе запускается форма В. Можно ли как то из класса получить объект формы В?
К примеру, мне суть вопроса не ясна...... если класс запускает форму, зачем получать объект формы, он и так имеется, если класс создает форму....
Старый 26.11.2007, 14:48   #4  
dreamer is offline
dreamer
Участник
Аватар для dreamer
 
53 / 15 (1) ++
Регистрация: 18.01.2007
Адрес: Киев
Все вы говорите правильно . Но дело вот в чем: есть некая трудоемкая операция,которая состоит из нескольких этапов:пользователь нажал одну кнопку,подождал час,потом вторую,еще час подождал,потом перешел на другую форму,запустил там необходимую операцию - еще часа 2 ждет и т.д. Вот захотелось сделать все эти действия автоматически в классе,чтобы потом в пакетном режиме это все запустить.И неохота переписывать коды всех кликедов контролов форм в класс,ибо надо выполнять много всяких действий...
Старый 26.11.2007, 14:51   #5  
dreamer is offline
dreamer
Участник
Аватар для dreamer
 
53 / 15 (1) ++
Регистрация: 18.01.2007
Адрес: Киев
to konopello

Класс запускает существующую форму А,которая ,в свою очередь,запускает форму В,так вот меня как раз и интересует форма В
Старый 26.11.2007, 15:07   #6  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
как последний вариант, infolog.parmLastActivatedForm().object()
но вообще действительно странно как-то - лучше переписать, иначе кто-то потом будет в коде этом копаться долго, пытаясь понять, что ж тут такое происходит
За это сообщение автора поблагодарили: dreamer (1).
Старый 26.11.2007, 15:21   #7  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Регистрация: 28.11.2005
Записей в блоге: 1
(мысль вслух) А можно глянуть, как работает модуль Benchmark... Ведь по сути - тоже самое, только там еще статистика собирается.
Старый 26.11.2007, 15:28   #8  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
(мысль вслух) А можно глянуть, как работает модуль Banchmark... Ведь по сути - тоже самое, только там еще статистика собирается.
Подерживаю, в таком случае вам необходимо смотреть семейство классов которое начинается с префикса BM..... , к примеру в классе \Classes\SalesFormLetter\dialog есть такой код
X++:
// benchmark start
    if (BMMainControl::inAction())
        salesEditLines.setTimeOut('CloseOK',10,true);
    // benchmark end
Старый 26.11.2007, 16:03   #9  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Регистрация: 06.07.2006
Адрес: Melbourne, Down Under
Вижу два варианта:
1. повторить все действия пользователя программно (без форм). - оптимально
2. повторить все действия через "клики" (с формами).

Отвлекаясь от темы - модуль BM предлагает тестировать как раз в таких режимах (и цифры "SO per min" совсем разные в этих случаях......).

Возможно имеет смысл посмотреть, что происходит по clicked() и повторить тоже в классе - тогда обьект 2й формы будет ваш. Это не очень хорошо - будет дублирование кода.

Смотрите классы BMScopeSalesOrderDisplay (SO с формами) и BMScopeSalesOrderBatch (без).
__________________
AxAssist 2012 - Productivity Tool for Dynamics AX 2012/2009/4.0/3.0
Старый 26.11.2007, 17:58   #10  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Регистрация: 08.11.2005
Адрес: Минск
Цитата:
1. повторить все действия пользователя программно (без форм). - оптимально
на самом деле я бы скорей всего сделал именно так, а насчет дублирования кода, то всю логику необходимо выносить в классы, не будет тогда ни какого дублирования.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Зачем 2 формы транспортировки паллет и 2 формы маршрутов комплектации? twilight DAX: Функционал 2 15.02.2008 11:24
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Каким образом можно получить значение поля, зная fieldId? Lemming DAX: Программирование 10 19.06.2006 12:25
Можно ли программно заблокировать объект в АОТ? MaratRZ DAX: Программирование 1 16.03.2005 09:19
Как получить доступ к текущей строке в DataSource формы Maxim Gorbunov DAX: База знаний и проекты 0 28.11.2001 13:46

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

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

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