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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.02.2005, 13:08   #1  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,200 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Разбираюсь с QueryBuildRange.value(). Задачка: отобрать все записи таблицы Tаблица, у которых стринговое поле X равно значению переменной value1, если поле Y пустое, и значению value2, если поле Y не пустое.
Посмотрел, что в value() можно писать выражения (например вот как здесь :
http://www.axforum.ru/forums/showthread.ph...d=1634#post1634 ).
Пишу так:
<div class='XPPtop'>X++</div><div class='XPP'>
   qBDS = query.addDataSource([color=:blue]tableNum[/color](Таблица),[color=:red]"A"[/color]);
   qBR = qBDS.addRange([color=:blue]fieldNum[/color](Таблица, X));
   qBR.value([color=:red]" ! A.Y ? value1 : value2"[/color]);</div>

Такая конструкция компилируется, но проверка не срабатывает: выводятся ВООБЩЕ ВСЕ СУЩЕСТВУЮЩИЕ записи. Т.е. range полностью игнорируется. В чем дело? Что не так ? Нельзя использовать условие ? Или в Аксапте 3.0 вообще нельзя использовать подобные выражения в range.value() ?
Старый 11.02.2005, 13:11   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Не. Вражения в сложном условии не сработают
см. http://axapta.mazzy.ru/hints/search/
особенно внизу в дополнениях

про пустые строки здесь
http://axapta.mazzy.ru/hints/emptyqueryrange/
__________________
полезное на axForum, github, vk, coub.
Старый 11.02.2005, 13:17   #3  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
И вообще поосторожнее с пробелами в Range
http://stopbugs.erpkb.com/view.php?id=16
__________________
-ТСЯ или -ТЬСЯ ?
Старый 11.02.2005, 13:18   #4  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,200 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Спасибо. Прочел. Действительно. Жаль, однако.
Старый 11.02.2005, 13:35   #5  
Zabr is offline
Zabr
Участник
Axapta Retail User
 
1,200 / 345 (14) ++++++
Регистрация: 26.06.2002
Адрес: Москва
Vadik, дополняю твой пример с сообщением "Ошибка расширенного диапазона запроса". Возникает не только c пробелом, но и cо знаком отрицания :

Пример 1 - с полем датасорса A.Y:

range.value("(A.Y)");
run-time ошибки нет

range.value("(!A.Y)"); "Ошибка расширенного диапазона запроса: Синтаксическая ошибка рядом с 4."

Пример 2 - с переменной Х:

range.value("(X)"); "Ошибка расширенного диапазона запроса: Ожидается правая круглая скобка рядом с 0.

range.value("(!X)"); "Ошибка расширенного диапазона запроса: Синтаксическая ошибка рядом с 4."
 


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

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

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