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