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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.06.2008, 18:18   #7  
Hyper is offline
Hyper
Участник
Соотечественники
 
163 / 29 (1) +++
Регистрация: 09.10.2003
Цитата:
Сообщение от Elenka Посмотреть сообщение
данная функция возвравращает ссылку на ранее созданый range, но в Value пусто, хотя там должно быть accountNum=Значение1, поскольку первоначально фильтр по этому полю был наложен. Далее как Вы и говорите пишу qbr.Value(SysQuery::value("Значение1")) либо просто qbr.Value("Значение1"). В результате получаю в where запроса (accountNum = значение1 Or accountNum= значение1)
Проблема в том, что первоначально у вас было два ranges: один пустой, а второй - "Значение1" (вы проверяли _query.xml()?). Когда вы делали clearRange, удалялся пустой range, а "Значение1" оставалось. После этого вы добавляли еще один range "Значение1", вот и получали в where запроса "(accountNum = значение1 Or accountNum= значение1)";
Следующий код это иллюстрирует:
X++:
static void JobTest(Args _args)
{
    Query                   q       = new Query();
    QueryBuildDataSource    qbds    = q.addDataSource(tablenum(VendTrans));
    ;

    qbds.addRange(fieldNum(VendTrans,AccountNum));
    qbds.addRange(fieldNum(VendTrans,AccountNum)).value('Test1');
    info(q.xml());
    qbds.clearRange(fieldnum(VendTrans,AccountNum));
    qbds.addRange(fieldNum(VendTrans,AccountNum)).value('Test2');
    info(qbds.toString());
}
Конечный запрос выглядит так:
"SELECT * FROM VendTrans WHERE ((AccountNum = N'Test1') OR (AccountNum = N'Test2'))"

Последний раз редактировалось Hyper; 05.06.2008 в 18:21.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
axaptapedia: Packing date range values in queries Blog bot DAX Blogs 1 09.11.2007 13:10
axaptafreak: Label for Query Range cannot be modified (still) Blog bot DAX Blogs 2 25.07.2007 10:09
Работа с Excel через COM и ошибка 0x800A03EC (Range.AutoFilter) gl00mie DAX: Программирование 15 30.03.2007 18:37
Два Dstasource с Range в init() PMS DAX: Программирование 7 28.10.2005 09:54

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

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

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