问题描述
为Power BI Report Sever
创建自定义视觉效果存在一个众所周知的问题-您无法创建多个不相关的dataViewMappings
。这意味着您在Fields
内输入的每个字段必须相关。
但是,看来Microsoft
尚未实现。
https://github.com/Microsoft/PowerBI-visuals/issues/251
我找到了一种解决方法-您可以将所有不同的表组合在一起,并用一个tableName
键进行链接。
例如,您有一个table A
:
value1|value2|tableName
1|2|tableA
3|4|tableA
和一个table B
:
value3|tableName
a|tableB
b|tableB
您可以使用tableC
函数M
或其他技术来创建Table.Combine({tableA,tableB})
。结果,它看起来像这样:
value1|value2|value3|tableName
1|2|null|tableA
3|4|null|tableA
null|null|a|tableB
null|null|b|tableB
public parSEOptionsToTables(options: VisualUpdateOptions) {
var i: number;
var j: number;
var cntRows: number;
var cntCols: number;
var naMetable: string;
var tempDict: {} = {};
var tempVal: any;
var colName: string;
var cats: any = options.dataViews[0].table;
this.tables = {};
cntCols = cats.columns.length;
cntRows = cats.rows.length;
for (i = 0; i < cntRows; i++) {
tempVal = null;
colName = null;
naMetable = null;
tempDict = {};
for (j = 0; j < cntCols; j++) {
//for every row - check the TableName column and add to dict
tempVal = cats.rows[i][j];
colName = cats.columns[j].displayName;
if (colName == 'tableName') {
naMetable = tempVal;
} else {
//add id not null
if (tempVal !== null) {
tempDict[colName] = tempVal;
}
}
}
//push to dict
this.tables[naMetable] = this.tables[naMetable] || [];
this.tables[naMetable].push(this.deepcopy(tempDict));
}
}
结果,它创建了一个this.tables
对象,其中包含您的tableA
和tableB
。
尽管它有助于解决主要问题,但我仍然无法摆脱创建拐杖的感觉。 那么,还有其他方法可以更有效地解决这个问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)