|
![]() |
#1 |
Участник
|
1) Если изменить фильтр по кнопке "Выбрать" (был фильтр1, стал фильтр2) и потом нажимать кнопку "ОК" на диалоге, то работало бы как обычно (при следующем открытии диалога и нажатии кнопки "выбрать" подгружался фильтр 2) - сейчас все нормально работает.
2) Но если изменить фильтр по кнопке выбрать(был фильтр1, стал фильтр2), а потом нажать кнопку "Отмена" на диалоге, то при следующем открытии диалога и нажатии кнопки "выбрать" подгружался фильтр1. - сейчас подгружает фильтр2. |
|
![]() |
#2 |
Участник
|
Цитата:
Попробуйте для начала почистить sysLastValue, возможно, у вас там в процессе всех этих манипуляций образовалась какая-нибудь "каша". Если не поможет, то проверьте как у Вас происходит инициализация queryRun. Принцип должен быть следующий: 1. Объявите в classDeclaration переменную queryRun X++: SysQueryRun queryRun; 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; } X++: public void initParmDefault() { ; this.initQuery(); super(); } X++: protected void initQuery() { Query query = new Query(); ; query.addDataSource(tablenum(EmplTable)); queryRun = new SysQueryRun(query); queryRun.promptLoadLastUsedQuery(false); } X++: public QueryRun queryRun() { ; return queryRun; } ![]() |
|
![]() |
#3 |
Участник
|
Спасибо, работает!
|
|
Теги |
ax2009, runbase |
|
|