Давным-давно, изучая новые возможности по формированию отчетов в NAV 2009 набрел на элемент управления Matrix. Работал этот элемент управления довольно нестабильно, поэтому спросил ответственного товарища в Microsoft – Claus Lundstrøm (http://mibuso.com/blogs/clausl/) (ныне он работает в другой компании и регулярно проводит тренинги по отчетам).
Оказалось, что я обнаружил злой баг и пришлось ждать пока MS его починит. Тем временем Клаус вдохновившись идеей написал статью в блог http://blogs.msdn.com/b/nav/archive/2009/08/28/building-a-matrix-report-in-microsoft-dynamics-nav-2009-sp1.aspx, она же послужила базой для соответствующей главы в учебном пособии от Microsoft - Report Design in Microsoft Dynamics NAV 2009 Course Number 80146.
Не прошло и 5 лет (http://apanko.ru/showpost.php?p=20154&postcount=4) как к теме пришлось вернуться. От смежного подразделения поступил запрос на разработку мега-отчета. Даже шаблон выдали в Excel.
Но Excel это скучно, а RDLC – весело, поэтому решил делать на RDLС. В конце концов – кому надо – нажмет кнопку Сохранить в Excel.
Поделюсь инсайтом - Excel нарисовали за два дня с перекурами. Матричный отчет с непривычки клепал сильно дольше. Но руку набивать придется.
Напомню, что для NAV 2009 отчеты редактировать можно только в:
- Microsoft Visual Studio 2008
- Microsoft Visual Web Developer 2008 Express edition with SP1.
- Microsoft Visual Studio 2005 with SP1
- Microsoft Visual Web Developer 2005 Express edition with SP1.
http://blogs.msdn.com/b/nav/archive/2010/04/29/visual-studio-2010-and-ssrs-rdlc-reports-in-nav-2009.aspxнайти их на сайте Microsoft оказалось проблематично.
Положим, что вам удалось добыть данный раритет, и мы можем смело продолжить. Однако, перед тем как перейти к непосредственной работе хочу поделиться одним важным приемом в работе:
В начале разработки
- Определить модель данных – DataItem в Report Designer
- Создать секции отчета, определив таким образом структуру DataSource
Циклично
- View ->Layout
- Отредактировать Layout в Visual Studio
- Закрыть Visual Studio
- Загрузить измененный RDLC в Report Designer
- Coхранить отчет в Object Designer
- Запустить отчет в RTC
- Повторять до достижения результата
Эту последовательность я описал в статье http://navision.mazzy.ru/lib/nav2009-reports/roletailored/
Этот подход имеет недостатки:
- Когда вы закрываете/открываете Visual Studio – теряется возможность Undo
- Visual Studio, даже Express edition довольно упитан и запускается не быстро
- Если накосячил в макете, то при попытке сохранить отчет в Object Designer вылетает ошибка, приходится снова открывать Visual Studio чтобы поправить косяк
Поэтому следует использовать другой подход
В начале разработке
- Определить модель данных – DataItem в Report Designer
- Создать секции отчета, определив таким образом структуру DataSource
- View ->Layout
В процессе разработки
- Отредактировать Layout в Visual Studio
- В Visual Studio запустить – Build.
- Исправить ошибки перечисленные в секции Error List
Внимание: у меня для редактирования отчетов в NAV 2009 установлена Microsoft Visual Web Developer 2008 Express Edition with SP1. Поэтому в мену Build я выбираю пункт Build Web Site
Для NAV 2013 R2 у меня есть Visual Studio Ultimate 2012 с активированным режимом C# Developer. Поэтому в меню Build мне доступен пункт Build Solution, чем я и пользуюсь.
- Не закрывая Visual Studio перейти в Object Designer и загрузить измененный RDLC в Report Designer
- Coхранить отчет в Object Designer
- Запустить отчет в RTC
- Повторять до достижения результата
В конце разработки
- Закрыть Visual Studio
При таком подходе недостатки перечисленные выше полностью устранены:
- Не нужно ждать запуска Visual Studio, чтобы подвинуть элемент управления
- При сохранении объекта в Object Designer ошибки не возникают
- Undo! – теперь ставить эксперименты намного быстрее и безопаснее.
Итак, разогрелись? В следующих статьях:
- To Be Continued 1
- To Be Continued 2
- To Be Continued X