Подключение плагина к аналитической панели

Для расширения возможностей построения аналитической панели доступно подключение плагина.

Для подключения плагина к аналитической панели:

Путь до папки установки веб-приложения:

Путь до папки установки конструктора бизнес-приложений:

Совет. Для удобного использования плагинов создайте отдельную папку plugins, в которой будут размещаться плагины.

    1. Добавьте описание плагина в конфигурационном файле PP.xml для веб-приложения или DBA.config.json для конструктора бизнес-приложений.

В файле PP.xml для описания плагина используйте раздел <plugins>:
<plugins>
    <plugin type="PP.Ui.Dashboard.MyLabel" path="../plugins/MyLabel.js" css="../plugins/MyLabel.css" loaded="false" name="MyLabel"/>
    <plugin ... />
</plugins>
В файле DBA.config.json для описания плагина используйте поле plugins:
"plugins": [
    {
        "Type": "PP.Ui.Dashboard.MyLabel", //идентификатор плагина, соответствующий типу экземпляра объекта
        "Path": "../plugins/MyLabel.js", //относительный путь до JS-файла плагина
        "Css": "../plugins/MyLabel.css", //относительный путь до CSS-файла со стилями плагина
        "Name": "MyLabel", //наименование плагина
        "Loaded": false //способ загрузки плагина
    },
    {
        ...
    }
]

Важно. Для преднастроенных плагинов зарезервированы идентификаторы: PP.Ui.Dashboard.Sankey - «Sankey-диаграмма»; PP.Ui.Dashboard.Gantt - «Диаграмма Ганта»; PP.Ui.Dashboard.Indicator - «Индикатор». Убедитесь, что атрибут type содержит идентификатор, отличный от зарезервированных.

    1. Перезапустите веб-сервер.

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

Подключение плагина через репозиторий

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

При разработке веб-приложения с помощью 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;

После выполнения модуля плагин будет зарегистрирован в сервисах и доступен для вставки в аналитическую панель.

См. также:

Плагины | Создание плагина