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-объект с параметрами выделенного блока.
Примечание. Для добавления блока выполните команду контекстного меню рабочей области аналитической панели «Новый блок».
См. также: