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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.06.2004, 13:25   #1  
if_maks is offline
if_maks
Участник
 
226 / 15 (1) ++
Регистрация: 26.08.2003
? Object - form, Class...?
Добрый день!
Есть element.args().caller() - возвращает Object
Есть перечислимый тип MenuItemClass
который имеет значения: Class, Form, Job, Query, Report и т.д.
(Перечисление открывается в каждом MenuItem свойства, поле Class)
так вот в зависимости от Object нужно задать значение MenuItemClass
т.е. Object это форма отчет или класс... - как определить?

Заранее Спасибо!
Старый 10.06.2004, 13:42   #2  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
SysDictClass::isEqualOrSuperclass(classIdGet(obj),classnum(...))
Старый 10.06.2004, 14:11   #3  
ahtoh
Гость
 
n/a
если (classIdGet(element.args().caller()) == classNum(FormRun)) - значит форма
ReportRun - отчет, и.т.д
Старый 10.06.2004, 14:44   #4  
Rokhay is offline
Rokhay
Участник
 
154 / 15 (1) ++
Регистрация: 02.10.2003
Адрес: Ебург
Цитата:
Изначально опубликовано ahtoh
если (classIdGet(element.args().caller()) == classNum(FormRun)) - значит форма
ReportRun - отчет, и.т.д
форма не обязательно должна быть создана при помощи класса FormRun. Могут быть и другие (напр SysFormRun).
так что такой способ не годится.
Правильней проверять является ли данный класс потомком FormRun.
как уже и было написано ранее
Старый 10.06.2004, 16:38   #5  
if_maks is offline
if_maks
Участник
 
226 / 15 (1) ++
Регистрация: 26.08.2003
Господа большое спасибо за ответы!

проблема следующего характера на самом деле:
с формами все просто...
Из меню запускается отчет -> появляется форма Dialog, причем независимо от того был из MenuItem вызван непосредственно Report или Class
Нужно отпределить объект который вызвало меню
т.е. либо это отчет либо класс (ограничимся только этим)
конечно дастать бы само меню и все тогда отчлично, но как это сделать...?
попробуйте правой кнопкой мыши \ настройки \ это диалог (речь идет об отчетах)
я могу получить FormRun, затем:
object = formRun.args().caller(); // - это DialogRunBase - вызывающий объект
object = object.caller(); // это уже наследник от RunBaseReport - в нем вся и загвоздка - толи его вызвал menuitem толи отчет

Если немного сумберно прошу заранее прощения и заранее так же спасибо!
Старый 10.06.2004, 16:56   #6  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,490 / 1060 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Сделайте несколько Menuitems с разными параметрами и проверяйте эти параметры.
Старый 10.06.2004, 17:09   #7  
if_maks is offline
if_maks
Участник
 
226 / 15 (1) ++
Регистрация: 26.08.2003
Еще раз:
Допустим запустили из меню класс, класс запустил форму,
у меня есть FormRun.
Я хочу узнать что запучтило меню - класс или форму?

2raz:
я не делаю меню - они уже существуют, вообще прочитайте все сначала что бы понять вопрос и очем вообще речь - затем пишите ответ.

Спасибо!
Старый 10.06.2004, 18:22   #8  
ahtoh
Гость
 
n/a
не знаю, что тебе надо, но полюбому ты как то не хорошо это делаешь.
если у тебя отчет должен вести себя по разному (в зависимости от того, откуда его вызвали) - то передавай это ему через args.parmEnum(), а в классе этот параметр ты можешь инициализировать, перекрыв метод initReportRun()
Старый 10.06.2004, 19:14   #9  
if_maks is offline
if_maks
Участник
 
226 / 15 (1) ++
Регистрация: 26.08.2003
Тут дело даже не доходит до запуска самого отчета - это и не нужно мне
Я решаю совершенно другую задачу:
попробую объяснить "с другого конца" - более глубоко
Из пункта меню вызывается некий объект (Форма, отчет, Job ...)
1. Допустим некий пункт меню вызывает некую форму, тогда formRun а именно
formRun.args().MenuItemName() - вернет имя пункта меню - отлично!
Естественно заведомо яне знаю какой пункт меню запустит юзер и какой объект будет запущен..
2. Тперь сложнее, допустим некий пункт меню вызавает класс, класс затем запускает некую форму. я вижу форму dialog
Если по активации пункта меню сработал отчет я также вижу форму dialog
итак в моих руках dialog и не более того
т.е.
2.1. либо: MenuItem -> Class (extends RunBaseReport)-> Dialog
2.2. либо: MenuItem -> Class (скажем RunbaseReportStd) -> Dialog
но
в 2.1 в menuItem свойство Class = Class
а в 2.2 в menuItem свойство Class = Report
цель моя получить как раз это menuItem или свойства MenuItemName и MenuItemType этого menuItem
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: RunBaseBatch Blog bot DAX Blogs 0 04.04.2009 22:05
palleagermark: Shortcut to the query object of a form data source Blog bot DAX Blogs 1 07.01.2009 18:33
Kashperuk Ivan: List panels in Dynaics AX - a short description of SysListPanel class Blog bot DAX Blogs 1 21.10.2007 22:51
Kashperuk Ivan: Description of ClassBuild class:Today I want to ... Blog bot DAX Blogs 0 26.01.2007 05:51
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:53.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.