是否可以使用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);
答案 0 :(得分:0)
嵌入报表时,可以在装入报表时使用Embed Configuration应用过滤器。您还可以稍后动态更改过滤器。
这里是filters wiki的引文:
过滤器是具有特殊属性集的JavaScript对象。当前,过滤器有五种类型:
Basic
,Advanced
,Relative Date
,Top N
和Include/Exclude
,它们与您可以通过筛选器窗格。有相应的接口IBasicFilter
,IAdvancedFilter
,IRelativeDateFilter
,ITopNFilter
和IIncludeExcludeFilter
,描述了它们所需的属性。
例如,您的过滤器可以这样构造:
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
属性中传递此过滤器。