Показать сообщение отдельно
Старый 14.04.2008, 11:21   #5  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5803 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Dronas Посмотреть сообщение
Таблица RPDocument, поля: Field1 (NoYesId), Field2 (EmplId)
при:
X++:
range.value(strFmt('%1.Field1==%2&&(%1.Field2=="")', qbdsJoin.name(), NoYes::Yes));
Всё работает
Какой запрос формируется у вас в этом случае? Точно ли он работает так, как вы предполагаете? Вообще, при формировании запросов лучше использовать методы из SysQuery, вроде queryValue() и SysQuery::valueEmptyString()
Цитата:
Сообщение от Dronas Посмотреть сообщение
при добавлении скобок
X++:
'((%1.SelectedDivergence==%2)&&(%1.SelectedSupeVisor==""))'
Уже не работает, выдаёт:
SELECT * FROM ERG_RPDocument WHERE SalesPickingListJournalTable.PickingListId = ERG_RPDocument.PickingListId AND ((((ERG_RPDocument_1.SelectedDivergence==Да)&&(ERG_RPDocument_1.SelectedSupeVisor==""))))
Ошибка расширенного диапазона запроса: Ожидается правая круглая скобка рядом с 0
Ну правильно, у вас сформированное значение range не распарсилось и ушло на SQL в исходном виде. SQL использует мнемонические обозначение логических операций вместо && || и одиночный знак равенства вместо двойного... На всякий случай, посмотрите внимательно раздел axaptapedia на эту тему. Кроме того, обратите внимание, что в автоматически сформированной части запроса у вас таблица называется ERG_RPDocument, а в сформированном Range - ERG_RPDocument_1, это как-то странно...
Цитата:
Сообщение от Dronas Посмотреть сообщение
Ах3 MSSQL2008 вроде
- тук-тук!
- кто там?
- да ведь это же я!
- кто "я"? "я" бывают разные!(с) м/ф про Винни-Пуха
Так вот, AX3 тоже бывают разные какая именно у вас версия ядра?