无法在线找到此答案,因此决定发布问题然后发布答案。
我在 capabilities.json 文件中创建了一个表:
"dataRoles": [
{
"displayName": "Stakeholders",
"name": "roleIwant",
"kind": "GroupingOrMeasure"
}
...
"dataViewMappings": [
{
"table": {
"rows": {
"select": [
{
"for": {
"in": "roleIwant"
}
}
]
}
}
}
]
我意识到我不能简单地设置,例如,来自第一个类别的图例数据,因为第一个类别来自用户拖入的第一条数据,无论位置如何。因此,例如,如果他们在 Power BI 中在线设置了一堆不同的数据,然后删除了一个,那么一切的顺序就会变得一团糟。我认为解决此问题的最佳方法是确定每列的角色并从那里开始。
当您单击显示 Dataview 时,层次结构清楚地显示:
...table->columns[0]->roles: { "roleIwant": true }
所以我想我可以像这样访问它:
...table.columns[0].roles.roleIwant
但事实并非如此。我在命令提示符下使用 pbiviz start 进行编译,这给了我一个错误:
error TYPESCRIPT /src/visual.ts : (56,50) Property 'roleIwant' does not exist on type '{ [name: string]: boolean; }'.
为什么我不能以这种方式访问它?我在想,因为角色本身不包含属性roleIwant,这是真的,但这没关系......