Для выполнения примера необходимо создать html-страницу и выполнить следующие действия:
1. Добавить ссылки на следующие css-файлы: PP.css и PP.Metabase.css.
Также нужно добавить ссылки на js-файлы: PP.js, PP.Metabase.js, PP.Express.js, resources.ru.js.
2. Затем в теге <head> добавить сценарий, который создаст диалог для сохранения объекта в репозитории:
<script type="text/javascript">
var metabase, eaxMdService, eaxAnalyzer, saveDialog;
// Функция, выполняемая при загрузке html-документа
function onLoad() {
// Укажем путь к корневой папке, содержащей файлы ресурсов
PP.resourceManager.setRootResourcesFolder("../resources/");
// Установим языковые настройки для ресурсов
PP.setCurrentCulture(PP.Cultures.ru);
// Создаём соединение с репозиторием
metabase = new PP.Mb.Metabase({
PPServiceUrl: "/PPService.axd?action=proxy",
Id: "prognozplatform7",
UserCreds: {
UserName: "user",
Password: "password"
}
});
// Открываем соединение с репозиторием
metabase.open();
// Создаем сервис для работы с экспресс-отчётами
eaxMdService = new PP.Exp.EaxMdService({
Metabase: metabase
});
// Откроем экспресс-отчет с ключом 108
eaxAnalyzer = eaxMdService.editDocument(108);
// Определим массив фильтров для диалога
var filters = [{
Filters: [2561, 0],
ResourceKey: "openDialogExpressReports",
iconIndex: 16
}, {
Filters: [2562, 0],
ResourceKey: "openDialogReports",
Content: 111,
iconIndex: 17
}];
// Определим массив языков для перевода имени сохраняемого объекта
var displayLanguages = [];
displayLanguages.push(PP.Cultures.ru.LCID); // Русский язык
displayLanguages.push(PP.Cultures.en.LCID); // Английский язык
// Создадим диалог для сохранения объекта
saveDialog = new PP.Ui.MetabaseSaveDialog({
DefaultId: "saveDialog102", // Идентификатор сохраняемого объекта
/* Определим наименование сохраняемого объекта */
DefaultName: "Динамика показателей по региону",
Metabase: metabase,
FiltersSet: filters, // Массив фильтров для диалога
CurrentFilter: filters[1], // Текущий фильтр
ImagePath: "../build/img/",
ShowOnlyFolders: false, // Отбражаем и папки, и файлы в навигаторе объектов
OpenToKey: parseInt(eaxAnalyzer.getParentKey() || 0),
// Определим переводы имени сохраняемого объекта на русском и английском языках
Names: [{
locale: PP.Cultures.ru.LCID,
name: "Динамика показателей по региону"
}, {
locale: PP.Cultures.en.LCID,
name: "Dynamics indicators by region"
}],
ShowTranslateButton: true, // Сделаем видимой кнопку для отображения переводов имени объекта
// Установим диалог для перевода имени сохраняемого объекта на различные языки.
TranslateDialog: new PP.Mb.Ui.TranslateDialog({
DisplayLanguages: displayLanguages
}),
SaveAsObject: function (sender, args) { // Обработаем событие SaveAsObject
console.log("Имя сохранённого объекта на разных языках:");
var names = args.Names;
for (var i in names) {
var n = names[i];
console.log("Код языка: " + n.locale + ", имя: " + n.name);
}
}
});
saveDialog.show(); // Отобразим диалог для сохранения объекта
}
</script>
3. В теге <body> в качестве значения атрибута «onLoad» указать название функции, создающей диалог для сохранения объекта в репозиторий:
<body onload="onLoad();"></body>
После выполнения примера на html-странице будет размещён компонент MetabaseSaveDialog:

После нажатия на кнопку «OK» будет сгенерировано событие SaveAsObject, обработчик которого выведет в консоли браузера следующий текст:
Имя сохранённого объекта на разных языках: SaveDialog.html:79
Код языка: 1033, имя: Dynamics indicators by region SaveDialog.html:83
Код языка: 1049, имя: Динамика показателей по региону
См. также: