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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.02.2022, 16:43   #1  
DarkSpirit22 is offline
DarkSpirit22
Участник
Аватар для DarkSpirit22
 
13 / 76 (3) ++++
Регистрация: 07.11.2013
Адрес: СПб
AX 2012 - MarkupCode lookup на форме MarkupTrans.
Добрый день.

Один из пользователей пожаловался на то, что на одной форме при открытии лукапа он сразу же закрывается. Проблема только у одного пользователя на одной форме. Только на одной терминалке.
Полезли разбираться, и нашли интересный лукап.
Дело происходит на форме накладных расходов (Расчеты с поставщиками/Обычный/Заказы на покупку/Вкладка "Покупка"/Управление накладными расходами. Поле "Код накладных расходов").
У нас лукап работает, но возник вопрос, а как? И чем думали разработчики.
Смущает, что это стандартный код.

\Forms\MarkupTrans\Data Sources\MarkupTrans\Fields\MarkupCode\Methods\lookup
X++:
public void lookup(FormControl _formControl, str _filterStr)
{
    SysTableLookup       sysTableLookup       = SysTableLookup::newParameters(tableNum(MarkupTable), _formControl);
    Query                query                = new Query();
    QueryBuildDataSource queryBuildDataSource = query.addDataSource(tableNum(MarkupTable));
    ;
    if (element.args().parm() != 'ReturnRecap'
        && markupTrans.ModuleType == MarkupModuleType::Cust
        && (mcrCallCenterInUse
        || tradeBrokerConfig))
    {
         MarkupTable::mcrLookupSalesCodes(_formControl);  //Вызов лукапа 1.1
    }
    else
    {
        super(_formControl, _filterStr); //Вызов лукапа 1.2
    }

    sysTableLookup.addLookupfield(fieldNum(MarkupTable, MarkupCode));
    sysTableLookup.addLookupfield(fieldNum(MarkupTable, Txt));
    sysTableLookup.addLookupfield(fieldNum(MarkupTable, ModuleType));

    queryBuildDataSource.addRange(fieldNum(MarkupTable, ModuleType)).value(enum2str(markupTrans.ModuleType));
    queryBuildDataSource.addRange(fieldNum(MarkupTable, CustomPaymType_RU)).value(SysQuery::valueEmptyString());

    sysTableLookup.parmQuery(query);

    sysTableLookup.performFormLookup(); //Вызов лукапа 2
}
Переделали на следующий вариант:

X++:
public void lookup(FormControl _formControl, str _filterStr)
{
    SysTableLookup       sysTableLookup       = SysTableLookup::newParameters(tableNum(MarkupTable), _formControl);
    Query                query                = new Query();
    QueryBuildDataSource queryBuildDataSource = query.addDataSource(tableNum(MarkupTable));
    ;

    if (element.args().parm() != 'ReturnRecap'
        && markupTrans.ModuleType == MarkupModuleType::Cust
        && (mcrCallCenterInUse
        || tradeBrokerConfig))
    {
         MarkupTable::mcrLookupSalesCodes(_formControl);
        return; // Abramov_ 11.02.2022 TSK0000129_01

    }
    //+ Abramov_ 11.02.2022 TSK0000129_01
    /*
    else
    {
        super(_formControl, _filterStr);
    }
    */
    //- Abramov_ 11.02.2022 TSK0000129_01

    sysTableLookup.addLookupfield(fieldNum(MarkupTable, MarkupCode));
    sysTableLookup.addLookupfield(fieldNum(MarkupTable, Txt));
    sysTableLookup.addLookupfield(fieldNum(MarkupTable, ModuleType));

    queryBuildDataSource.addRange(fieldNum(MarkupTable, ModuleType)).value(enum2str(markupTrans.ModuleType));
    queryBuildDataSource.addRange(fieldNum(MarkupTable, CustomPaymType_RU)).value(SysQuery::valueEmptyString());

    sysTableLookup.parmQuery(query);

    sysTableLookup.performFormLookup();
}
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
dynamicsaxse: November 2018 Release – Dynamics AX2012 R3 update Blog bot DAX Blogs 0 15.11.2018 09:11
emeadaxsupport: Final Microsoft Dynamics AX 2012 R2 Content Available! Blog bot DAX Blogs 0 04.12.2012 06:12
X++: X++ Arrays Behave Differently in .NET CIL, in Dynamics AX 2012 Blog bot DAX Blogs 0 17.09.2012 23:11
Dynamics AX Sustained Engineering: Servicing of Dynamics AX 2012 and Dynamics AX 2012 Feature Pack Blog bot DAX Blogs 0 08.05.2012 23:12

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

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

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