Forum Discussion
Can I filter individual visual objects based on the selected value of a filter in PBI Report Builder
- 11 months ago
In Power BI Report Builder (Paginated Reports), you don’t have the same “visual-level filters” that you do in Power BI Desktop, but you can achieve what you want with expressions, parameters, and visibility rules.
Here’s how you can set it up:
1. Use the Module Parameter
When you create your filter on Module (SID, JACKET, etc.), this is just a report parameter behind the scenes.Let’s say the parameter is called @Module.
2. Filter the Dataset
You can create separate datasets for SID and JACKET.
Example:DatasetSID filters WHERE Module = 'SID'.
DatasetJACKET filters WHERE Module = 'JACKET'.Then bind DatasetSID to the SID table, and DatasetJACKET to the JACKET table.
3. Control Visibility of Tables/Charts
For each table/chart, set its Visibility → Show/Hide based on expression.Example for SID table:
=IIF(InStr(Join(Parameters!Module.Value, ","), "SID") > 0, False, True)This means: if SID is among the selected values, show the table; otherwise hide it.
Example for JACKET table:
=IIF(InStr(Join(Parameters!Module.Value, ","), "JACKET") > 0, False, True)This way, multiple modules selected will display multiple tables/charts.
4. Alternative: Single Tablix with Grouping
If you don’t want separate tables:Use one dataset with all modules.
Insert a Tablix (table or chart) grouped by Module.
Add a filter on the Tablix group:
=Parameters!Module.ValueThis will dynamically generate a section for each selected module.
In Power BI Report Builder (Paginated Reports), you don’t have the same “visual-level filters” that you do in Power BI Desktop, but you can achieve what you want with expressions, parameters, and visibility rules.
Here’s how you can set it up:
1. Use the Module Parameter
When you create your filter on Module (SID, JACKET, etc.), this is just a report parameter behind the scenes.
Let’s say the parameter is called @Module.
2. Filter the Dataset
You can create separate datasets for SID and JACKET.
Example:
DatasetSID filters WHERE Module = 'SID'.
DatasetJACKET filters WHERE Module = 'JACKET'.
Then bind DatasetSID to the SID table, and DatasetJACKET to the JACKET table.
3. Control Visibility of Tables/Charts
For each table/chart, set its Visibility → Show/Hide based on expression.
Example for SID table:
=IIF(InStr(Join(Parameters!Module.Value, ","), "SID") > 0, False, True)
This means: if SID is among the selected values, show the table; otherwise hide it.
Example for JACKET table:
=IIF(InStr(Join(Parameters!Module.Value, ","), "JACKET") > 0, False, True)
This way, multiple modules selected will display multiple tables/charts.
4. Alternative: Single Tablix with Grouping
If you don’t want separate tables:
Use one dataset with all modules.
Insert a Tablix (table or chart) grouped by Module.
Add a filter on the Tablix group:
=Parameters!Module.Value
This will dynamically generate a section for each selected module.