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

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

Класс запускает существующую форму А,которая ,в свою очередь,запускает форму В,так вот меня как раз и интересует форма В
Old 26.11.2007, 15:07   #6  
kashperuk is offline
kashperuk
Участник
kashperuk's Avatar
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Join Date: 30.05.2004
Location: Atlanta, GA, USA
как последний вариант, infolog.parmLastActivatedForm().object()
но вообще действительно странно как-то - лучше переписать, иначе кто-то потом будет в коде этом копаться долго, пытаясь понять, что ж тут такое происходит
This post has been rated by: dreamer (1).
Old 26.11.2007, 15:21   #7  
oip is offline
oip
Axapta
Лучший по профессии 2014
 
2,564 / 1416 (53) ++++++++
Join Date: 28.11.2005
Blog Entries: 1
(мысль вслух) А можно глянуть, как работает модуль Benchmark... Ведь по сути - тоже самое, только там еще статистика собирается.
Old 26.11.2007, 15:28   #8  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Join Date: 08.11.2005
Location: Минск
Quote:
(мысль вслух) А можно глянуть, как работает модуль Banchmark... Ведь по сути - тоже самое, только там еще статистика собирается.
Подерживаю, в таком случае вам необходимо смотреть семейство классов которое начинается с префикса BM..... , к примеру в классе \Classes\SalesFormLetter\dialog есть такой код
X++:
// benchmark start
    if (BMMainControl::inAction())
        salesEditLines.setTimeOut('CloseOK',10,true);
    // benchmark end
Old 26.11.2007, 16:03   #9  
Alex_KD is offline
Alex_KD
Участник
AxAssist
MCBMSS
Соотечественники
 
522 / 362 (14) ++++++
Join Date: 06.07.2006
Location: 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
Old 26.11.2007, 17:58   #10  
konopello is offline
konopello
SAP
SAP
 
628 / 76 (4) ++++
Join Date: 08.11.2005
Location: Минск
Quote:
1. повторить все действия пользователя программно (без форм). - оптимально
на самом деле я бы скорей всего сделал именно так, а насчет дублирования кода, то всю логику необходимо выносить в классы, не будет тогда ни какого дублирования.
 

Similar Threads
Thread Thread Starter Forum Replies Last Post
Зачем 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

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 17:30.
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Contacts E-mail, Advertising.