Показать сообщение отдельно
Старый 30.01.2012, 12:00   #5  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
Скорее всего хотят, чтобы указанная дата(_date) проверялась в периоде StartDate..EndDate если эти даты явно указаны в таблице.
Т.е.
1) если указана дата StartDate но неуказана EndDate, то бери если _date >= StartDate,
2) если не указана StartDate но указана EndDate, то бери если _date <= Enddate,
3) если указана StartDate и указана EndDate, то бери если _date >= StartDate и при этом _date <= EndDate,
4) если не указана StartDate и не указана EndDate, то бери в любом случае.

Если я правильно понял, то будет работать такой вариант Query :
X++:
qbdsTable.addRange(fieldNum(Table, StartDate)).value( QueryRange( _date,datenull() ) );
    qbdsTable.addRange(fieldNum(Table, StartDate)).value( QueryValue( datenull() ) );
    
    qbdsTable.addRange(fieldNum(Table, EndDate)).value( QueryRange( datenull(),_date ) );
    qbdsTable.addRange(fieldNum(Table, EndDate)).value( QueryValue( datenull() ) );
Здесь надо заметить что добавление Range на одно и тоже поле, формирует кострукцию ||.
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
За это сообщение автора поблагодарили: Eldar9x (1).