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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.03.2011, 10:38   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Angry Ядро AX 2009 всегда пытается преобразовать числовые значения enum в метки в расширенном фильтре?
Начну немного издалека... Метки для значений enum'ов не всегда являются допустимыми с точки зрения использования в расширенных запросах - к примеру, в них могут содержаться круглые скобки, запятые, восклицательные знаки. Метод Global::enum2Value(), который вызывается из SysQuery::value(), "знает" об этом и в таких случаях возвращает не метку значения enum'а, а соотв. число.
Так вот, в работе формы расширенного фильтра запроса была замечена одна неприятная особенность: если в запросе есть такой "числовой" фильтр по полю типа enum, то при открытии формы фильтра его значение всегда преобразуется в метку, даже если она не является допустимым с т.з. использования в запросе, при этом еще и в инфологе вылезает "Ошибка расширенного диапазона запроса: Синтаксическая ошибка рядом с ...". Пользователей формы, где это проявляется, уже начинают порядком раздражать, объяснять им, что "левую" метку надо в фильтре перебивать обратно, скажем, на нолик, тоже как-то неудобно. Я сперва думал, может, это в приложении где делается, но найти такое место не смог, из чего сделал вывод, что самоуправством занимается ядро. Воспроизводится ли это еще у кого-нить? Может, все же это где-то в приложении делается, и можно такое преобразование подправить?

Ядро AX 2009 SP1 5.0.1500.3968, приложение AX 2009 SP1 EE RU5 5.0.1500.2985
Старый 16.03.2011, 11:29   #2  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
4,143 / 2156 (80) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
А в стандарте где такое можно проверить? Или речь идет про самописные enum?
__________________
Ivanhoe as is..
Старый 16.03.2011, 12:08   #3  
Consciousness is offline
Consciousness
Участник
 
5 / 15 (1) ++
Регистрация: 10.02.2007
Enum Тип со значениями 0 = Approve!,,), и 1 = Reject
Накладывая фильтр на поле Тип = Approve!,,), сообщение об ошибке не выдается, но в форме расширенного фильтра в поле Критерии значение такое "Approve!,,), __ILLEGAL_VALUE__"
Причем сколько бы раз не открывали форму фильтра столько раз будет добавляться "__ILLEGAL_VALUE__" )) Но фильтр отрабатывает правильно!
Если значение enum без "," а только ! или ) значение критерия не переделывается.
Ax 2009 KV 5.0.1000.52 AV 5.0.1001.176
И
Ax 2009 KV 5.0.1500.3761 AV 5.0.1500.3761
Старый 16.03.2011, 12:54   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,437 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
Виной всему Query.pack()!
X++:
static void JobTestQueryPack20110316(Args _args)
{
    QueryRun qr;
    Query q = new Query();
    QueryBuildDataSource qbds = q.addDataSource(tableNum(InventTable));
    QueryBuildRange qbr = qbds.addRange(fieldNum(InventTable, ItemType));
    container BLOB;
    ;

    qbr.value('0');
    // -->>
    // преобразование присходит где-то здесь
    BLOB = q.pack(); 
    qr = new QueryRun(BLOB);
    // <<--
    q = qr.query();
    qbds = q.dataSourceTable(tableNum(InventTable));
    qbr = qbds.findRange(fieldNum(InventTable, ItemType));
    info(qbr.value());
}
Данный механизм упаковки в BLOB использеутся в классе SysQueryEdit. Переменная activeQueryPack.
За это сообщение автора поблагодарили: mazzy (2), gl00mie (2).
Теги
ax2009, enum, баг, ошибка, расширенный фильтр

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Проблема: Массовое развертывание клиентов Dynamics Ax 2009 Poleax DAX: Администрирование 8 23.08.2012 17:28
emeadaxsupport: Resolving some issues you may experience when creating an AX 2009 Role Center and Enterprise Portal Site using SharePoint Server/Foundation 2010 after installing Microsoft Dynamics AX 2009 SP1 hotfix 2278963 Blog bot DAX Blogs 1 24.09.2010 11:34
emeadaxsupport: Special Permission Settings in Dynamics AX 2009 Blog bot DAX Blogs 0 02.09.2010 22:05
emeadaxsupport: Identical AX 2009 AUC File Created For Multiple AX Installations Blog bot DAX Blogs 0 25.01.2010 16:05
AX UK: Sizing Tips on AX 2009 Blog bot DAX Blogs 0 30.09.2009 01:05

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

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

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