Конструктор KapBox

Синтаксис

Kap.KapBox({

    settings

});

Параметры

settings. JSON-объект с параметрами, применяющимися при создании компонента KapBox.

Доступны следующие параметры:

Имя параметра Тип Краткое описание
Обязательные параметры:
Metabase PP.Mb.Metabase Репозиторий, к которому будет осуществляться подключение.
ParentNode string DOM-вершина, в которой будет размещаться компонент.
Необязательные параметры:
Key number Ключ аналитической панели.
Moniker string Моникёр открытой аналитической панели.
Mode string Режим открытия аналитической панели: edit - редактирование, view - просмотр.
Inited function Возвратная функция, которая вызывается после инициализации компонента.
Saved function Возвратная функция, которая вызывается при сохранении аналитической панели.
ServicesPlugins boolean Определяет отображение плагинов, зарегистрированных через сервисы: true - отображаются, false (по умолчанию) - не отображаются.
Opened function Возвратная функция, которая вызывается при открытии аналитической панели.
Rendered function Возвратная функция, которая вызывается при отрисовке аналитической панели.
BlockFocused function Возвратная функция, которая вызывается при выделении блока.
ContextMenu function Возвратная функция, которая вызывается перед отображением контекстного меню.

Описание

Конструктор KapBox создает экземпляр класса Dashboard.

Комментарии

Реализует компонент KapBox для работы с аналитической панелью.

Пример

Для открытия аналитической панели с помощью конструктора KapBox создайте HTML-страницу и выполните код:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <title>KapBox</title>
    <script src="build/PP.js" type="text/javascript"></script>
    <script src="build/PP.Metabase.js" type="text/javascript"></script>
    <script src="build/PP.App.js" type="text/javascript"></script>
    <script src="build/PP.Express.js" type="text/javascript"></script>
    <script src="resources/Kap.resources.ru.js" type="text/javascript"></script>
    <script src="dashboard/dashboard.nocache.js" type="text/javascript"></script>
    <link href="build/PP.css" rel="stylesheet" type="text/css" />
    <link href="build/PP.App.css" rel="stylesheet" type="text/css" />
    <link href="build/PP.Metabase.css" rel="stylesheet" type="text/css" />
 
    <script type="text/javascript">
        // Зададим Url веб-сервиса PP.SOM в формате:
        // <http://<ServerName | IP-address>[:<Port>][/<VirtualCatalog>]/axis2/services/PP.SOM.Som>
        var serviceUrl = "http://localhost/FPBI_App_v9.2x64/axis2/services/PP.SOM.Som";
        var exportUrl = "http://localhost/FPBI_App_v9.2x64/axis2/services/PP.SOM.Som";
        var importUrl = "http://localhost/FPBI_App_v9.2x64/axis2/services/PP.SOM.Som";
        // Создадим функцию для открытия аналитической панели
        function OpenKap(connId) {
            metabase = new PP.Mb.Metabase({
                Id: "Metabase",
                PPServiceUrl: serviceUrl,
                ExportUrl: exportUrl,
                ImportUrl: importUrl,
                ConnectionOdId: { id: connId }
            });
            kapBox = new Kap.KapBox({
                Metabase: metabase, // репозиторий, к которому будет осуществляться подключение
                ParentNode: "DashboardBox", // DOM-вершина, в которую будет помещаться компонент KapBox
                ImagePath: "../build/img/", // путь к папке с картинками
                ResourcesPath: "../resources/", // путь к папке с ресурсами
                Inited: kapBoxInited, // обработчик события инициализации компонента
                Opened: kapBoxOpened, // обработчик события открытия компонента
                Rendered: kapBoxRendered, // обработчик события отрисовки компонента
                ContextMenu: kapContextMenu, // обработчик события вызова контекстного меню
                Collaboration: false, // выключаем режим совместной работы
                BlockFocused: kapBlockFocused // обработчик события выделения блока
            });
        }
        function onModuleInit() {
            if (PP.App.isMetabaseOpened()) {
                OpenKap(PP.App.getConnectionId());
            } else {
                // Точка входа для автономного запуска компонента KapBox
                var metabaseLogin = new PP.Mb.Metabase({ PPServiceUrl: serviceUrl,
                    Id: "Repository",
                    UserCreds: { UserName: "user", Password: "password" }
                });
                // При наличии ошибок при соединении с репозиторием будут выдаваться соответствующие сообщения
                metabaseLogin.Error.add(function (sender, args) {
                    alert(args.ResponseText);
                });
                metabaseLogin.open(function (sender, args) {
                    // Запоминаем открытый репозиторий на случай перезагрузки страницы
                    var connectionId = metabaseLogin.getConnectionId();
                    PP.App.setStorage("ConnectionId", connectionId);
                    PP.App.setStorage("ConnectOdId", { id: connectionId });
                    PP.App.setStorage("IsMbOpened", true);
                    OpenKap(connectionId);
                });
            }
        }
        function kapBoxInited() {
            console.log("Инициализация КАП")
        };
        function kapBoxOpened() {
            console.log("Открытие КАП")
        };
        function kapBoxRendered() {
            console.log("Отрисовка КАП")
        };
        // При выделении блока в консоль будет выводиться json-объект с параметрами выделенного блока
        function kapBlockFocused(sender, args) {
            currentBlock = args.Block;
            console.log(currentBlock)
        };
        // При нажатии правой клавишей мыши по рабочей области аналитической панели будет вызываться контекстное меню (по умолчанию не вызывается)
        function kapContextMenu() {
            function kapContextMenu(sender, args) {
                args.Menu.ShowMenu = true
            }
        };
    </script>
</head>
<body style="height: 100%;">
    <div id="DashboardBox" style="width: 100%; height: 100%;">
    </div>
</body>
</html>

Примечание. Через функцию onModuleInit() обязательно должно осуществиться подключение к базе данных. Функция вызывается до создания KapBox и Metabase.

После выполнения примера на странице будет открыт конструктор аналитических панелей:

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

При клике правой клавишей мыши по рабочей области компонента будет открыто меню:

При выделении блока аналитической панели (при переходе фокуса на блок аналитической панели) в консоль будет выводиться JSON-объект с параметрами выделенного блока.

Примечание. Для добавления блока выполните команду контекстного меню рабочей области аналитической панели «Новый блок».

См. также:

KapBox | Пример размещения компонента KapBox