Dashboard Control Tips and Tricks
Buttons and Bookmarks
One of the really cool thing you can do in Power BI is make your dashboards interactive, allowing the user to control the slicer selections and the pages they see using buttons. You do this using 'Bookmarks' which are a saved state of all or part of your report.
Consider this very simple example where we have two tables, one with FSM data and one with EAL and we want button controls to determine which is visible. The first step is to go the View ribbon and show the Selection Pane (which lists all the elements on the current page) and the Bookmarks pane.
As you can see our two tables are both called 'Table' so the first thing we need to do is sort that out. In the format menu of the visuals click to show their title and give them a name. You can then hide the title again if you don't want it visible on the page, in the selection pane they are now listed under their title.
Next to each item in the selection pane is an eye icon which can be used to show/hide each visual. We want to save two 'states' of our report, one where FSM Table is visible and EAL table is hidden and one where the reverse is true. In the Bookmarks pane use the add button at the top to add two new bookmarks then use the three dot menu by the name to rename them 'ShowFSM' and 'ShowEAL'.
Now use the eye icon next to EAL Table to hide it. This is the state we want for 'ShowFSM' so use the menu next to the bookmark and choose 'Update'. Swap the visibility of the tables then update 'ShowEAL'. If you click on the bookmarks in the pane they should show/hide the tables. You can move the tables on top of each other so the visible table always appears in the same place.
On the Home Ribbon you can add a button. I usually go for 'blank' as that lets you write Button text so the user knows what it does. In the formatting of the button there's a property called 'Action' which allows you to select Bookmark, and then the bookmark you want your button to activate. You can do the same overlaying/space saving trick with the buttons that you did with the tables - ie you have your ShowEAL button visible in the ShowFSM bookmark and vice versa. For the user it looks like the same button is changing the same table, when in fact it's two buttons and two tables becoming visible/invisible.
It's worth looking closely at the bookmarks menu to understand all the options here.
'Update' Updates the bookmark with the current state of the report according to the preferences in the lower two sections.
'Rename' Lets you edit the bookmark name
'Group' Lets you organise your bookmarks (useful in big dashboards). Use ctrl click to select multiple bookmarks, then choose group, then rename to edit the group name.
'Data' - if this is ticked then the bookmark applies to data selections in the report - mostly this means slicer selections. If you want to hide a set a slicers (see below) but don't want to overwrite the selections the user's just made then you want this unticked.
'Display' - this means the bookmark controls what's visible/invisible - you'll nearly always want this ticked.
'Current page' - the bookmark affects the state of the current page, untick and it affects the entire report.
'All Visuals' - the bookmark applies to all the visuals on the page
'Selected Visuals' - the bookmark only applies to visuals selected (use ctrl click in the selection pane to multi select visuals). This is really useful if you want to make a set of controls for a feature for part of the page.
Selected Visuals is a bit buggy and I've found that sometimes visuals I've selected don't respond. It seems to help if the visuals aren't on top of one another when the bookmark's updated. You can move them afterwards if they're meant to be overlaid.
Note that for 'All visuals' bookmarks any visuals you add after creating them will by default be visible. It's therefore good practice to add all the visuals you're going to have on a page and only then create the bookmarks to show/hide them.
You can do really cool stuff with show/hide and hat tip for this idea to ExceleratorBI.com and GuyInACube who both have great resources.
This filter pane is a text box with my slicers in it, this text box has a white background with 0% opacity. The shadow is provided by another empty text box, slightly offset, with a grey background and 80% opacity. Arrow buttons activate two bookmarks, one to show and one to hide the filter pane. Remember that 'Data' on these bookmarks needs to be unticked so as not to overwrite the slicer selections the user makes before they hide the pane.
Note that the order items are listed on the Selection Pane determines their order on the page, with the visuals at the top of the list being furthest forward and the bottom as the back. That's how the shadow appears behind the panel.
Cards as buttons
You can't, at the moment, assign an action to card or KPI visuals, but there is a way for the user to be able to click these visuals and navigate to a different page. Simply place a blank button over the top of the card and assign a bookmark to it. Don't forget to give the button a title so you can keep track of what it does in the selection pane.
Images as buttons
You can assign a bookmark to an image so you can use icons as button controls. On the KPI screen below I use a mixture of PBI arrow buttons, blank buttons and images as bookmark controls (buttons outlined in red)
Another cool feature is to drillthrough from a summary statistic to a whole new page.
To set this up, create a new page and put the output you want in it. I've made a pupil list with individual KS4 headline figures on it. On that page, in the bottom right there's a 'Drillthrough' condition where you put the field that will control which pupils appear. In my case it's student ID
Now when I right click my summary visual on a different page I can drillthrough to see the individual pupils summarised by the visual. Note that this works because the records in the summary visual and the pupil list are from the same table (Headline Figures). It could also work if they were related on the drillthrough field but powerbi needs to be able to determine the records in the list from the visual summary.