Пример создания компонента MetabaseSaveDialog

Для выполнения примера необходимо создать 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, имя: Динамика показателей по региону

См. также:

MetabaseSaveDialog