Показать сообщение отдельно
Старый 19.05.2011, 17:14   #16  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,715 / 1204 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от timaluhs Посмотреть сообщение
Посмотрела я ссылочку - спасибо. Дела совсем не весело.
А про какое фиктивное условие Вы говорите? и чем это может помочь?
В какую сторону мыслить?
При формировании сложно-составных условий через символьную строку Axapta все-таки пытается распарсить указанное там значение именно как Value. Чтобы выделить возможные спец.символы диапазонов и отрицаний. Ну, Axapta ведь как-то "догадывается", что если в условии указать "1..2", то подобную строку надо преобразовать в условие SQL вроде "Field >= 1 AND Field <= 2"

Все описанные "танцы с бубном" вокруг дополнительных скобок, особых символов и разных комбинаций призваны как раз-таки обмануть этот стандартный анализатор. Заставить Axapta принять условие "как есть". Без дополнительного разбора. Иногда это удается. Иногда - нет. Вот когда не удается, но "очень хочется" начинаются всевозможные уловки.

Ну, например, перед сложным условием дописать нечто вроде

X++:
strFmt('((%1) == (%1)) &&  ((%2 > 0))', ...)

Первая часть, вроде бы, абсолютно бессмысленна. Поле всегда равно самому себе. Однако без этого, вроде бы, бессмысленного условия, корректный запрос не получается...

PS: Народ, не надо писать опровержение, что "у меня получается". Это просто пример. У Вас получилось - и замечательно! Но, "в общем случае" - без гарантий...