Kap.KapBox

Синтаксис

KapBox.KapBox (settings)

Параметры

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

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

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

Описание

Конструктор KapBox создает конструктор аналитической панели.

Комментарии

Создает экземпляр класса Kap.Dashboard.

Пример

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

1. В теге HEAD добавьте ссылку на файл dashboard.nocache.js. В приложении должны располагаться в одной директории папки «dashboard» (с исполняемыми файлами для конструктора аналитических панелей) и «build» (с исходными файлами веб-приложения Prognoz Platform 8). Данные папки можно взять из корневой папки установленного веб-приложения Prognoz Platform 8.

2. В теге SCRIPT добавьте код для создания конструктора аналитических панелей:

    <script type="text/javascript">
        var serviceUrl = "PPService.axd?action=proxy";
        var exportUrl = "PPService.axd?action=export";
        var importUrl = "PPService.axd?action=import";
        var kapBox;
        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, //репозиторий Prognoz Platform 8, к которому будет осуществляться подключение
                ParentNode: "DashboardBox", //DOM-вершина, в которую будет помещаться компонент KapBox
                ImagePath: "../build/img/", //путь к папке с картинками
                ResourcesPath: "../resources/", //путь к папке с ресурсами
                Inited: kapBoxInited, //обработчик события инициализации компонента
                Opened: kapBoxOpened, //обработчик события открытия компонента
                Rendered: kapBoxRendered, //обработчик события отрисовки компонента
                ContextMenu: kapContextMenu, //обработчик события вызова контекстного меню
                BlockFocused: kapBlockFocused, //обработчик события выделения блока
                Collaboration: true//включаем режим совместной работы
            });
        }
        function onModuleInit() {
            if (PP.App.isMetabaseOpened()) {
                OpenKap(PP.App.getConnectionId());
            } else {
                PP.Ui.getConfig().setChart(PP.AppConfig.Chart); // устанавливаем глобальную настройку для диаграммы
                //точка входа для автономного запуска компонента KapBox
                var metabaseLogin = new PP.Mb.Metabase({ PPServiceUrl: serviceUrl,
                    Id: "PrognozPlatform_systest",
                    UserCreds: { UserName: "sa", Password: "Qwerty1" }
                });
                //при наличии ошибок при соединении с репозиторием будут выдаваться соответствующие сообщения
                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>

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

3. В теге BODY добавьте элемент DIV, в котором будет размещаться конструктор аналитических панелей:

<body style="height: 100%;">
    <div id="DashboardBox" style="width: 100%; height: 100%;">
    </div>
</body>

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

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

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

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

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

См. также:

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