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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.05.2013, 15:06   #1  
IvanS is offline
IvanS
Участник
Аватар для IvanS
 
241 / 44 (2) +++
Регистрация: 30.06.2006
Адрес: Екатеринбург
Хочу добавить свои 5 копеек по этому поводу.
Данный Pack,unpack хорошо работает только если передается в args.record строка. А если нужно, чтобы открывалась форма и находила нужную запись, то есть использовались параметры lookupField и lookValue, то выдается ошибка "Неправильный тип элемента в вызове ConIns";
Поэтому данные значения перенес в CurrentList и все стало работать.
Выглядит это так:
X++:
class SysInfoAction_MenuItemRun_RU extends SysInfoAction
{
    MenuItemType    menuItemType;
    MenuItemName    menuItemName;
    Args            args;
    FieldId         loockupField;
    str             lookupValue;
    Common          common;

#define.CurrentVersion(3)
#localmacro.CurrentList
     menuItemType,
     menuItemName,
     loockupField,
     lookupValue,
     common
#endmacro
}

public void new(MenuItemType _menuItemType, MenuItemName _menuItemName, Args _args = null)
{

    ;
    menuItemType = _menuItemType;
    menuItemName = _menuItemName;

    if(_args)
    {
        args = _args;
        loockupField = _args.lookupField();
        lookupValue  = _args.lookupValue();
        common       = _args.record();
    }
    else
    {
        args = new Args();
    }
}

//Bugfix исправление потери дополнительных параметров
public container pack()
{
    ;
    return [#CurrentVersion, #CurrentList]+ super();
}

//Bugfix исправление потери дополнительных параметров
public boolean unpack(container _packedClass, Object _object = null)
{
    Integer     version = RunBase::getVersion(_packedClass);
    Container   con;
    ;

    switch (version)
    {
        case #CurrentVersion:

            [version, #CurrentList, con] = _packedClass;
            args.lookupField(loockupField);
            args.lookupValue(lookupValue);
            args.record(common);
            super(con, _object);

            break;

        default:
            return false;
    }

    return true;
}
За это сообщение автора поблагодарили: dn (4), _scorp_ (5).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
SalesPurchReport_RU. Баг? Fornit DAX: Программирование 2 23.07.2012 21:13
AX2009_RU: баг в InventUpd_Financial.financialReceiptQueryRun_W() EVGL DAX: Функционал 2 04.08.2010 10:58
Баг на форме "Проводки по сопоставлению" S.Kuskov DAX: Программирование 12 29.04.2009 19:19
ALEG: Блог переехал на новую площадку tools4cio.ru Blog bot DAX Blogs 0 23.02.2009 18:05
Вопрос по классу SalesPurchReport_RU Кирилл DAX: Программирование 4 27.02.2004 13:28

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

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

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