AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.02.2015, 21:12   #1  
b_nosoff is offline
b_nosoff
Читатель
Аватар для b_nosoff
MCP
MCBMSS
 
197 / 143 (5) +++++
Регистрация: 01.12.2004
Адрес: Msk
Записей в блоге: 13
Thumbs up Тестировали норм
\Data Dictionary\Maps\CustVendTrans\exchRateCurToMst

X++:
public ExchRate exchRateCurToMst()
{
    ExchRate combinedRate;
    CustTrans custTrans;
    VendTrans vendTrans;

    switch (this.TableId)
    {
        case tableNum(CustTrans):
            combinedRate = custTrans.exchRateCurToMst();
            break;
        case tableNum(VendTrans):
            combinedRate = vendTrans.exchRateCurToMst();
            break;
        default:
            Debug::assert(false);
    }

    return combinedRate;
}
Хорошо, хоть, вроде, нигде не использовали.
__________________
Axapta non erubescit

Последний раз редактировалось b_nosoff; 23.02.2015 в 21:16.
Старый 10.03.2015, 17:30   #2  
pedrozzz is offline
pedrozzz
Молодой, подающий надежды
Аватар для pedrozzz
MCBMSS
Лучший по профессии 2015
 
164 / 218 (8) ++++++
Регистрация: 18.02.2010
Адрес: Краснодар
2012 R3 (думаю в прошлых версиях аналогично)
Если делать лукап по временной таблице на основе постоянной и при этом не вставить никаких записей во времянку, что-то типа
X++:
    InventTable                     inventTableTmp;
    SysTableLookup                  sysTableLookup  = SysTableLookup::newParameters(tableNum(InventTable), _ctrl);

    inventTableTmp.setTmp()
/*
заполняем времянку по какому-то алгоритму, но записей не нашли и ничего не вставили
*/
    sysTableLookup.addLookupfield(fieldNum(InventTable, ItemId));
    sysTableLookup.parmTmpBuffer(inventTableTmp);
    sysTableLookup.performFormLookup();
то вместо ожидаемого пустого лукапа увидим в гриде все записи постоянной таблицы
Берем напильник, чиним класс SysTableLookupBase. Заводим глобальную переменную boolean useTmpBuffer
X++:
Common parmTmpBuffer(Common _buffer = tmpBuffer)
{
    tmpBuffer = _buffer;

    //-->
    if (! prmisDefault(_buffer))
    {
        useTmpBuffer = true;
    }
    //<--

    return tmpBuffer;
}
protected FormRun formRun()
{
    //...строка 55
    //-->
    //if(useLookupValue && !tmpBuffer)
    if(useLookupValue && ! tmpBuffer && ! useTmpBuffer)
    //<--
    {
    }
    //...строка 117
    //-->
    //if (tmpBuffer)
    if (tmpBuffer || useTmpBuffer)
    //<--
}
__________________
Кононов Пётр
За это сообщение автора поблагодарили: gl00mie (5), Kabardian (4).
Старый 10.03.2015, 20:28   #3  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,430 / 1772 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
было уже Проблема с временной таблице в lookup
За это сообщение автора поблагодарили: pedrozzz (4).
Теги
axapta, cil, d365fo, guid, rasset, uuid, uuidv7, баг

 


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

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

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