Расширение функциональности ролеориентированного клиента 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

Далее…

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

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

Итак, долгожданное продолжение статьи . Это как многие догадались шутка, т.к. первая часть статье вышла в этом же номере.

Ну что ж. Перейдем к делу, точнее к действиям. В предыдущей части мы рассмотрели действия, которые находятся в меню Actions, Related Information и Reports. Также мы узнали, как создавать действия на панели действий. Кроме того познакомились с новой возможностью, появившейся в NAV 2009 SP1, которая позволяет программно создавать новые категории в панели действий.

Как помним, для создания действий мы использовали Action Designer. Как мы выяснили любое действие должно находиться в своеобразном контейнере, т.е. принадлежать элементу типа ActionContainer. Контейнеры бывают шести типов, четыре из которых мы рассмотрели в предыдущей статье. В данной статье мы рассмотрим оставшиеся два типа контейнеров и влияние, которое они оказывают на систему. К оставшимся двум типам контейнером относятся HomeItems и ActivityButtons.

Далее…

C# в Microsoft Dynamics NAV 2009

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

Начнем издалека: в конце 2009 года Microsoft выпустил новую версию одного из своих бизнес-решений - Microsoft Dynamics NAV 2009. При сохранении функционала произошло значительное расширение технологических возможностей:

  • Трехзвенная архитектура (улучшена масштабируемость и безопасность решения)
  • Ролеориентированный клиент (гибкая настройка интерфейса для каждого пользователя)
  • Веб-службы (интеграция со сторонними приложениями)

Все это не могло не сказаться на внутренней организации решения. Так в частности Microsoft Dynamics NAV Server (не путать с Microsoft Dynamics NAV Database Server) не умеет исполнять код написанный на C/AL, более того он не понимает формы. Вместо этого Dynamics NAV Server неплохо умеет управляться с C# и WinForms.

Далее…