26.11.2007, 14:28 | #1 |
Участник
|
Можно ли получить объект формы
Есть класс. Из него активируется метод clicked() одного из контролов формы А и в этом методе запускается форма В. Можно ли как то из класса получить объект формы В?
Большое спасибо! |
|
26.11.2007, 14:40 | #2 |
Участник
|
Извените, конечно, что очередной раз прошу обратиться к BestPractic's, но ваша проблемма решается именно им. Вы, хотя б с "кликеда" код снимите и перенесите на форму, если используется меню - вызовите его из кода своего класса.
|
|
26.11.2007, 14:44 | #3 |
SAP
|
Цитата:
Есть класс. Из него активируется метод clicked() одного из контролов формы А и в этом методе запускается форма В. Можно ли как то из класса получить объект формы В?
|
|
26.11.2007, 14:48 | #4 |
Участник
|
Все вы говорите правильно . Но дело вот в чем: есть некая трудоемкая операция,которая состоит из нескольких этапов:пользователь нажал одну кнопку,подождал час,потом вторую,еще час подождал,потом перешел на другую форму,запустил там необходимую операцию - еще часа 2 ждет и т.д. Вот захотелось сделать все эти действия автоматически в классе,чтобы потом в пакетном режиме это все запустить.И неохота переписывать коды всех кликедов контролов форм в класс,ибо надо выполнять много всяких действий...
|
|
26.11.2007, 14:51 | #5 |
Участник
|
to konopello
Класс запускает существующую форму А,которая ,в свою очередь,запускает форму В,так вот меня как раз и интересует форма В |
|
26.11.2007, 15:07 | #6 |
Участник
|
как последний вариант, infolog.parmLastActivatedForm().object()
но вообще действительно странно как-то - лучше переписать, иначе кто-то потом будет в коде этом копаться долго, пытаясь понять, что ж тут такое происходит |
|
|
За это сообщение автора поблагодарили: dreamer (1). |
26.11.2007, 15:21 | #7 |
Axapta
|
(мысль вслух) А можно глянуть, как работает модуль Benchmark... Ведь по сути - тоже самое, только там еще статистика собирается.
|
|
26.11.2007, 15:28 | #8 |
SAP
|
Цитата:
(мысль вслух) А можно глянуть, как работает модуль Banchmark... Ведь по сути - тоже самое, только там еще статистика собирается.
X++: // benchmark start if (BMMainControl::inAction()) salesEditLines.setTimeOut('CloseOK',10,true); // benchmark end |
|
26.11.2007, 16:03 | #9 |
Участник
|
Вижу два варианта:
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 |
SAP
|
Цитата:
1. повторить все действия пользователя программно (без форм). - оптимально
|
|