AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 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.
Старый 07.03.2014, 07:23   #2  
Vasiliusis is offline
Vasiliusis
Участник
 
225 / 13 (1) ++
Регистрация: 30.01.2013
Товарищи, неужели проблема неразрешима?
Старый 07.03.2014, 08:29   #4  
Pustik is offline
Pustik
Участник
 
807 / 372 (14) ++++++
Регистрация: 04.06.2004
если 2009, то
X++:
//Выбираем из вьюхи V_EmplTable
    sysTableLookup = SysTableLookup::newParameters(tablenum(V_EmplTable), _formControl, false);
__________________
-Ты в гномиков веришь?
-Нет.
-А они в тебя верят, смотри, не подведи их.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
От чего зависит ширина поля в лукапе ???? Глюк? IKA DAX: Программирование 4 18.09.2013 14:34
Как лучше хранить ссылки на записи - (RefTableId, Company, RefRecId) mazzy DAX: Программирование 41 08.07.2011 13:18
Разграничение доступа на записи Роман Кошелев DAX: Функционал 11 26.07.2004 10:56
Как решить проблему с правами на вновь создаваемые записи таблицы. AY DAX: Прочие вопросы 4 02.10.2003 12:44
Автоматическое увеличение значения поля при создании новой записи. sguryev DAX: Программирование 3 06.02.2003 14:00
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:08.