Показать сообщение отдельно
Старый 04.03.2014, 14:14   #1  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Сброс сортировки в лукапе при редактировании записи
Добрый день. Имеется следующий код, который выводит лукап для некоторого поля:

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 применять?

Последний раз редактировалось Vasiliusis; 04.03.2014 в 14:18.