Asp.net mvc 从asp.net mvc应用程序向power bi传递报告级筛选器
我在asp.net mvc应用程序中嵌入了power bi报表。它工作正常,正在显示数据。我有一个问题,在我的应用程序中,每个客户几乎没有像城市这样的分支机构。该客户机的每个用户都可以访问所有或某些分支,并根据该访问权限,在该用户登录到系统时显示数据 我希望在power bi中实现相同的功能,即当用户登录到系统并查看报告时,它应该显示他/她有权访问的分支机构的数据。我找到了一个解决办法 [在这里,我们可以从程序端设置过滤器值。我在视图中应用了这一点,但我仍在获取所有数据Asp.net mvc 从asp.net mvc应用程序向power bi传递报告级筛选器,asp.net-mvc,powerbi,powerbi-embedded,powerbi-filters,Asp.net Mvc,Powerbi,Powerbi Embedded,Powerbi Filters,我在asp.net mvc应用程序中嵌入了power bi报表。它工作正常,正在显示数据。我有一个问题,在我的应用程序中,每个客户几乎没有像城市这样的分支机构。该客户机的每个用户都可以访问所有或某些分支,并根据该访问权限,在该用户登录到系统时显示数据 我希望在power bi中实现相同的功能,即当用户登录到系统并查看报告时,它应该显示他/她有权访问的分支机构的数据。我找到了一个解决办法 [在这里,我们可以从程序端设置过滤器值。我在视图中应用了这一点,但我仍在获取所有数据 const br
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的分支的数据,但它显示所有数据。我在这里遗漏了什么吗?在这段代码之后,我还需要在报告端做什么吗
问候,,
Savan要根据登录到应用程序的用户显示数据,您必须首先在power bi报告中应用行级安全性(RLS),然后按照以下文章中的步骤进行操作支持使用嵌入配置应用过滤器,并且您共享的代码示例似乎有效 如果report.setFilters也出现故障,则可能是筛选器有问题 尝试验证筛选器的数据类型是否为1或“1” 如果这不起作用,是否从.setFilters请求返回任何错误消息?:
const filter = { ... };
report.setFilters([filter])
.catch(errors => {
// Handle error
});
了解有关通过JS SDK设置过滤器的更多信息。您缺少应用声明过滤器的步骤,例如通过调用
report.setFilters([branchFilter])
这很有帮助,谢谢。当我将特定值作为筛选值传递时,它起作用,但当我想传递分配给任何变量的值时,它就不起作用了。我正在使用var currentBranchID=“@AppSession.Current.branchhid”
并且在上面的branchFilter中,而不是在static 1中,我正在使用`target:{table:{WorkHistory“,列:“BranchID”},运算符:“In”,值:currentBranchID`如果我将currentBranchID放入[],则返回所有数据,如果删除[],则返回语法错误。我可以通过任何方式传递动态值。