Показать сообщение отдельно
Старый 05.12.2008, 15:00   #6  
petergunn is offline
petergunn
Участник
 
118 / 274 (10) ++++++
Регистрация: 30.08.2005
Адрес: Tyumen
SysQuery
2 dawl:
Замените конструкции filterString = .. ; masterSource.addRange(...).value(filterString) там где возможно на использование SysQuery::value() и прочие static методы этого класса - код будет проще читаться:

Цитата:
filterString = StrFmt('(%1 != "%2")', fieldStr(EmployeeTable, EmployeeId), TimeSheetTable.EmployeeId); // TimeSheetTable = ds
masterSource.addRange(fieldNum(EmployeeTable, EmployeeId)).value(filterString);
X++:
...
masterSource.addRange( fieldNum(EmployeeTable, EmployeeId) ).value( SysQuery::valueNot( FCurrentEmployeeId ) );
...
Цитата:
// 2
filterString = Date2Str(FCurrentDate, 123, 2, 2, 2, 2, 2);
slaveSource.addRange(fieldNum(TimeSheetTable, CurrentDate)).value(filterString);
X++:
...
slaveSource.addRange(fieldNum(TimeSheetTable, CurrentDate)).value( SysQuery::value( FCurrentDate ) );
...
Кстати у вас в исходном select указано условие:
Цитата:
EmployeeTable.EmployeeId != FCurrentEmployeeId /* var */
а в Query вы формируете конструкцию:
Цитата:
filterString = StrFmt('(%1 != "%2")', fieldStr(EmployeeTable, EmployeeId), TimeSheetTable.EmployeeId); // TimeSheetTable = ds
masterSource.addRange(fieldNum(EmployeeTable, EmployeeId)).value(filterString);
Вместо переменной FCurrentEmployeeId используете TimeSheetTable.EmployeeId

Последний раз редактировалось petergunn; 05.12.2008 в 15:07.
За это сообщение автора поблагодарили: dawl (1).