Power BI Embedded Link的跨报表追溯选项

时间:2019-06-12 11:32:59

标签: powerbi powerbi-embedded

我有一个数据源,通常是每个街道,城市,州和国家/地区的人口。

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

我正在使用此文档Use cross-report drill through in Power BI Desktop交叉报告追溯至源报告。当我从Power BI服务帐户访问我的报告时,这工作正常。

但是,当我尝试将源报告用作嵌入式链接时,此操作不起作用。这些功能在Power BI中是否有任何限制(或)有没有办法实现?

请提出建议!!

1 个答案:

答案 0 :(得分:4)

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

解决方法:

  1. 一种解决方法是,您可以将目标报告合并到源报告中,并在同一报告中使用追溯功能。
  2. 另一个解决方法是,您可以按照说明here
  3. 在上下文菜单中向视觉对象添加一个选项。

在事件侦听器中,存储过滤器并在报告的嵌入配置中将嵌入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);
});

然后将所有过滤器应用于已加载事件的报表:

report.on("loaded", function () {
   report.getFilters()
      .then(filters => {
          for (i = 0; i < fil.length; i++) {
             filters.push(fil[i]);
          }
          return report.setFilters(filters);
       });
});

在目标报告中添加一个按钮以返回到源报告。使用“ buttonClicked”事件监听器捕获后退按钮的点击。 触发此事件后,将容器的嵌入URL更改为源报告。