Добрый день. Имеется следующий код, который выводит лукап для некоторого поля:
X++:
public void lookup(FormControl _formControl, str _filterStr)
{
Query query = new Query();
QueryBuildDataSource queryDS;
QueryBuildRange queryRange;
SysTableLookup sysTableLookup;
;
queryDS = query.addDataSource(tablenum(V_EmplTable));
//Выбираем только тех, кто в ЛО
queryRange = queryDS.addRange(fieldnum(V_EmplTable, parentOrganizationId));
queryRange.value('ЛО*');
//Исключаем "ЛО ПУГ"
queryRange = queryDS.addRange(fieldnum(V_EmplTable, PayHRMOrganizationId_RU));
queryRange.value('!*ПУГ*');
//Исключаем уволенных итд итп
queryRange = queryDS.addRange(fieldnum(V_EmplTable, PayResignedDate_RU));
queryRange.value(SysQuery::valueEmptyString());
//Сортируем по имени
// queryDS.addSortField(fieldnum(V_EmplTable, Name), SortOrder::Ascending);
queryDS.addOrderByField(fieldnum(V_EmplTable, Name), SortOrder::Ascending);
//Выбираем из вьюхи V_EmplTable
sysTableLookup = SysTableLookup::newParameters(tablenum(V_EmplTable), _formControl);
//Добавляем столбцы
sysTableLookup.addLookupfield(fieldnum(V_EmplTable, EmplId));
sysTableLookup.addLookupfield(fieldnum(V_EmplTable, Name));
sysTableLookup.addLookupfield(fieldnum(V_EmplTable, Title));
sysTableLookup.addLookupfield(fieldnum(V_EmplTable, PayHRMOrganizationId_RU));
//BP Deviation Documented
sysTableLookup.parmQuery(query);
sysTableLookup.performFormLookup();
}
Как видно в коде, там имеется сортировка по полю
name. Выбирается EmplId. Когда запись создается сортировка отрабатывает.
Но когда идет редактирование - сортировка сбивается. Видимо при позиционировании на нужную запись она сбрасывается.
Как это исправить? Как сделать так, чтобы при редактировании EmplId сортировка по name сохранялась?
Может как-то нужно _filterStr применять?