Показать сообщение отдельно
Старый 05.12.2008, 14:20   #3  
dawl is offline
dawl
Участник
 
3 / 10 (1) +
Регистрация: 05.12.2008
Применил кавычки - не получилось. Вообще, filterString получается такой:

(EmploymentAssessment == "") || ("EmploymentAssessment" == "-") || ("EmploymentAssessment" == "н\а")

Здесь "н\а" и "-" - какие-то оценки, имеющие ценность 0 .

Расскажу подробней:
Есть, табель учета, сформированный по штатному расписанию. Есть список сотрудников магазина. В общем случае, список сотрудников магазина больше штата (временные работники, штат другого магазина и пр.). Сотрудник из штата может не выйти на работу - для этого предуссмотрен инструмент, позволяющий выбрать из списка доступных сотрудников ему замену.
Было желание в этом инструменте на лукап выводить список только тех сотрудников, которым еще не проставлены оценки занятости в табеле учета, чтобы исключить возможные махинации работников магазина. Но с другой стороны, в этот лукап должны попадать и сотрудники не входящие в штат.
Отсюда и получается outer join табеля учета по отношению к полному списку сотрудников. В результате запроса получим такие элементы, где табличная переменная табеля будет не определена: (!TimeSheetTable) - временные работники,
и те, где она определена, но оценка не выставлена: (EmploymentTable::find(TimeSheetTable.EmploymentAssessment).Value == 0) - свободные работники.

В реализации этого кода лукап получается пустой.

PS. Допустил в тексте ошибку:
filterString = StrFmt('(%1 == "")', fieldStr(TimeSheetTable, EmploymentAssessment));
while select tEmploymentTable...