Показать сообщение отдельно
Старый 13.02.2019, 21:54   #2  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,164 / 1296 (48) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Хотя даже и не обязательно создавать два range, вполне работает и по одному.
Вот часть установки фильтров как раз похожего случая когда нужно попадание даты в диапазон и дата окончания диапазона может быть открытой:
X++:
qbrTemp = findOrCreateRange_W(qbdsSetup, fieldNum(SysPolicySetup_OVK, FromDate));
qbrTemp.value(SysQuery::range(dateNull(), searhDate));

qbrTemp = findOrCreateRange_W(qbdsSetup, fieldNum(SysPolicySetup_OVK, ToDate));

rangeTemp   = SysQuery::range(searhDate, dateNull());
rangeTemp   += (', ' + SysQuery::valueEmptyString());
qbrTemp.value(rangeTemp);
Прекрасно транслируется в запрос:
Код:
SELECT * FROM SysPolicySetup_OVK 
WHERE 	((PolicyType = 1)) 
	AND ((PolicyStatus = 1)) 
	AND ((FromDate<={ts '2019-02-13 00:00:00.000'})) 
	AND ((ToDate>={ts '2019-02-13 00:00:00.000'} OR ToDate = {ts '1900-01-01 00:00:00.000'}))
Правда только что заметил ошибку нижнего диапазона - нужно сдвинуть на день.

Последний раз редактировалось Raven Melancholic; 13.02.2019 в 21:57.
За это сообщение автора поблагодарили: dark_knight (1).