【发布时间】:2019-12-23 12:25:53
【问题描述】:
我在我的 asp.net mvc 应用程序中嵌入了 power bi 报告。它工作正常并且正在显示数据。我有一个问题,在我的应用程序中,每个客户都有几个像城市这样的分支机构。该客户端的每个用户都可以访问所有或部分分支,并根据该访问权限在该用户登录系统时显示数据。
我想在 power bi 中实现相同的功能,即当用户登录系统并查看报告时,它应该向他/她显示他/她有权访问的分支数据。我找到了一个解决方案 [Can I pass a dynamic query parameter to an embedded Power BI report in ASP.Net MVC? 我们可以从程序端设置过滤器值。我在我的视图中应用了它,但我仍在获取所有数据。
const branchFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "tblWorkhistory",
column: "BranchID"
},
operator: "In",
values: [1],
filterType: models.FilterType.BasicFilter
}
var config = {
type: 'report',
tokenType: models.TokenType.Embed,
accessToken: accessToken,
embedUrl: embedUrl,
id: embedReportId,
permissions: models.Permissions.All,
viewMode: models.ViewMode.View,
filters: [branchFilter],
settings: {
filterPaneEnabled: true,
navContentPaneEnabled: true
}
};
在这里我想应用过滤器,它将仅显示 id 为 1 的分支的数据,但它显示所有数据。我在这里错过了什么吗?在这段代码之后我还需要做任何报告吗?
问候, 萨凡
【问题讨论】:
-
您缺少应用声明的过滤器的步骤,例如致电
report.setFilters([branchFilter]); -
这有帮助,谢谢。当我将特定值作为过滤器值传递时它正在工作,但当我想传递分配给任何变量的值时它就不起作用。我正在使用
var currentBranchID = "@AppSession.Current.BranchID";和上面的branchFilter 而不是静态1 我正在使用`目标:{表:“WorkHistory”,列:“BranchID”},运算符:“In”,值:currentBranchID`如果我把currentBranchID放在[ ] 然后它返回所有数据,如果删除 [] 则我收到语法错误。我可以通过任何方式传递动态值。
标签: asp.net-mvc powerbi powerbi-embedded powerbi-filters