是否可以通过使用Power Bi Rest API进行过滤来获取报告?

时间:2018-12-11 08:54:16

标签: powerbi powerbi-embedded

是否可以使用Power Bi Rest API通过过滤获取报告?我想嵌入按记录过滤的Power Bi报告。我在power bi rest api上看不到任何选项,那么如何通过过滤器获取所有报告并将报告嵌入到我的应用程序中?

由于我将powerbi.js用作javascript客户端,因此以下是示例代码: https://github.com/Microsoft/PowerBI-JavaScript

    var tokenType = 'embed';

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

    // We give All permissions to demonstrate switching between View and 
    //Edit mode and saving report.
    var permissions = models.Permissions.All;

    var config = {
        type: 'report',
        tokenType: tokenType == '0' ? models.TokenType.Aad : 
        models.TokenType.Embed,
        accessToken: txtAccessToken,
        embedUrl: txtEmbedUrl,
        id: txtEmbedReportId,
        permissions: permissions,
        settings: {
            filterPaneEnabled: true,
            navContentPaneEnabled: true
        }
    };

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

    // Embed the report and display it within the div container.
    var report = (<any>window).powerbi.embed(embedContainer, config);

1 个答案:

答案 0 :(得分:0)

嵌入报表时,可以在装入报表时使用Embed Configuration应用过滤器。您还可以稍后动态更改过滤器。

这里是filters wiki的引文:

  

过滤器是具有特殊属性集的JavaScript对象。当前,过滤器有五种类型:BasicAdvancedRelative DateTop NInclude/Exclude,它们与您可以通过筛选器窗格。有相应的接口IBasicFilterIAdvancedFilterIRelativeDateFilterITopNFilterIIncludeExcludeFilter,描述了它们所需的属性。

例如,您的过滤器可以这样构造:

const basicFilter: pbi.models.IBasicFilter = {
  $schema: "http://powerbi.com/product/schema#basic",
  target: {
    table: "Sales",
    column: "AccountId"
  },
  operator: "In",
  values: [1,2,3],
  filterType: pbi.models.FilterType.BasicFilter
}

您应该在报表的配置filters属性中传递此过滤器。