Показать сообщение отдельно
Старый 01.06.2016, 15:10   #4  
kitty is offline
kitty
Участник
 
383 / 30 (2) +++
Регистрация: 24.05.2005
Если кому интересно, нашла как подставить запрос
X++:
 q = new Query(queryStr(MyNewQuery));
            q.name('MyOldQueryName');
            controller.parmLoadFromSysLastValue(false);            
            controller.parmReportName(ssrsReportStr(MyReport, Proforma)); 
            contract = controller.getDataContractInfoObject(controller.getFirstQueryContractKey());
            contract.parmQuery(q);
Это все перед startOperation в main() контроллера
Есть две засады:
1) Не очень красиво, что нужно обманывать аксапту, подставляя новый запрос, но присваивая ему имя старого. Если этого не сделать, то получаешь сообщение
Цитата:
Query for report parameter MyReportDP_DynamicParameter has a mismatch. Expected "MyOldQueryName", actual "MyNewQueryName".
2) Запрос (и все остальные поля) не сохраняется в usage data. Если этого не сделать, то, ест-но будут ошибки при запуске старого отчета.

Вообщем, это, видимо, единственный более-менее корректный способ добиться желаемого, но по большому счету гибкости имплементации MVC в AX, имхо, очень не хватает.

Спасибо AndyD за пост Как заставить query добавленный в run time отобразится в диалоговом окне SSRS отчета?

Последний раз редактировалось kitty; 01.06.2016 в 16:33.
За это сообщение автора поблагодарили: Jorj (1).