| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Разбираюсь с 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() ?  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Не. Вражения в сложном условии не сработают 
		
		
		
		
		
		
			
		
		
		
		
	см. http://axapta.mazzy.ru/hints/search/ особенно внизу в дополнениях про пустые строки здесь http://axapta.mazzy.ru/hints/emptyqueryrange/  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Модератор 
		
			
	 | 
	
	
	
		
		
		
		 
			
			И вообще поосторожнее с пробелами в Range 
		
		
		
		
		
		
			http://stopbugs.erpkb.com/view.php?id=16 
				__________________ 
		
		
		
		
	-ТСЯ или -ТЬСЯ ?  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Спасибо. Прочел. Действительно. Жаль, однако.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			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."  | 
| 
	
 |