Реализация матричной формы с помощью веб-служб

Воскресенье, 12 Сентябрь, 2010

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

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

Уже догадались к чему я клоню?

Да, да. Я тоже подумал о создании матричной формы.

Как известно в версии NAV 2009 с матричными формами есть проблемы. Даже так. Изначально в Dynamics NAV 2009 матричные формы перестали поддерживаться и были заменены недружелюбными поделками на базе страниц (Page). Хотя я и не являюсь фанатом матричных форм, однако волею судьбы внес некий вклад в смягчение сложившейся ситуации:

Но никогда не следует останавливаться на достигнутом и сейчас мы попробуем реализовать матричную форму с помощью веб-служб.

Далее…

Подключение матричной формы в ролеориентированный клиент

Воскресенье, 12 Сентябрь, 2010

В прошлой статье мы создали приложение, отображающее матричную форму с остатками товаров. Теперь же хотелось бы получить подключаемый компонент с аналогичной функциональностью. Мы подробно рассматривали технологию создания подключаемых компонентов в статьях девятого выпуска. Настоятельно рекомендую ознакомиться с данной технологией перед тем как читать настоящую статью.

Пожалуй приступим.

Создадим новый проект типа Class Library (File > New > Project). Назовем его NAV4U.ItemMatrix.

Далее добавим ссылки на сборки, которые отвечают за базовую графическую функциональность и создание Windows интерфейса:

  • System.Drawing
  • System.Windows.Forms

Кроме этого нужно добавить ссылку на библиотеку Microsoft.Dynamics.Framework.UI.Extensibility.dll из папки «C:\Program Files\Microsoft Dynamics NAV\60\RoleTailored Client».

Добавим необходимые using директивы:

  1. using Microsoft.Dynamics.Framework.UI.Extensibility;
  2. using Microsoft.Dynamics.Framework.UI.Extensibility.WinForms;
  3. using System.Windows.Forms;
  4. using System.Drawing;

Добавим ссылки на веб-службы:

ItemCardWS http://localhost:7047/DynamicsNAV/WS/CRONUS%20International%20Ltd/Page/ItemCard

LocationListWS http://localhost:7047/DynamicsNAV/WS/CRONUS%20International%20Ltd/Page/LocationList

Далее…

Введение в веб-службы в Microsoft Dynamics NAV 2009. Часть 1.

Воскресенье, 4 Апрель, 2010

Как известно появление Dynamics NAV 2009 в ноябре 2008 года было событием знаковым. При сохранении всего богатства функционала, наработанного за десятилетия эволюционного развития, была представлена новая технологическая платформа.

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

Если про ролеориентированный клиент и его преимущества хоть и кратко, но уже было написано , то про веб-службы я еще не писал.

Начну, как водится, издалека. Итак, представим себе компанию, которая решила внедрить себе ERP решение. Уже автоматизирована операционная деятельность (закупки, продажи, склад, производство и т.п.), финансы (расчеты, денежные средства), возможно бухгалтерия (рекомендую это делать на базе NAV EXPRESS). Но возможно, что в компании есть ряд задач, где использование Dynamics NAV нерационально. Причины могут быть различны, например, стоимость рабочего места или наличие программного обеспечения заточенного под определенную деятельность. Это не важно. Важен факт, что есть другое программное обеспечение и перед нами встает задача интегрировать два продукта: Dynamics NAV и «нечто».

Далее…

Введение в веб-службы в Microsoft Dynamics NAV 2009. Часть 2.

Воскресенье, 4 Апрель, 2010

В предыдущей статье мы познакомились с веб-службами Dynamics NAV 2009 и даже создали простое, очень простое приложение, которое считывает данные из Dynamics NAV. Хотя чтение данных не самая сложная задача мы все же детально разберемся с доступными методами.

Продолжим работу над примером из предыдущей статьи и выясним, за что отвечают параметры метода ReadMultiple. Начнем с первого параметра – это массив фильтров, который передается веб-службе. В результате возвращаемый набор данных содержит только нужную информацию.
Проверим как это работает и заменим строку

dataGridView1.DataSource = ItemCardService.ReadMultiple(null, null, 0);

На код:

List<ItemCardWS.ItemCard_Filter filters = new List<ItemCardWS.ItemCard_Filter>();

ItemCardWS.ItemCard_Filter descFilter = new ItemCardWS.ItemCard_Filter(); 
descFilter.Field = ItemCardWS.ItemCard_Fields.Description;

descFilter.Criteria = “*a*&*p*”;

filters.Add(descFilter); 
dataGridView1.DataSource = ItemCardService.ReadMultiple(filters.ToArray(), null, 0);

Что делает приведенный выше код.

Вначале мы создаем список объектов типа фильтр по товару. Затем создаем объект типа фильтр по товару. Объект типа фильтр имеет свойства «Field», куда указывается поле, по которому происходит фильтрация и «Criteria» - собственно сама строка фильтра, которую обычно указывают в методе SETFILTER. В приведенном выше примере указано, что фильтровать надо по полю Описание (Description) и поле должно содержать инициалы автора на английском.

Далее…

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

Далее…