У меня в отчете 4 страницы. Мне нужно отображать разные страницы в зависимости от веб-сайта, который в настоящее время просматривает клиент. Изначально у меня было 4 разных конфигурации, которые загружали отчет 4 раза. Конечно, это сильно повлияло на производительность и просто не является правильным решением.
Сначала я пробовал это
var report = powerbi.embed($reportContainer.get(0), embedConfigurationMain);
report.setFilters([basicFilterMain, stocktakeIdFilterMain]);
var page = report.page('ReportSectionxxxxxxxxx');
page.setActive();
Но он по-прежнему отображает страницу по умолчанию отчет.
Затем я нашел человека с похожей проблемой здесь https://community.powerbi.com/t5/Developer/set-active-page-in-report-with-JavaScript-API/m-p/93716#M .. . и попробовал предложенное решение, но получаю следующую ошибку:
Uncaught TypeError: Cannot read property 'setActive' of undefined
Затем я проверял игровую площадку Power BI и использовал точный код, который они там предоставляют, а именно:
report.getPages()
.then(function (pages) {
pages[0].setActive()
.then(function () {
Log.logText("Active page was set to: \"" + pages[0].displayName + "\"");
})
.catch(function (errors) {
Log.log(errors);
});
})
.catch(function (errors) {
Log.log(errors);
});
Но все равно радости нет, ничего не происходит. Даже не получаю сообщения в консоли.
Как правильно настроить активную страницу отчета в JavaScript API? Я использую самую последнюю версию Power BI Embedded SDK.