从iframe外部触发“显示数据”

时间:2018-11-07 13:15:32

标签: angular powerbi powerbi-embedded angular7

我将powerBi报表嵌入到angular 7 Web应用程序中,我们使用Powerbi-Client与框架和PowerBi进行通信。我需要两件事:

  1. 右键单击报表时,如何隐藏上下文菜单或防止用户使用上下文菜单。
  2. 如何从IFrame外部触发“显示数据”选项。

谢谢

1 个答案:

答案 0 :(得分:0)

对于显示数据,您可以使用导出数据:

// Get models. models contains enums that can be used.
var models = window['powerbi-client'].models;

// Get a reference to the embedded report HTML element
var embedContainer = $('#embedContainer')[0];

// Get a reference to the embedded report.
report = powerbi.get(embedContainer);

// Retrieve the page collection and get the visuals for the first page.
report.getPages()
  .then(function (pages) {

    // Retrieve active page.
    var activePage = pages.find(function(page) {
      return page.isActive
    });

    activePage.getVisuals()
      .then(function (visuals) {

        // Retrieve the wanted visual.
        var visual = visuals.find(function(visual) {
          return visual.name == "VisualContainer4";
        });

        // Exports visual data
        visual.exportData(models.ExportDataType.Summarized)
          .then(function (result) {
            Log.logCsv(result.data);
          })
          .catch(function (errors) {
            Log.log(errors);
          });
        })
        .catch(function (errors) {
          Log.log(errors);
        });
  })
  .catch(function (errors) {
    Log.log(errors);
  });
            .catch(errors => {
                console.log(errors.message);
            });

在log.logCsv(result.data)中,您可以操纵数据以在pbi iframe之外执行任何操作。