Wan*_*fee 1 powerbi powerbi-embedded
我有一个数据源,一般是每个街道、城市、州和国家的人口。
在我的源报告中,我展示了国家和州的所有视觉效果。在我的目标报告中,我展示了城市和街道的视觉效果。
我使用此文档在 Power BI Desktop 中使用跨报表钻取将跨报表钻取添加到我的源报表中。当我从 Power BI 服务帐户访问我的报告时,它工作正常。
但是当我尝试使用源报告作为嵌入式链接时,这不起作用。Power BI 对于这些功能是否有任何限制(或者)有什么方法可以实现这一点?
请建议。!
小智 5
嵌入报告时,您可以指定要嵌入的确切报告。然而,跨报表钻取将尝试打开目标报表(而不是嵌入的即源报表),这在 Power BI 服务中不是问题。
解决方法:
在事件侦听器中,存储过滤器并将报表嵌入配置中的嵌入 URL 从源更改为目标。例子:
fil = [];
report.on("commandTriggered", function (command) {
for (i = 0; i < command.detail.dataPoints[0].identity.length; i++) {
var basicFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: command.detail.dataPoints[0].identity[i].target,
operator: "In",
values: [command.detail.dataPoints[0].identity[i].equals],
}
fil.push(basicFilter);
}
embedConfiguration.embedUrl = "<YOUR REPORT EMBED URL>";
embedConfiguration.id = "<YOUR REPORT ID>";
report = powerbi.embed(embedContainer, embedConfiguration);
});
Run Code Online (Sandbox Code Playgroud)
然后在加载事件的报告上应用所有过滤器:
report.on("loaded", function () {
report.getFilters()
.then(filters => {
for (i = 0; i < fil.length; i++) {
filters.push(fil[i]);
}
return report.setFilters(filters);
});
});
Run Code Online (Sandbox Code Playgroud)
在目标报表中添加一个按钮以返回源报表。使用“buttonClicked”事件侦听器捕获后退按钮的单击。触发此事件时,将容器的嵌入 URL 更改为源报表。