Для расширения возможностей построения аналитической панели доступно подключение плагина.
Для подключения плагина к аналитической панели:
в настольном приложении зарегистрируйте плагин в сервисах. После выполнения действия плагин будет зарегистрирован в общих ресурсах и доступен для вставки в аналитическую панель;
в веб-приложении и конструкторе бизнес-приложений:
Добавьте файлы плагина <наименование плагина>.js и <наименование плагина>.css в папку установки веб-приложения или конструктора бизнес-приложений.
Путь до папки установки веб-приложения:
в ОС Windows: C:\Program Files (x86)\Foresight\Analytics Platform 10.x Web Application;
в ОС Linux: /opt/Foresight/fp10.x-webserver.
Путь до папки установки конструктора бизнес-приложений:
в ОС Windows: C:\Program Files (x86)\Foresight\Designer of Business Application 10.x Web Server;
в ОС Linux: /opt/Foresight/dba/10.x.
Совет. Для удобного использования плагинов создайте отдельную папку plugins, в которой будут размещаться плагины.
Добавьте описание плагина в конфигурационном файле PP.xml для веб-приложения или DBA.config.json для конструктора бизнес-приложений.
<plugins>
<plugin type="PP.Ui.Dashboard.MyLabel" path="../plugins/MyLabel.js" css="../plugins/MyLabel.css" loaded="false" name="MyLabel"/>
<plugin ... />
</plugins>
"plugins": [
{
"Type": "PP.Ui.Dashboard.MyLabel", //идентификатор плагина, соответствующий типу экземпляра объекта
"Path": "../plugins/MyLabel.js", //относительный путь до JS-файла плагина
"Css": "../plugins/MyLabel.css", //относительный путь до CSS-файла со стилями плагина
"Name": "MyLabel", //наименование плагина
"Loaded": false //способ загрузки плагина
},
{
...
}
]
Перезапустите веб-сервер.
Также в веб-приложении помимо указанного способа можно подключить плагин через репозиторий.
Подключение плагина через репозиторий
После выполнения действий при открытии аналитической панели в веб-приложении будет выполняться автономная регистрация плагина. Плагин будет доступен для вставки в аналитическую панель.
При разработке веб-приложения с помощью DHTML-компонентов для подключения плагина через репозиторий используйте конструктор KapBox или метод Kap.regPluginBlock, используемый в качестве отдельного способа подключения плагина.
Для вставки подключенного плагина выполните одно из действий в аналитической панели:
выполните команду, соответствующую названию плагина, в раскрывающемся меню кнопки «Плагины» на вкладке ленты «Главная» или «Вставка»;
выполните команду, соответствующую названию плагина, в раскрывающемся меню пункта «Новый блок > Плагины» в контекстном меню аналитической панели.
После выполнения действий плагин будет вставлен в аналитическую панель отдельным объектом.
Регистрация плагина осуществляется в среде разработки на языке программирования Fore с помощью свойства ISharedPluginsContainer.Plugins.
Для регистрации плагина в сервисах добавьте ссылки на системные сборки Metabase, Fore и выполните модуль:
для настольного приложения:
Sub UserProc;
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" укажите идентификатор формы-мастера
// Сохраним
созданный плагин
(cont As IMetabaseObject).Save;
End Sub UserProc;
для веб-приложения:
Sub UserProc;
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" укажите имя плагина, которое будет отображаться в аналитической панели
// Зададим относительный путь JS-скрипта
plugin.WebUrl := "url"; // Вместо "url" укажите относительный путь JS-скрипта из корневой папки веб-приложения
// Сохраним
созданный плагин
(cont As IMetabaseObject).Save;
End Sub UserProc;
После выполнения модуля плагин будет зарегистрирован в сервисах и доступен для вставки в аналитическую панель.
См. также: