Показать сообщение отдельно
Старый 27.09.2005, 17:19   #1  
Pavlo AKA Panok is offline
Pavlo AKA Panok
Участник
 
64 / 10 (1) +
Регистрация: 01.05.2002
Адрес: Москва
Ошибка выполнения в наследнике RunBaseBatch при использовании фильтра вида val1,val2
Подскажите пожалуйста, есть ли решение проблемы...

Создал наследник RunBaseBatch с целью формирования отчета.

В методе initQueryRun создал свой Query и QR. Все просто - к одному DS по Inner крепится другой, а к тому по Outer - третий.

В момент вызова диалога на один из Rang-ей третьего DS (подсоединенного по OuterJoin) накладываю фильтр "Значение1, Значение2". Накладываю не программно, а в стандартной форме Запрос, вызываемой из диалога по кнопке Выбор.

После запуска отчета Axapta ругается:
ORA-01719: операор внешнего соединения (+) не разрешен в операциях OR и IN

Проверено, что если вводить условие по другому - как Значение1 или Значение1..Значение2 - все срабатывает верно и никаких проблем.

Подскажите, можно как-то это обойти?


Кому интересно - вот метод initQueryRun():


PHP код:
    qbds query.addDataSource(tablenum(EmplTable));
    
qbds.addRange(fieldnum(EmplTablerhrmSortOfWork)).value(queryValue(rhmrSortOfWork::Direct));
    
qbds.addRange(fieldnum(EmplTablePayResignedDate_RU)).value(SysQuery::valueEmptyString());

    
vntds =  qbds.addDataSource(tablenum(RHRMVirtualNetworkTable));
    
vntds.relations(true);

    
vneds vntds.addDataSource(tablenum(RHRMVirtualNetworkEvaluation));
    
vneds.relations(true);
    
vneds.joinMode(JoinMode::OuterJoin);
    
vneds.addRange(fieldnum(RHRMVirtualNetworkEvaluationEvaluationDate)).status(Rangestatus::Hidden);
    
vneds.addRange(fieldnum(RHRMVirtualNetworkEvaluationhrmEvaluationCodeId));