Quantcast
Channel: Microsoft Dynamics NAV
Viewing all articles
Browse latest Browse all 64865

Blog Post: Про матричные отчеты в NAV 2009. Прелюдия.

$
0
0

Давным-давно, изучая новые возможности по формированию отчетов в 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.

Requested Report Layout

Но Excel это скучно, а RDLC – весело, поэтому решил делать на RDLС. В конце концов – кому надо – нажмет кнопку Сохранить в Excel.

Поделюсь инсайтом - Excel нарисовали за два дня с перекурами. Матричный отчет с непривычки клепал сильно дольше. Но руку набивать придется.

Напомню, что для NAV 2009 отчеты редактировать можно только в:

  1. Microsoft Visual Studio 2008
  2. Microsoft Visual Web Developer 2008 Express edition with SP1.
  3. Microsoft Visual Studio 2005 with SP1
  4. 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

 Visual Studio - Build

Внимание: у меня для редактирования отчетов в 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! – теперь ставить эксперименты намного быстрее и безопаснее.

Итак, разогрелись? В следующих статьях:

  1. To Be Continued 1
  2. To Be Continued 2
  3. To Be Continued X

Viewing all articles
Browse latest Browse all 64865

Trending Articles