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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.10.2004, 15:49   #1  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
MenuItem
Добрый День!

Подскажите, как из объекта вытащить имя вызвавшего его MenuItema и параметры?
Старый 30.10.2004, 15:55   #2  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
this.args().parmEnum();

Желательно перед получением сделать проверочку
if (this.args().parmEnumType() != enumnum(My_Enum))

С Уважением,
Георгий
Старый 30.10.2004, 17:28   #3  
Александр Костоусов is offline
Александр Костоусов
drc
 
97 / 10 (1) +
Регистрация: 18.08.2004
Ситуация такая -- класс вызывается MenuItem-ом, и создает отчет. Так вот в отчете немогу выловить menuItem!
Старый 30.10.2004, 17:51   #4  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
1) Отчет можно вызвать, при этом передав в виде переметра Enum:
PHP код:
    Args                            parameters = new Args();
    
ReportRun                       report;
    ;

            
parameters.name(reportstr(MyReportName));
            
parameters.caller(this);
            
parameters.record(Record);
            
parameters.parmEnumType(enumnum(MyEnum));
            
parameters.parmEnum(MyEnum::Value);
            
report = new ReportRun(parameters);
            
report.run(); 
2) Обычно такие отчеты содержат в себе переменную - экземпляр вызвавшего её класса. Напишите метод - пересылку и проверку к ней.
PHP код:
enumnum parmCallerEnumNum()
{
   return 
this.args().parmEnumType()
}

и 

Myenum parmMyEnum
()
{
   return 
this.args().parmEnum()

.. где -нибуть в init, после присвоения переменной класа попробуйте
PHP код:
MyClass   callerClass;
MyEnum   emum;

    if (
classIdGet(this.args().caller()) != classnum(MyClass))
            throw 
error("@SYS73002");

    
callerClass this.args().caller();

    if (
calerClass.parmCallerEnumNum != enumnum(MyEnum))
        throw 
error("@SYS73002");

    
enum calerClass.parmMyEnum() 
первый метод более простой и более грамотный. Однако он действует, если отчет вызывается явно. Иначе попробуйте способ №2.

С Уважением,
Георгий
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Чем используется MenuItem miklenew DAX: База знаний и проекты 15 19.03.2008 14:24
MenuItemButton и Action->MenuItem madproger DAX: Программирование 7 14.02.2007 10:57
menuitem Natasha DAX: Программирование 2 11.02.2005 10:52
Как поменять тип MenuItem с Display на Action SergeyA DAX: Программирование 5 12.02.2004 10:45
Запуск MenuItem Rem DAX: Программирование 1 18.07.2002 12:23

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

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

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