Далее будет описана разработка внешнего модуля ЛЭРС УЧЁТ на языке программирования C# в IDE Visual Studio.
1. Ссылки на сборки Lers Framework
В проект необходимо добавить ссылку на NuGet пакет Lers.Plugins.
2. Каркас внешнего модуля
Создайте новый класс, реализующий интерфейс IPlugin и содержащий в себе метод Initialize.
Пример
public class Plugin: IPlugin { private IPluginHost pluginHost; public void Initialize(IPluginHost pluginHost) { this.pluginHost = pluginHost; } }
3. Способ взаимодействия внешнего модуля с пользователем
Нужно выбрать как именно пользователь будет запускать внешний модуль. Можно добавить пункты в главное меню, в панель навигации, или создать шеврон на списке объектов учёта.
Запуск через пункт главного меню.
Пример
public class Plugin: IPlugin { public void Initialize(IPluginHost pluginHost) { foreach (var item in this.pluginHost.MainWindow.MainMenu.Items) { if (item.ID == (int)Lers.UI.SystemMenuId.Service) { // Добавляем подпункт в пункт главного меню Сервис. item.AddItem("Запустить внешний модуль", Properties.Resources.Image, true, OnItemClick); } } } private void OnItemClick(object sender, EventArgs e) { // TODO: Код работы внешнего модуля } }
Запуск через пункт панели параметров Действия и контекстного меню на списках точек и объектов учета.
Пример
public class Plugin: IPlugin { public void Initialize(IPluginHost pluginHost) { // Регистрируем пункт для панели Действия и контекстного меню. Plugin.Host.MainWindow.RegisterObjectAction(ObjectType.MeasurePoint, "Запустить внешний модуль", null, OnItemClick); } private void OnItemClick(int actionId, object sender) { // TODO: Код работы внешнего модуля } }
Запуск через шеврон на списке точек и объектов учета.
Пример
public class Plugin: IPlugin { public void Initialize(IPluginHost pluginHost) { Plugin.Host.MainWindow.AddChevron(ObjectType.MeasurePoint, "Запустить внешний модуль", Properties.Resources.Image, OnChevronPress); } private void OnChevronPress(object sender, ChevronPressEventArgs e) { // TODO: Код работы внешнего модуля } }
4. Атрибуты внешнего модуля
Каждый внешний модуль должен содержать в своих атрибутах определённые параметры и дополнительную информацию. Более подробно атрибуты описаны в основной статье.