Расширение функциональности ролеориентированного клиента NAV 2009 с помощью подключаемых компонентов. Пример 1. Динамическое форматирование

Вторник, 1 Сентябрь, 2009

В данной статье мы начнем беседу об еще одном новшестве, появившемся в Dynamics NAV 2009 SP1 – подключаемых компонентах – addin’ах. С помощью этой технологии с ролеориентированным клиентом можно “творить чудеса” и добавлять в него возможности, ранее недоступные.

Итак, как было сказано выше, с версии Dynamics NAV 2009 SP1 в ролеориентированный клиент можно добавлять новые элементы управления. Спрашивается где их взять? Ответ точно такой же как и для OCX библиотек: купить у третьих лиц или написать самостоятельно.

Если с пунктом “купить” все ясно, то вот на пункте “написать” хотелось бы остановиться подробнее. В этом номере  планируется привести ряд примеров по созданию подключаемых компонентов.

Для начала подготовим рабочее место. Естественно нам потребуется Microsoft Dynamics NAV 2009 SP1.

Подключаемые компоненты можно создавать для ролеориентированного клиента, это указывает на то, что нам потребуется сам ролеориентированный клиент. Так же нам нужен Microsoft Dynamics NAV Server (напомню, что ролеориентированный клиент является элементом трехзвенной архитектуры и без сервера работать не будет). Кроме того, чтобы подключить новый компонент нам потребуется классический клиент (разработка по-прежнему ведется в классическом клиенте).

Но это еще не все. Подключаемый компонент мы будем создавать с помощью Visual Studio (сейчас без нее никуда, настоятельно рекомендую заняться изучением - в жизни пригодится). Получить бесплатную версию можно здесь: http://www.microsoft.com/express/download/ (нас интересует Visual Studio Express for C#).

Далее…

Расширение функциональности ролеориентированного клиента NAV 2009 с помощью подключаемых компонентов. Пример 2.1. Мини браузер

Вторник, 1 Сентябрь, 2009

В данной статье продолжим работу с подключаемыми компонентами – новой возможности, появившейся в Dynamics NAV 2009 SP1. В предыдущей статье обещались чудеса, а показали всего лишь динамическое форматирование. В данной же статье все будет серьезней.

Начнем с того, что откроем Visual Studio 2008 и создадим новый C# - проект типа Class Library (File > New > Project). В открывшемся окне New Project введите название проекта. Microsoft рекомендует использовать следующий формат имени: МояКомпания.МойПродукт.RtcAddins.

New Project

Далее…

Расширение функциональности ролеориентированного клиента NAV 2009 с помощью подключаемых компонентов. Пример 2.2. Взаимодействие с ролеориентированным клиентом

Вторник, 1 Сентябрь, 2009

Итак, мы уже рассмотрели создание и подключение двух компонентов в ролеориентированном клиенте. В данной статье мы продолжим работу над NAV4U.WebAddin и попробуем разобраться с некоторыми нюансами, связанными с взаимодействием ролеориентированного клиента и подключаемого компонента.

Начнем с того, что предлагается два способа обмена информацией между ролеориентированным клиентом:

  1. С помощью свойства Value, объявленного в интерфейсе IValueControlAddInDefinition
  2. С помощью метода RaiseControlAddInEvent, объявленного в интерфейсе IEventControlAddInDefinition

Оба эти интерфейса реализованы в классе StringControlAddInBase.

Рассмотрим оба свойства подробнее.

Свойство Value.

Свойство Value, реализованные в классе StringControlAddInBase связано со свойством SourceExpr элемента страницы. С помощью этого свойства класс может получать информацию из базы данных, а также обновлять эту информацию.

У свойства Value есть два аксессора: set и get. С помощью этих аксессоров выполняется чтение и запись значения свойства.

Далее…

Расширение функциональности ролеориентированного клиента NAV 2009 с помощью подключаемых компонентов. Пример 3. Реализация интерфейса IValueControlAddInDefinition

Вторник, 1 Сентябрь, 2009

Итак, мы сильно продвинулись в теории и практике подключаемых компонентов. По крайней мере, мы так думаем. К сожалению, от полного понимания мы по-прежнему очень далеки. В данной статье попробуем проникнуть в концепции чуть глубже.

Начнем издалека. На панели инструментов Toolbox Visual Studio был обнаружен элемент управления NumericUpDown. Тут же возникло желание опробовать его в деле и в проект NAV4U.StyleControl был добавлен второй класс.

Примечание. Можно было бы создать проект с нуля, но было лень заниматься добавлением ссылок на сборки. Подписывать библиотеку тоже не хотелось. О том как создавать библиотеку “с нуля” можно прочитать в первой статье.

Вот, собственно говоря, код класса:

namespace StyleControl     
 
{     
 
  [ControlAddInExport("NAV4U.NumericUpDown")]     
 
  public class ApNumericUpDown : StringControlAddInBase     
 
  {     
 
    protected override Control CreateControl()     
 
    {     
 
      NumericUpDown tbcontrol = new NumericUpDown();     
 
      return tbcontrol;     
 
    }     
 
  }     
 
}

Далее…

Расширение функциональности ролеориентированного клиента NAV 2009 с помощью подключаемых компонентов. Пример 4. Использование компонентов ActiveX

Вторник, 1 Сентябрь, 2009

Да, мощные возможности предоставляет Visual Studio для создания своих собственных компонентов подключаемых к ролеориентированному клиенту. Но технология эта новая, а значит самих компонентов на рынке пока крайне мало. Однако на рынке полно компонентов ActiveX (в том числе бесплатных). Можно ли их использовать в качестве подключаемых компонентов?

MSDN говорит, что можно. Попробуем в этом убедиться на примере Microsoft Office Visio 2007 Viewer.

В первую очередь нужно создать новый проект NAV4U.VisioViewer. Как создавать и подписывать проекты было рассказано здесь.

Далее надо преобразовать определения типов из библиотеки COM-типов элементов управления ActiveX в элементы управления Windows Forms. Для этого используется программа импорта элементов ActiveX в Windows Forms (Aximp.exe). Она поставляется вместе с Visual Studio.

Откройте в проводнике папку C:\Program Files\Microsoft Office\Office12 (наверное не нужно говорить, что на компьютере должен быть установлен Microsoft Office 2007?). Найдите в папке файл VVIEWER.DLL и скопируйте его в папку вашего проекта.

У меня проект находится здесь:
C:\Users\apanko\Documents\Visual Studio 2008\Projects\NAV4U.VisioViewer

Далее…

Действия (Actions) в страницах NAV 2009 (часть 1).

Четверг, 23 Июль, 2009

При использовании ролеориентированного клиента NAV 2009 вместо привычных форм, пользователю отображаются новые объекты – страницы. В целом жалеть не о чем, так как они предоставляют на порядок больше возможностей по настройке по рабочего окружения (краткий обзор возможностей по настройке смотри в статье Что нового в Microsoft Dynamics NAV 2009).

Вместе со страницами в ролеориентированный интерфейс пришло такое понятие как “действия” (Actions). Эта сущность призвана заменить кнопки-меню, которые обычно находились в нижней левой части формы. Стоит отметить, что в NAV 2009 действия это несколько больше чем просто кнопки.

Действия (Actions) в Microsoft Dynamics NAV 2009

Далее…