Показать сообщение отдельно
Старый 09.05.2013, 16:49   #10  
_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;
}
Должно все работать как Вы описали