We’re happy to announce our September 2019 update of Power BI Report Server! This release is packed with tons of reporting features, including visual level filters for slicers, Icon sets, grouping for visuals, new default themes, and more! In this release, you will also see the new updated pane design, the new filtering experience, and more conditional formatting options. Read on to learn more about the new features and many other new capabilities.
Here’s the complete list of September updates:
- Updated pane design
- Visual level filters for slicers
- Sorting for the performance analyzer pane
- Visual header tooltips
- Table & matrix total label customization
- Sync slicer support for hierarchy slicer
- Consistent font sizes across visuals
- Icon sets for table and matrix
- Percent support for conditional formatting by rules
- New filter pane is now generally available
- Data colors support when using play axis on scatter charts
- Performance improves when using relative date and dropdown slicers
- Grouping visuals
- Color and text classes in themes
- New default themes
- Custom format strings
- Conditional formatting warnings
- Drill through discoverability improvement
- New DAX expressions: REMOVEFILTERS and CONVERT
- New DAX comparison operator: ==
- Improvements to M Intellisense
- New Transform: Split column by positions
- Copy to clipboard from data profiling
Reporting
Updated pane design
We’ve refreshed much of our interface. We’ve updated all our panes, the footer, and view switcher to be a lighter color, updated spacing, and new icons. Our new look is much more modern and is the first step and refreshing the entire interface.
Visual level filters for slicers
You can now finally add a visual level filter to slicers. This has been a popular idea on ideas.powerbi.com. It works just like any other visual level filter. It will just filter the slicer itself and no other visuals. This can be useful for filtering out blanks or if you want to use measure filters.
The filter that the slicer applies to other visuals doesn’t change – it’s still just the selection made of the value in the slicer. In the example above, Power BI doesn’t also wrap the ‘Avg. Sales > 1000’ filter into the filter applied to other visuals.
Sorting for the performance analyzer pane
We have a small update to our new performance analyzer pane this release as well! You can change the sort direct and pick to sort between:
- Total time spent
- Order the actions occurred
- Time spent for the DAX query
- Time spent querying the source (for Direct Query)
- Time spent displaying the visual
Visual header tooltips
We’ve seen users add helpful information for their end users to reports, such as hints on how to interact with the report or descriptions of the fields used in the visual. Setting that up though used to take a fair amount of work, so we’ve now added a way to add a tooltip directly to the visual’s header.
This option is off by default, but you can turn it on through the visual header tooltip icon toggle in the visual header card of the formatting pane. This is the one toggle within the card that affects if the icon shows in edit mode, as well as reading mode.
Once the toggle is on, you’ll see a question mark icon in the visual’s header, , and you’ll see a new formatting card in the pane called visual header tooltip. In this card you can add the text to show in the tooltip and the formatting of the tooltip. Alternatively, you can pick a report page tooltip instead if you need more customization.
Once you’ve added tooltip text or selected a report page tooltip, you’ll see it on hover over the question mark icon.
Table & matrix total label customization
There was a lot of buzz in our community around a simple ask for allowing the total label for table and matrix to be customized. An engineer on our team saw the request and decided to squeeze the feature in on his free time to help out our customers! So now, you have the option to change the label under the subtotals card for both columns and rows.
You can also customize the label for each subtotal field when stepped layout is off.
Sync slicer support for hierarchy slicer
The hierarchy slicer, one of the most used marketplace visuals, allows users to display a hierarchy within their slicer for optimized navigation. This is a very powerful visual, but until recently, it had a limitation where it couldn’t work with our sync slicer feature. With this update, we’ve improved our sync slicer feature to support hierarchy slicers now. This support could also extend to other marketplace visuals, if those visuals add support for the right capabilities. Some things to be aware of are that you can’t sync two hierarchy slicers that have different columns from your model, and if you remove columns from one slicer, it will not remove it from the other synced slicers.
Consistent font sizes across visuals
If you’ve been building reports for a while, you may have noticed that when you set the font size to a specific size, such as “8”, the size might look different, depending on where you’ve been setting it. The reason for this is that different places were either using pixels or points to represent the font size, and 8 pixels is a different size compared to 8 points. We’ve updated all the formatting options within our visuals to always use points.
Icon sets for table and matrix
The top request on our Ideas site is for KPI icons for reports, and we are excited to release icon sets for our table and matrix visual. This feature will let you set up rules for showing different sets of icons to show in your table and matrix, very similar to the Icon Sets feature in Excel.
You can turn on icons for your table or matrix just like any other conditional formatting feature, either through the contextual menu for the field you want to apply it to or through the conditional formatting card in the formatting pane.
When you turn on Icons, the default rules will apply a red diamond to the lower 33% of your data, a yellow triangle to the middle 33%, and a green circle to the upper 33%.
For each rule you can set the range based on an absolute number or a percent. You can also customize the icon for each rule with any of the icons we support in our icon picker.
In addition to adjusting current rules, you can add new rules to the list using the New rule button and swap the order of the icons in all the rules with one click using the Reverse icon order button.
In this dialog, you can also change the field used to generate the icons, just like in other forms of conditional formatting. You can also choose, using the Icon layout dropdown, if the icon shows to the left or right of the numbers showing in the cell or if the icons should replace the numbers all together.
You can also control the icon alignment, switching between top, middle, and bottom alignment.
You can also format based on fields in your model, where the fields uses the name of any of our existing icons, defines svgs inline, or references an image or gif online.
For example, you can create a measure like:
Icon Set Measure = SWITCH( TRUE(), SUM(Sales[Units]) < 200, "data:image/svg+xml;utf8, <svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 100 100'> <circle cx='50' cy='50' r='40' stroke='purple' stroke-width='4' fill='purple' /> </svg>", SUM(Sales[Units]) < 1000, "StarMediumLight", "https://i.gifer.com/Omjx.gif" )
And apply it to get a completely custom set of icons.
You can also change icons or add new ones through a theme file. For example the below theme will add 2 new icons and replace the half filled yellow star with a different icon.
{ "name": "CustomIcons", "icons": { "fire": { "url": "https://i.gifer.com/Omjx.gif", "description": "Fire!" }, "explosion": { "url": "https://i.gifer.com/3iCN.gif", "description": "Boom!" }, "StarMediumLight": { "url": "https://www.uscsd.k12.pa.us/cms/lib/PA01000033/Centricity/Domain/1/library-icon.png", "description": {"resourceKey": "Icon_ColoredArrowUpRed"} } } }
Each icon you are adding or modifying will get its own group in the icons section of the theme. The structure of each icon is:
"IconID": { "url" : " https://i.gifer.com/3iCN.gif ", "description": "Boom!" }
The IconID section is either a unique name you are giving a custom icon or the id of any of our built-in icons you want to modify. The URL is where you’d include either a link to web image you want to reference or embed your SVG or base64 encoded image. Lastly, the description is what will be used for the tooltip of the icon and read out by a screen reader.
If you are using SVGs either through measures or the theme file, make sure to include the viewBox section of the code, where the viewBox is the original canvas size that was used when the SVG icon was made. This will ensure the SVG will continue to scale as the font size of your values changes.
"data:image/svg+xml;utf8, <svg xmlns='https://www.w3.org/2000/svg' viewBox='0 0 100 100'> <circle cx='50' cy='50' r='40' stroke='purple' stroke-width='4' fill='purple' /> </svg>"
We’ve also added an icon set picker to the conditional formatting dialog. This will give you a fast way to select a set of icons and rules to start with and then customize from there, which should save you some time manually selecting icons for each individual rule.
Percent support for conditional formatting by rules
In addition to adding a new type of conditional formatting, we’ve extended in general our Rules form of conditional formatting to support Percent, which allows you to apply formatting on a dynamic range of data, instead of having to specify an absolute number that can become absolute as data refreshes. We also added the Reverse button from the Icon dialog for colors as well, so it’s easier to quick swap the direction of your rules.
New filter pane is now generally available
Our new filter pane is now generally available in Power BI Report Server. Any new reports should automatically have the new pane on by default and we are starting the process to transition current reports to the new pane as well. We obviously want to do this in a way that will minimize the impact on your current reports. With that in mind, when you open Power BI Report Server for the first time, we’ll show you a filter pane auto-update dialog. Make sure to take advantage of this opportunity, as we will eventually auto-update all existing report to the new filter pane.
Through this dialog, you can opt into using the new filter pane experience. Once you do this, anytime you open an old report it will show the new filter pane automatically. If you save the report after opening it, the new pane will now persist, and once you publish the report again, it will show for you end users. If you’re not ready to upgrade a specific report, you can turn off the new pane through the report level settings in the options dialog.
If you’re not ready to switch to the new experience, you can close out the auto-update dialog or choose to opt out at this time. You’ll still see the old pane for your reports, but when you’re ready, you can opt in through the dialog the next time you open a report.
Data colors support when using play axis on scatter charts
As a smaller formatting improvement this release, you can now set the data color for the scatter chart when using the play axis. Up until now, you could only using data colors when using a scatter chart without a play axis, so this should add more flexibility when designing your reports if you’re using the play axis.
Performance improves when using relative date and dropdown slicers
If you are using the relative date slicer or the dropdown slicer, you should see some performance improvements for page loads and filtering interactions this release. The relative date slicer will no longer run any DAX queries when loading, and the dropdown slicer will only run queries when you expand the dropdown. The more slicers you had on your page, the bigger performance improvement you should see.
Grouping visuals
We are very happy to announce the release of one of the most exciting demos from the Microsoft Business Applications Summit, grouping. Grouping allows you to group visuals, shapes, textboxes, images, and buttons together on your report page just like you can do in PowerPoint. Once objects are grouped together, you’ll be able to move and resize them all together. This should make it a lot easier to work with reports with lots of objects layered on each page.
To group visuals, you can ctrl+click them and right click to select the group option.
Right-clicking a group will give you an option to ungroup them later.
Generally, by default, the behavior mimics PowerPoint exactly, such as:
- Clicking on the empty space within the group will not select anything
- Clicking on a visual within a group will select the entire group on first click and the individual visual on second click
- Selecting a group and another object on the page and then selecting the Group option will create a nested group
- Use the selection pane to hide everything in the group at once (and bookmark it if you)
There are a few ways we’ve extended the feature as well, including:
- Use the selection pane to drag and drop objects in and out of groups
- Selecting two groups and opening the context menu will give you an option to merge the groups into one group instead of nesting them
- Using the formatting pane, you can add a background color to a group. If a group has a background, it now has “substance” so you can click on the background of the group to select it.
Groups, since they aren’t actual content on the report page, don’t affect the tab order of your report page. Grouping is also only supported on reports using our new modern header, so if you have an older report still using the previous header, upgrade it in the Options dialog to take advantage of this feature.
Color and text classes in themes
When writing your own custom theme JSON file, we know it can be quite difficult to build a theme that changes the entire look of your report. For example, if you wanted to create a dark theme that set the page to a dark color and use white text on top, you’d have to change a ton of settings through the visual styles section of the JSON, which can be very time consuming and error prone.
To help with this, we’ve expanded the color classes within our theme file to allow you format many of the colors in your theme without needing to touch visual styles. If you’re already writing theme files, you’re likely already using a few existing color classes: foreground, background, and tableAccent, which update various settings within your report with one line. With this update, we’re adding new color classes to that list, which as a result, means you can color all visual elements in a report just by setting 6 colors.
The color classes you now have available and what they format are:
-
foreground
- Labels background color (when outside data points)
- Filter pane and filter cards font & icon colors
- Trend line color
- Textbox default color
- Table and matrix values and totals font colors
- Data bars axis color
- Card data labels
- Gauge callout value color
- KPI goal color
- KPI text color
- Slicer item color (when in Focus mode)
- Slicer dropdown item font color
- Slicer numeric input font color
- Slicer header font color
- Scatter chart ratio line color
- Line chart forecast line color
- Map leader line color
-
foregroundNeutralSecondary
- Label colors
- Legend label color
- Axis label color
- Table and matrix header font color
- Gauge target and target leader line color
- KPI trend axis color
- Slicer slider color
- Slicer item font color
- Slicer outline color
- Line chart hover color
- Multi-row card title color
- Ribbon chart stroke color
- Shape map border color
- Button text font color
- Button icon line color
- Button outline color
-
foregroundNeutralTertiary
- Legend dimmed color
- Card category label color
- Multi-row card category labels color
- Mulit-row card bar color
- Funnel chart conversion rate stroke color
-
backgroundLight
- Filter card background color for applied filters
- Axis gridline color
- Table and matrix grid color
- Slicer header background color (when in Focus mode)
- Multi-row card outline color
- Shape fill color
- Gauge arc background color
-
backgroundNeutral
- Table and matrix grid outline color
- Shape map default color
- Ribbon chart ribbon fill color (when match series option is turned off)
-
background
- Labels background color (when inside data points)
- Filter pane and available filter card background color
- Slicer dropdown items background color
- Donut chart stroke color
- Treemap stroke color
- Combo chart background color
- Button fill color
-
TableAccent
- Overrides table and matrix grid outline color when present
In addition to color classes, we’ve added text classes to make it easier and quicker to set text styles. There are 4 primary text classes that adjust a total of 14 total text classes. You can set the font family, font size, and font color for each text classes. The four main text classes are: “Title”, “Label”, “Callout”, and “Header”.
The Title and Label classes have several secondary classes that are automatically derived from the primary class settings but can be formatted individually. For example, if you set the label class, which for example is used for the values in a table to 10pt, a “Small Label,” which is for example used the search box text in slicers, would be automatically set to 9pt. The goal of the primary/secondary text classes is to make it quick and easy for you to set the text classes, which still maintaining a visual hierarchy to the text.
The below table shows the primary classes with example settings and the secondary classes with the settings that make them unique compared to their associated primary class.
Primary class | Secondary classes | Class name in JSON | Settings | Associated visual objects |
Callout | N/A | callout | DIN
#252423 45pt |
Card data labels
KPI indicators |
Header | N/A | header | Segoe UI Semibold
#252423 12pt |
Key influencers headers |
Title | title | DIN
#252423 12pt |
Category axis title Value axis title Multi-row card title * Slicer header |
|
Large title | largeTitle | 14pt | Visual title | |
Label | label | Segoe UI
#252423 10pt |
Table and matrix column headers Matrix row headers Table and matrix grid Table and matrix values |
|
Semibold | semiboldLabel | Segoe UI Semibold | Key influencers profile text | |
Large | largeLabel | 12pt | Multi-row card data labels | |
Small | smallLabel | 9pt | Reference line labels * Slicer date range labels Slicer numeric input text style Slicer search box Key influencers influencer text |
|
Light | lightLabel | #605E5C | Legend text Button text Category Axis labels Funnel chart data labels Funnel chart conversion rate labels Gauge target Scatter chart category label Slicer items |
|
Bold | boldLabel | Segoe UI Bold | Matrix subtotals Matrix grand totals Table totals |
|
Large and Light | largeLightLabel | #605E5C
12pt |
Card category labels Gauge labels Multi-row card category labels |
|
Small and Light | smallLightLabel | #605E5C
9pt |
Data labels Value axis labels |
* The font color for these settings is based on the data colors, not the text class settings.
For example, here’s a small theme that sets some of these properties:
{
“name”: “NewThemeOptions”,
“foreground”: “#252423”,
“foregroundNeutralSecondary”: “#605E5C”,
“foregroundNeutralTertiary”: “#B3B0AD”,
“background”: “#FFFFFF”,
“backgroundLight”: “#F3F2F1”,
“backgroundNeutral”: “#C8C6C4”,
“tableAccent”: “#118DFF”,
“textClasses”: {
“callout”: {
“fontSize”: 45,
“fontFace”: “DIN”,
“color”: “#252423”
},
“title”: {
“fontSize”: 12,
“fontFace”: “DIN”,
“color”: “#252423”
},
“header”: {
“fontSize”: 12,
“fontFace”: “Segoe UI Semibold”,
“color”: “#252423”
},
“label”: {
“fontSize”: 10,
“fontFace”: “Segoe UI”,
“color”: “#252423”
}
}
}
You can still use visual styles to set any specific formatting you want, and that will override any color or text classes that have been set. We expect with these new changes for most users to stick to the color and text classes the majority of the time, and only use the visual styles for non-color/text options (such as turning titles on/off by default).
New default themes
To go along with the new theme JSON options, we are also updating the themes available for reports and changing the default theme for new reports.
Our design and research team spent quite a bit of time developing a new set of themes that have more variety (such as Innovate, a dark theme) and show off more theme-able feature (such as Bloom, with it’s background image).
The new default theme is meant to both align better with Microsoft’s design language and follow best design practices for visuals. We also tested it thoroughly to ensure it’s design is an improvement over other themes, with the goal that the new default makes it easier to create beautiful reports out of the box.
Some visual updates with the new default theme are:
- Larger, darker, more readable text
- Smaller bubble sizes for scatter and map visuals
- Wider line strokes for line and combo charts
- Updated layout for pie and donut charts to improve readability
- Expand/collapse on by default for matrices
- Backgrounds on for visuals by default
You can still find the previous themes under the “More themes” submenu any time you want to reach them. One thing to remember around custom themes is that they always build on top of the default theme. So for example, if you created your own custom theme that just set the data colors and nothing else, if you imported that theme into a report with the new default applied, it would still have expand/collapse on by default, backgrounds on for visuals, etc., so it may look different compared to when you imported it to a report with the old default theme. If you want your theme to look exactly the same way it did previously, you can first set the theme to “Classic” in the theme dropdown, so the default theme has the old settings and then import your custom theme.
Analytics
Custom format strings
While in the modeling view, you can now enter in a custom format string to customize how the field will show in visuals.
To do this, first select the field in the fields list and select the custom format option in the formatting card of the properties pane.
From there, you’ll be able to select from a list of commonly used format strings.
Or you can use the given an input box to enter in your own format string. Power BI will support most of the VBA style syntax, with a few exceptions. Refer to the full documentation for details.
Once you enter in your custom format string, it will immediately be reflected in the data view and report view.
One of our returning interns, Chelsie Eiden, worked on this feature over the summer. You might remember her from the theme picker that she worked on last year! It’s great to have interns come back to the Power BI team – hopefully you’ll see more of Chelsie again in the future.
Conditional formatting updates for formatting options
Visual background and title colors
We are extending our conditional formatting option to formatting features this release. First, we’ve added support for conditionally formatting the visual’s background and both the visual title’s font color and background color.
Card colors
For the card visual you can now also conditionally format the data label and category label colors.
Gauge fill and colors
You can conditionally format the fill color of the gauge and other colors used for the gauge visual.
-
Target text color
- Target fill color
- Data label color
- Callout value color
Alt text (General)
Alt text is the first feature that now has conditional formatting. This is really a huge step forward in terms of accessibility. Alt text, which is read off by screen readers whenever the visuals are in focus, can now be dynamically changed based on the current filter state of the visual. You can for example call out in the alt text both the highest and the lowest categories and have confidence it will always reflect the current data in the visual.
Border color (Border)
Border color is the next feature that has this added capability. Just as you can with backgrounds, you can dynamically adjust the border color based on current filter state. This could be a good option to use if you want to color a visual based on a specific KPI but you felt like the background color was too intense of an option.
With all these updates, you now have a lot more expressive power when formatting your visuals.
Conditional formatting warnings
Over the last several months, we’ve expanded the number of places you can apply conditional formatting to include settings such as titles and font colors to name just a few. As we’ve mentioned before, our goal is to eventually support conditional formatting for most, if not all, formatting properties. Given how prevalent conditional formatting will become with all these changes, we also wanted to make it easy to see errors in your conditional formatting configuration.
Now, we’ll show a warning in the visual header and the formatting pane if one of the following cases is true:
- The measure’s data type is not what the formatting property expects (e.g. the measure returns a number, but the property is a string)
- The measure used to conditionally format was deleted
- The measure returns an unrecognized value (ex. Rad instead of Red)
These warnings will only show up when editing a report, end users won’t see the warnings when viewing the report.
Drill through discoverability improvement
We’ve heard feedback that end users don’t always know when they can drill through on a visual to another report page. To help with this, we’ve added text to the visual’s tooltip to let them know it’s enabled.
New DAX expressions: REMOVEFILTERS and CONVERT
We have two new DAX expressions this month! REMOVEFILTERS is the same as ALL when used inside CALCULATE to remove filters. CONVERT changes the expression to another data type.
New DAX comparison operator: ==
Our DAX update for the month is the addition of a new comparison operator, ==. This operator is similar to the existing = operator except that it performs strict comparison to BLANK values. In DAX, 0 = BLANK() returns true so a filter like [Column] = 0 or [column] = BLANK() will return true for both 0 and BLANK(). We’ve introduced this new == operator to make it easier to differentiate between 0 and BLANK(). [Column] == 0 will return true only when the column value is 0 and [Column] == BLANK() is equivalent to ISBLANK([Column]).
Data preparation
Improvements to M Intellisense
Based on recent feedback, we’re making additional improvements to the M Intellisense capabilities that we released a few months ago.
- Parameter hint support in formula bar – This previously only worked in the Advanced Editor and Add Custom Column dialogs. This release, we’re adding support for parameter hints in the formula bar.
- Hover support – Hovering your mouse cursor over identifiers (such as functions and query step names) will display its definition. This works on all M Intellisense surfaces (Advanced Editor, Custom Column and formula bar).
New Transform: Split column by positions
A new data transformation added this month allows you to split text columns at specific positions within a given text value.
This new transformation can be found under the Split Column menu in the Home tab of the Power Query Editor ribbon.
You can specify a comma-separated list of positions to split at. Power Query also tries to detect and make recommendations for those positions based on data in preview rows within the Power Query Editor. You can also customize whether to output text parts as new columns or rows.
Copy to clipboard from data profiling
With this month’s release we’re making it possible to export data profiling information by copying it to the clipboard from the Power Query Editor.
The new Copy option is available from all Data Profiling surfaces as described below.
Data Profiling Surface |
Screenshot |
Data exported to clipboard |
Column Quality Summary | ||
Column Distribution charts | ||
Column Profile Details Pane – Column statistics | ||
Column Profile Details Pane – Column distribution |
That’s all for the September release of Power BI Report Server! We hope that you enjoy these updates for this release. Please continue sending us your feedback and don’t forget to vote for other features that you’d like to see in the Power BI.