开发者问题收集

在 Power BI 报告中设置活动页面

2020-08-06
961

我的报告中有 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 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。

3个回答

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

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

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

mkRabbani
2020-08-06

您看到的“未定义”错误的原因是 页[0] .setActive()

更改为:

305423194 < /代码>
user1806104
2020-10-12

解决方案:(截至 2023 年 7 月,版本 3.1.0 中的最新功能)

将输入页面设置为活动页面

set_active_page(page_name) 参数:

page_name(字符串):要设置为活动的页面的名称

用法:

report.set_active_page(page_name)

Jiny
2024-05-22