Power BI Embedded Link 的跨报表钻取选项

Wan*_*fee 1 powerbi powerbi-embedded

我有一个数据源,一般是每个街道、城市、州和国家的人口。

在我的源报告中,我展示了国家和州的所有视觉效果。在我的目标报告中,我展示了城市和街道的视觉效果。

我使用此文档在 Power BI Desktop 中使用跨报表钻取将跨报表钻取添加到我的源报表中。当我从 Power BI 服务帐户访问我的报告时,它工作正常。

但是当我尝试使用源报告作为嵌入式链接时,这不起作用。Power BI 对于这些功能是否有任何限制(或者)有什么方法可以实现这一点?

请建议。!

小智 5

嵌入报告时,您可以指定要嵌入的确切报告。然而,跨报表钻取将尝试打开目标报表(而不是嵌入的即源报表),这在 Power BI 服务中不是问题。

解决方法:

  1. 一种解决方法是您可以将目标报表合并到源报表中,并在同一报表中使用钻取
  2. 另一个解决方法是您可以将上下文菜单中的选项添加到视觉对象,如此处所述

在事件侦听器中,存储过滤器并将报表嵌入配置中的嵌入 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 更改为源报表。