При работе с инструментом «Аналитические панели» доступно расширение его возможностей за счет подключения внешних модулей (плагинов).
Подключение плагина выполняется из настольного приложения продукта «Форсайт. Аналитическая платформа».
Для подключения плагина в настольное и веб-приложение:
Создайте форму-визуализатор. Данная форма содержит компоненты, образующие внешний вид плагина, и код, описывающий логику работы компонентов в плагине. Форма-визуализатор должна наследоваться от класса AdhocUserViewForm. Особенности кода формы-визуализатора:
если плагин должен поддерживать хранимые свойства, то создайте реализацию методов AdhocUserViewForm.SaveSettings и AdhocUserViewForm.LoadSettings;
если плагин должен поддерживать определенные источники данных, то создайте реализацию свойства AdhocUserViewForm.SupportedSource с указанием в нем ClassId требуемых источников.
Создайте форму-мастер. Данная форма содержит компоненты, образующие вкладки боковой панели для настройки плагина, и код, описывающий логику применения настроек к плагину. Форма-мастер должна наследоваться от класса AdhocUserMasterForm.
Создайте js-скрипт плагина, который будет использоваться в веб-приложении. Скрипт должен быть описан согласно спецификации разработки на javaScript. Особенности кода js-скрипта плагина приведены в разделе «Структура js-скрипта плагина».
Расположите созданный скрипт в каталог, в который установлено веб-приложение.
Сформируйте URL-адрес для js-скрипта плагина,
используемого в веб-приложении.
Пример URL-адреса:
http://test/fp_App_v9.2/app/plugin.js
Где:
test. Наименование рабочей станции, на которой установлено веб-приложение;
fp_App_v9.2. Наименование виртуального каталога, в котором расположено веб-приложение;
app. Наименование физического каталога, в котором расположен плагин в веб-приложении;
plugin.js. js-скрипт плагина.
Выполните модуль, содержащий следующую процедуру:
Sub AddPlugin;
Var
mb: IMetabase;
plugins: ISharedPlugins;
cont: ISharedPluginsContainer;
adhoc_plugs: ISharedAdhocPlugins;
plugin: ISharedAdhocPlugin;
Begin
// Получаем объект для работы с текущим репозиторием
mb := MetabaseClass.Active;
// Получаем объект для работы с контейнером плагинов
cont := mb.SpecialObject(MetabaseSpecialObject.SharedParams).Edit As ISharedPluginsContainer;
// Получаем объект для работы с плагинами
plugins := cont.Plugins;
// Получаем коллекцию плагинов инструмента "Аналитические панели"
adhoc_plugs := plugins.AdhocPlugins;
// Создаем новый плагин
plugin := plugins.AdhocPlugins.Add;
// Задаем идентификатор и наименование плагина
plugin.Id := "ID"; // Вместо "ID" укажите уникальный идентификатор плагина
в верхнем регистре, совпадающий с идентификатором в структуре js-скрипта
плагина
plugin.Name := "name"; // Вместо "name" укажите имя плагина, которое будет отображаться в аналитической панели
// Задаем форму-визуализатор и форму-мастер
plugin.ViewForm := mb.ItemById("ViewForm_Id"); // Вместо "ViewForm_Id" укажите идентификатор формы-визуализатора
plugin.MasterForm := mb.ItemById("MasterForm_Id"); // Вместо "MasterForm_Id" укажите идентификатор формы-мастера
// Задаем URL с js-скриптом для использования в веб-приложении
plugin.WebUrl := "url"; // Вместо "url" укажите относительный
путь плагина из корневой папки веб-приложения
// Сохраняем созданный плагин
(cont As IMetabaseObject).Save;
End Sub AddPlugin;
Зарегистрируйте плагин.
Для подключения плагина только в настольное приложение выполните следующие шаги:
Создайте форму-визуализатор.
Создайте форму-мастер.
Создайте модуль, содержащий процедуру. Из кода процедуры удалите строку:
plugin.WebUrl := "url";
Выполните модуль.
Более подробное описание шагов приведено выше.
Для подключения плагина только в веб-приложение выполните следующие шаги:
Создайте js-скрипт плагина.
Создайте модуль, содержащий процедуру. Из кода процедуры удалите строки:
plugin.ViewForm := mb.ItemById("ViewForm_Id");
plugin.MasterForm := mb.ItemById("MasterForm_Id");
Выполните модуль.
Зарегистрируйте плагин.
Более подробное описание шагов приведено выше.
См. также: