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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.08.2020, 14:09   #1  
oleggy is offline
oleggy
Участник
 
270 / 36 (2) +++
Регистрация: 03.12.2019
Адрес: Россия
DAX2009 Операнд для функции не является элементом
Всем привет.
Подскажите не могу разобратся. При реализации класса импорта из excel в строки не могу разобраться в чем причина ошибки в реализации метода dialog
X++:
class MyImportFromExcel extends RunBase
{
...
}
...
protected Object dialog(DialogRunbase _dialog, boolean _forceOnClient)
{
    FormRun dialogForm;
    Args    args = new Args(formstr(MyImportFromExcel)); // ошибка: Операнд для функции не является элементом.
    ;

    args.caller(this);

    dialogForm = classFactory.formRunClass(args);
    dialogForm.init();

    return dialogForm;
}
...


Причем есть аналогичный реализованный класс для импорта в такую же таблицу строк в котором в указан соответственно свой класс импорта в методе dialog:
X++:
protected Object dialog(DialogRunbase _dialog, boolean _forceOnClient)
{
    FormRun dialogForm;
    Args    args = new Args(formstr(OtherImportFromExcel)); // ошибки нет
    ;

    args.caller(this);

    dialogForm = classFactory.formRunClass(args);
    dialogForm.init();

    return dialogForm;
}

том классе при компиляции ошибки нет.

Причем если я в своем классе меняю вот тут на OtherImportFromExcel:

X++:
protected Object dialog(DialogRunbase _dialog, boolean _forceOnClient)
{
    FormRun dialogForm;
    Args    args = new Args(formstr(OtherImportFromExcel)); // ошибка пропадает
    ;

    args.caller(this);

    dialogForm = classFactory.formRunClass(args);
    dialogForm.init();

    return dialogForm;
}
...

ошибка пропадает..
Может есть какой то нюанс? Подскажите.

Последний раз редактировалось oleggy; 29.08.2020 в 14:45.
Старый 29.08.2020, 14:56   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1293 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Класс тут вообще не имеет отношения к проблеме.
Метод formstr(...) дает наименование формы с поверкой того, что это именно форма, заданная в AOT.
То есть Ваше formstr(MyImportFromExcel) ждет, что MyImportFromExcel это именно форма и совершенно справедливо дает ошибку при условии, что формы с таким наименованием в AOT нет. А вот formstr(OtherImportFromExcel) проходит, потому что форма OtherImportFromExcel есть.
PS: вообще достаточно странный способ использования dialog в наследнике RunBase. Посмотрите класс Tutorial_RunbaseForm в качестве примера использования формы в наследнике RunBase.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX 2012 R2: ошибка в функции "Операции для аналитик" Kabardian DAX: Функционал 2 09.04.2014 23:56
DAX2009 не дружит с VS2010 oleg_e DAX: Администрирование 2 17.06.2010 10:34
Вопросы по OLAP в DAX2009 oleg_e DAX: Функционал 9 10.12.2008 02:02
Аргументы функции Eldar9x DAX: Программирование 1 22.11.2006 22:49
Вызов экспортируемой функции DLL Jabberwocky DAX: Программирование 8 12.09.2006 17:20

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

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

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