04.03.2014, 14:14 | #1 |
Участник
|
Сброс сортировки в лукапе при редактировании записи
Добрый день. Имеется следующий код, который выводит лукап для некоторого поля:
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. |
|
07.03.2014, 07:23 | #2 |
Участник
|
Товарищи, неужели проблема неразрешима?
|
|
07.03.2014, 08:19 | #3 |
Участник
|
|
|
07.03.2014, 08:29 | #4 |
Участник
|
если 2009, то
X++: //Выбираем из вьюхи V_EmplTable sysTableLookup = SysTableLookup::newParameters(tablenum(V_EmplTable), _formControl, false);
__________________
-Ты в гномиков веришь? -Нет. -А они в тебя верят, смотри, не подведи их. |
|
|
|