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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 28.10.2009, 13:30   #1  
Avalon is offline
Avalon
Участник
 
11 / 10 (1) +
Регистрация: 28.10.2009
lookup form странное поведение
Добрый день, установлена Axapta 3 SP6.
Переопределяю на любой форме метод lookup у поля на:
X++:
public void lookup()
{
    Query                   query = new query();
    QueryBuildDataSource    queryBuildDataSource;
    QueryBuildRange         queryBuildRange;
    SysTableLookup sysTableLookup = sysTableLookup::newParameters(tableNum(EmplTable), this);
    ;
    sysTableLookup.addLookupfield(fieldNum(EmplTable, Name));
    sysTableLookup.addLookupfield(fieldNum(EmplTable, EmplId), true);
    queryBuildDataSource = query.addDataSource(tableNum(EmplTable));
    //queryBuildDataSource.addSortIndex(indexNum(EmplTable, NameIdx));
    queryBuildDataSource.addSortField(fieldNum(EmplTable, Name), SortOrder::Ascending);
    sysTableLookup.parmQuery(query);
    sysTableLookup.performFormLookup();
}
И наблюдается странная картина - если поле пусто, то выводится то, что прописано в коде - 2 поля из таблица работников, отсортированных по имени, если же мы хотим изменить уже существующее, то вываливается не понятно что, без всяких сортировок и не связанное никакое логикой.
Вот форма для примера изменения водителя в заказах: Form1_test.xpo
Кто-нибудь может подсказать что не так сделано? А то вообще никаких мылей
Старый 28.10.2009, 13:57   #3  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,338 / 3558 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Явление - на мой взгляд совершенно обычное. Вы попробуйте перейти к основной таблице к клиентам (сотрудникам и т.д.), а затем отсортируйтесь по другому полю. У Вас конечно сортировка получится... но позиционирование пропадет.
Тут (если смотреть код класса SysTableLookup) происходит такая же ситуация - сначала передается в лукапную форму args.lookupValue (т.е. происходит эмуляция перехода к основной таблице), а затем накладывается query (в Вашем случае - сортировка).

Склонен считать сие проявление особенностью системы, когда пытаются изменить ее поведение на ей несвойственное. Т.е. несвойственно для системы сортироваться в простом лукапе по полю, которое не попадает в основное поле (да и вообще сортироваться в принципе).

Один из способов "обхода" сего факта - является убирание "эмуляции перехода к основной таблице" (как было указано по ссылке выше). Но в этом случае Вы лишаетесь позиционирования курсора в лукапе на выбранное значение.
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 28.10.2009 в 14:00.
Старый 28.10.2009, 15:04   #4  
Avalon is offline
Avalon
Участник
 
11 / 10 (1) +
Регистрация: 28.10.2009
DSPIC Спасибо за ссылку, заработало.
sukhanchik Спасибо за информацию, но потеря курсора не страшна, т.к. её итак не было, даже при двух одинаковых значениях могли вывалиться абсолютно разные списки, очень редко курсор был именно на нужной записи (случайно).
А так... Да, подход кривоват, но почему-то не тянет делать по-другому только из-за позиционирования, погода что-ли влияет... Время будет - возможно и сделаю всё по-другому. Всем спасибо.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Странное поведение ttsAbort Logger DAX: Программирование 6 28.05.2009 15:11
gatesasbait: How to define a custom lookup form for an extended datatype Blog bot DAX Blogs 0 09.07.2008 22:05
Странное поведение Lookup CDR DAX: Программирование 5 21.02.2007 11:17
Проблема с Lookup Form artem-t DAX: Программирование 5 17.01.2007 13:15
Говорят вышел SP2 для Axapta 3. Кто нибуть что знает на эту тему? soin DAX: Прочие вопросы 10 13.10.2003 10:43

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

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

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