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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.06.2016, 01:34   #1  
kitty is offline
kitty
Участник
 
354 / 26 (1) +++
Регистрация: 24.05.2005
Ax2012 Один дизайн , но два отчета c разными диалогами. Как?
Существует отчет с уже сделанным навороченным дизайном
Появилось требование сделать "проформу" этого же документа.
То есть, оставить дизайн нетронутым, но меняется то, как получаем данные.
Код для проформы был добавлен в тот же DP класс.

И все бы хорошо, но теперь еще захотели на диалог отчета положить иной запрос.
То есть, если в оригинальном отчете пользователь накладывает определенные ограничения на Запрос по таблице A, то в случае Проформы - по таблице Б

Отсюда вопрос - как такое реализовать, подставлять по условию нужный запрос на форму диалога. Ведь запрос прошит в атрибутах DP. Наследовать тоже никак не получается. Думаю , можно было бы по условию подставлять запрос в prePromtModifyContract, но , перестанет корректно сохраняться в Usage data
Старый 01.06.2016, 11:15   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
отчеты на внутреннем движке или в SSRS?

1. придется повозится
2. см. в сторону класса RunBaseReport. в аксапте есть куча примеров. суть - класс готовит данные, вызывает отчет, а отчет запрашивает данные у вызывающего класса через caller.

скорее всего, придется вводить и заполнять временные таблицы и в новом, и в старом классах
скорее всего, придется перепривязывать контролы отчета с постоянных таблиц на временные.
Старый 01.06.2016, 12:06   #3  
kitty is offline
kitty
Участник
 
354 / 26 (1) +++
Регистрация: 24.05.2005
1) SSRS (Ax2012).
2) извините, не совсем понимаю, как RunBaseReport может помочь. Проблема в моем случае по сути в запросе, кот в DP прописан(=привязан) и нельзя его динамически подменить
Старый 01.06.2016, 15:10   #4  
kitty is offline
kitty
Участник
 
354 / 26 (1) +++
Регистрация: 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).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Ax3 - Модуль Учет затрат egorych DAX: Функционал 15 12.12.2013 17:58
emeadaxsupport: Inventory closing differences between AX4.0 and AX2012 using weighted average costing method Blog bot DAX Blogs 0 27.12.2012 19:11
AX2012 корректная инициализация параметров отчета (SSRS) PavelX DAX: Программирование 1 24.11.2012 18:48
Два одинаковых грида с разными данными AngelDominantes DAX: Программирование 15 11.08.2011 10:36
два ПТ на один товар Turetskiy DAX: Функционал 2 21.11.2008 11:46

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 23:12.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.