setDataSources(analyzer: PP.Exp.EaxAnalyzer, arrSources: Array, openParams: Array, openOptions: PP.Exp.EaxDataSourceOpenMode, callback: PP.Delegate, fireEvent: Boolean, errCallback: PP.Delegate);
analyzer. Экспресс-отчет, для которого требуется установить источник данных;
arrSources. Массив объектов метабазы или их ключей;
openParams. Хеш-массив параметров, с которыми требуется открыть источник данных;
openOptions. Определяет режим извлечения куба - с сохраненным представлением по умолчанию или только данных;
callback. Возвратная функция;
fireEvent. Признак вызова события EaxMdService.MdLoaded. Допустимые значения:
true. При выполнении метода будет сгенерировано событие EaxMdService.MdLoaded;
false. При выполнении метода данное событие не будет сгенерировано;
errCallback. Возвратная функция, выполняемая в случае ошибки.
Метод setDataSources устанавливает источник данных для куба.
Для выполнения примера необходимо наличие на html-странице компонента ExpressBox с наименованием «expressBox» (см. «Пример создания компонента ExpressBox»). Предполагается также наличие в репозитории базы данных временных рядов или куба с идентификатором «OBJ_TS_DB», который в следующем примере будет установлен в качестве источника данных экспресс-отчета:
// Получаем сервис для работы с экспресс-отчетом var eaxMdService = expressBox._Service; // Обрабатываем событие MdLoaded eaxMdService.MdLoaded.add(function (sender, args) { if (args) { console.log("Загружен экспресс-отчёт «%s»", args.Source.getName()); } }); // Получаем документ экспресс-отчета var eaxAnalyzer = expressBox.getSource(); // Создаём ключ объекта метабазы, являющегося источником данных var source = new PP.Mb.Object({ Id: "OBJ_TS_DB" }); source.setOdId("567854567896556"); // Определяем параметр возвратной функции var dsArgs = new PP.Mb.Ui.PropertyChangedEventArgs({ PropertyName: PP.Exp.Ui.ControlType.DataSources, Metadata: { Keys: [source] }, TypeUpdateData: [PP.Exp.Ui.ViewTypeUpdate.DataView, PP.Exp.Ui.ViewTypeUpdate.Ribbon] }); // Определяем возвратную функцию var onSetDataSources = function (sender, args) { // Обновляем экспресс-отчет expressBox.refreshAll(); }; // Определяем функцию для обработки ошибки при задании нового источника данных var onErrCallback = function (sender, args) { console.log("Ошибка при задании нового источника данных"); }; // Устанавливаем новый источник данных для куба eaxMdService.setDataSources(eaxAnalyzer, [source], null, PP.Exp.EaxDataSourceOpenMode.None, PP.Delegate(onSetDataSources, this, dsArgs), true, PP.Delegate(onErrCallback, this));
В результате выполнения примера для текущего экспресс-отчета был установлен источник данных с идентификатором «OBJ_TS_DB». В консоли браузера было выведено наименование загруженного экспресс-отчёта:
Загружен экспресс-отчёт «Сравнение ВРП по регионам»