Показать сообщение отдельно
Старый 05.05.2011, 12:00   #9  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,720 / 1207 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Если не заморачиваться с возможным пустым значением полей, то, в данном случае, надо просто создать два отдельных Range на поле, содержащее начало диапазона и на поле, содержащее конец диапазона.

Два Range, созданные по разным полям автоматически объединяются по "И", что, в данном случае и требуется

X++:
// init:
QueryBuildDataSource qbds;

qbds = this.query().dataSourceTable(tableNum(MyTable));
rangeBegin = qbds.addRange(fieldNum(mlm_EmployeesTable, begin_date));
rangeEnd = qbds.addRange(fieldNum(mlm_EmployeesTable, finish_date));
X++:
// executeQuery:

if(firstOpen == True)
{
    rangeBegin.value(global::QueryRange(dateNull(), systemDateGet()))
    rangeEnd.value(global::QueryRange(systemDateGet(), dateNull()))
}
else
{
    rangeBegin.value(global::QueryRange(dateNull(), TerminationDate.value()))
    rangeEnd.value(global::QueryRange(TerminationDate.value(), dateNull()))
}

Если же значения полей могут быть пустыми (есть дата начала, но нет даты конца или наоброт), то все значительно сложнее.
За это сообщение автора поблагодарили: timaluhs (1).