asp.net-mvc-5 - 我可以将动态查询参数传递给 ASP.Net MVC 中的嵌入式 Power BI 报表吗?
问题描述
我的问题是参考以下文档,它是 Power BI Embedded Query Parameters API 的一部分,位于https://azure.microsoft.com/en-us/updates/power-bi-embedded-query-parameters-api/
“请注意,参数是基于数据集的,因此它们是按报表/仪表板定义的,而不是在用户的会话级别上定义的。这意味着同时使用同一报表的不同用户将始终看到相同的参数值。”
我们计划将使用 Power BI 创建的仪表板嵌入到我们的 .Net MVC 应用程序中。许多学校用户(组织外部和不同学校)将登录以访问这些报告。
让我们假设来自 5 所不同学校的 5 位用户正在尝试访问一个仪表板,该仪表板已参数化以根据他们的学校显示数据。我可以使用 Power BI Embedded 来实现这一点吗?我感到困惑的原因是文档指出同时使用相同报告的不同用户将始终看到相同参数的值。
解决方案
在这种情况下,参数不是很好的选择。使用 API 您可以更改它们的值,但这些值存储在报告本身中,所有打开这些报告的用户都会受到参数值更改的影响。
您应该使用过滤器来实现这一点。假设您有一个SchoolData
在模型中命名的表和一个SchoolId
在其中命名的列。当您在应用程序中嵌入报告时,为此列定义一个过滤器,例如:
const basicFilter = {
$schema: "http://powerbi.com/product/schema#basic",
target: {
table: "SchoolData",
column: "SchoolId"
},
operator: "In",
values: [1],
filterType: models.FilterType.BasicFilter
}
然后在嵌入配置详细信息中传递此过滤器:
var config = {
type: embedType,
accessToken: accessToken,
tokenType: tokenType,
embedUrl: embedUrl,
id: embedId,
dashboardId: dashboardId,
permissions: permissions,
filters: [basicFilter],
settings: {
filterPaneEnabled: true,
navContentPaneEnabled: true
}
};
其中1
是当前登录用户对应的值。每次在您的应用程序中显示报告时更改它,具体取决于当前用户(即 2、3、4 等)。
有关如何使用 Power BI Embedded 筛选数据的详细信息,请参阅筛选器文档。
推荐阅读
- macos - brew 无法启动 jenkins 并出现错误:执行时失败;`/bin/launchctl enable gui/501/homebrew.mxcl.jenkins-lts` 以 64 退出
- javascript - 如何使用 Javascript 将 HTML 网页中的数据导出到 Microsoft Excel 并保持 GridLines 开启?
- r - 将变量名称传递到 dplyr 1.0.0 中 mutate() 函数的左侧
- javascript - 如何在 Angular 8 中的组件之间保留服务的数据?
- angular - Angular 8 与 Material 使用表格。使用移动浏览器 (Chrome) 时,它会自行打开一半的行
- excel - 访问未知级别的 PSCustomObject 嵌套对象
- c# - 获取受保护字段的值
- android - 无法通过 onClick 事件更改按钮颜色,按钮变为紫色
- python - Python decimal.Decimal 以科学计数法产生结果
- spring-boot - 如何使用映射表 user_role 在 Spring Boot 中使用多对多用户表仅将唯一值插入角色表