首页 > 解决方案 > 在 Power BI 报表中设置活动页面

问题描述

我的报告中有 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/mp/93716#M ..。并尝试了建议的解决方案,但出现以下错误:

Uncaught TypeError: Cannot read property 'setActive' of undefined

然后我继续检查 Power BI Playground 并使用他们在那里提供的确切代码,即

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。

标签: powerbi

解决方案


有一种解决方法可以满足您的目的。正如您所说,您有不同的网站,并且您希望根据来自哪个网站的请求在报告中显示不同的页面。

您可以在 Power BI 服务的报告中列出不同页面的浏览器 URL。只需转到报告的不同页面,您将获得页面链接。你可以看到,同一个页面总是会在浏览器中生成唯一的 URL。因此,如果您的报告中有 4 个页面,您将从浏览器中获得 4 个唯一 URL。

现在,您可以在您网站的链接中设置目标 URL(特定于页面)。希望这个技巧能奏效。


推荐阅读