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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 09.05.2013, 14:46   #1  
kit22 is offline
kit22
Участник
 
30 / 12 (1) ++
Регистрация: 15.08.2012
1) Если изменить фильтр по кнопке "Выбрать" (был фильтр1, стал фильтр2) и потом нажимать кнопку "ОК" на диалоге, то работало бы как обычно (при следующем открытии диалога и нажатии кнопки "выбрать" подгружался фильтр 2) - сейчас все нормально работает.
2) Но если изменить фильтр по кнопке выбрать(был фильтр1, стал фильтр2), а потом нажать кнопку "Отмена" на диалоге, то при следующем открытии диалога и нажатии кнопки "выбрать" подгружался фильтр1. - сейчас подгружает фильтр2.
Старый 09.05.2013, 16:49   #2  
_scorp_ is offline
_scorp_
Участник
Аватар для _scorp_
MCBMSS
 
488 / 369 (13) ++++++
Регистрация: 25.07.2007
Адрес: Москва
Цитата:
Сообщение от kit22 Посмотреть сообщение
2) Но если изменить фильтр по кнопке выбрать(был фильтр1, стал фильтр2), а потом нажать кнопку "Отмена" на диалоге, то при следующем открытии диалога и нажатии кнопки "выбрать" подгружался фильтр1. - сейчас подгружает фильтр2.
У меня так и работает, т.е. после повторного открытия диалога подгружается фильтр 1.
Попробуйте для начала почистить sysLastValue, возможно, у вас там в процессе всех этих манипуляций образовалась какая-нибудь "каша".
Если не поможет, то проверьте как у Вас происходит инициализация queryRun. Принцип должен быть следующий:
1. Объявите в classDeclaration переменную queryRun
X++:
SysQueryRun     queryRun;
2. Методы pack и unpack должны выглядеть следующим образом:
X++:
public container pack()
{
    ;
    return [#CurrentVersion,#CurrentList,queryrun.query().pack()];
}
public boolean unpack(container _packedClass)
{
    Version     version = RunBase::getVersion(_packedClass);
    container   packedQuery;
    ;

    switch (version)
    {
        case #CurrentVersion :
            [version, #CurrentList, packedQuery] = _packedClass;
            if (packedQuery)
            {
                queryRun = new SysQueryRun(packedQuery);
                queryRun.promptLoadLastUsedQuery(false);
            }
            break;

        default:
            return false;
    }
    return true;
}
3. Реализуйте метод initParmDefault
X++:
public void initParmDefault()
{
    ;
    this.initQuery();

    super();
}
4. Метод initQuery должен иметь примерно следующий вид:
X++:
protected void initQuery()
{
    Query   query = new Query();
    ;

    query.addDataSource(tablenum(EmplTable));
    queryRun = new SysQueryRun(query);
    queryRun.promptLoadLastUsedQuery(false);
}
5. Перекройте метод queryRun:
X++:
public QueryRun queryRun()
{
    ;
    return queryRun;
}
Должно все работать как Вы описали
Старый 09.05.2013, 18:10   #3  
kit22 is offline
kit22
Участник
 
30 / 12 (1) ++
Регистрация: 15.08.2012
Спасибо, работает!
Теги
ax2009, runbase

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
amer-ax: It was a great day! Blog bot DAX Blogs 3 29.12.2012 01:02
emeadaxsupport: New Content for Microsoft Dynamics AX 2012 : October 2011 Blog bot DAX Blogs 0 27.10.2011 17:11
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
emeadaxsupport: List of fixes that improve performance of certain features in Dynamics AX 2009 Blog bot DAX Blogs 0 13.10.2009 19:06
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05

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

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

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