Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hi,
I am trying to create selections using SELECTION MANAGER for a custom visual which uses matrix data mapping but to no avail
Here are the relevant excerpts. Would be so grateful for your time and help
constructor(options: VisualConstructorOptions) {
this.selectionManager = options.host.createSelectionManager();
this.selectionIdBuilder = options.host.createSelectionIdBuilder();
}
public update(options: VisualUpdateOptions) {
let dataViews = options.dataViews[0].matrix;
if (!dataViews
|| !dataViews.rows
|| !dataViews.rows.root
|| !dataViews.rows.root.children
|| !dataViews.rows.root.children.length
|| !dataViews.columns
|| !dataViews.columns.root
|| !dataViews.columns.root.children
|| !dataViews.columns.root.children.length) { return }
let root = d3.hierarchy(dataViews.rows.root)
root.each(d => d.selectionId = this.selectionIdBuilder.withMatrixNode(d, dataViews.rows.levels)
.createSelectionId())
console.log(root)
here is dataview mapping from my Capabilities.json
"dataViewMappings": [
{
"matrix": {
"rows": {
"for": {
"in": "Category"
}
},
"values": {
"select": [
{
"for": {
"in": "Measure"
}
}
]
}
}
}
]
Following is snap for my console. I get the selectionID property but it is same for all nodes(parent/child) and the key is null
@dm-p
@Nishantjain @Anonymous
try this https://community.powerbi.com/t5/Developer/multi-selection-with-AND-operator/m-p/781012#M20577
host.createSelectionIdBuilder();
make that code inside each looping
root.each(d => {
let builder = ... ; // create builder here
d.selectionId = builder.withMatrixNode(d, dataViews.rows.levels).createSelectionId();
})
User | Count |
---|---|
17 | |
11 | |
5 | |
4 | |
3 |