Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 在Power BI报告中设置活动页面_Powerbi - Fatal编程技术网

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

Powerbi 在Power BI报告中设置活动页面,powerbi,Powerbi,我的报告有4页。我需要根据客户当前查看的网站显示不同的页面。最初,我有4种不同的配置,加载报告4次。当然,这对性能有很大影响,根本不是正确的解决方案 起初,我试过这个 var report = powerbi.embed($reportContainer.get(0), embedConfigurationMain); report.setFilters([basicFilterMain, stocktakeIdFilterMain]); var page = report.page('Repo

我的报告有4页。我需要根据客户当前查看的网站显示不同的页面。最初,我有4种不同的配置,加载报告4次。当然,这对性能有很大影响,根本不是正确的解决方案

起初,我试过这个

var report = powerbi.embed($reportContainer.get(0), embedConfigurationMain);
report.setFilters([basicFilterMain, stocktakeIdFilterMain]);
var page = report.page('ReportSectionxxxxxxxxx');
page.setActive();
但它仍然显示报告的默认页面

然后我在这里找到了一个有类似问题的人。并尝试了建议的解决方案,但出现以下错误:

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的最新版本。

有一个解决方案可供您使用。正如你所说,你有不同的网站,你想在你的报告中显示不同的页面根据请求来自哪个网站

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

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

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

改为:

report.getPages()
.then(function (page) {
    page.setActive()
        .then(function () {
            Log.logText("Active page was set to: \"" + page.displayName + "\"");
        })
        .catch(function (errors) {
            Log.log(errors);
        });
})
.catch(function (errors) {
    Log.log(errors);
});