SSRS non-ugly #5: The nitty griddy details
In this post - part of my 'creating non-ugly SSRS reports' series - I'll introduce you to a design and layout technique quite common in webdesign, but AFAIK not too often applied in reporting: using a column grid. Curious? Read on!
One of the easiest ways to create a consistent, modern layout (for us, not being professional designers) is to construct a layout template for our reports & dashboards by defining a 12-column grid, and laying out all report element on that grid1. Descriptions of grid-based design can be found all across the web (James George has an excellent introduction here), here's how to use it for your reports (all units in mm):
|1. Determine the desired report width||The paper size used at your client's||(420 mm = A3 in landscape)|
|2. Choose a page margin||Anything that looks good to you, rule of the thumb:|
|3. Choose a column width and gutter 2||Anything such that||,|
Now, all your report elements need to have a width of , where is any integer .
To make it easy, I've created an Excel sheet with all calculations which you can download here. In our example, this means our report item (chart, graph) can be any of the following widths and x-locations:
|Element width||Starting column|
Notice that by adhering to a grid, you automatically align all items inside your report horizontally.
Because our example above only has 3 report elements, I've borrowed an example Clint Huijbers displayed recently on LinkedIn to show the difference between an evenly sized report and one that's not. First, the 'original' dashboard:
As you can see, the tiles are layed out carefully. What change would it make if all items were layed out using the just described grid? Well, this:
IMHO, the overall layout provides somewhat more rest for the eyes, but the grid doesn't align very well with the pie charts in the left bottom! In the original dashboard, they were evenly sized. Now, they differ in size and the MT #9 diagram (center bottom) has become almost too narrow. You can fix this in two ways:
- Alter the grid
- Alter dashboard design
To alter the grid, you could use an 18 or 24 column grid instead of a 12-column. However, this makes the design way more complex (and you've got even more ways to make your dashboard confusing)3.
Personally, I would stick with a simple grid and alter the dashboard design so it fits. Rethink for example why you'd need three pie charts in the left bottom4. In this particular dashboard, the pies were used to compare current year with two previous years. Personally, I would do this with a 100% stacked bar chart, a minor change creating space for the other charts on the bottom row. Now, the dashboard adheres to the grid and doesn't look crammed:
To finish this one, let's apply all other 'tricks' I've shown in earlier posts and above (including the 'web look' and A3 sizing). Because it's a real-world example, I've not allowed myself to alter the main colors :
This one still fits on a single page and is very crisp to see - printed as well as on your modern hi-res screen. I'll be the first to admit still much can be fine-tuned about the report in terms of font sizes, grey shades & colors, exact placement and sizing of different report items. If you've got any suggestions, leve them in comments below! Still, I think it's a major improvement to have a crisp-looking report (A3 sizing), modern looking ('web look', grid layout, tricks from earlier posts) and more focused on the content (less clutter and visual weight for non-essential report items).
More about grids
I've shown how to use a grid for report layout in a consistent and more-or-less easy way. Apart from my Excel workbook-tool to calculate your own grid system5, there are plenty other tools and grid systems readily available on the interwebz too - thegridsystem.org has a nice collection.
Initially, this will increase the time you'll spend with reports, especially when learning a new technique like a grid system! Soon enough however you'll see that looking with towards your report design with 'griddy' eyes becomes a habit - and the results are consistent layouts across all reports.
I've thought about ways of fixing this 'extra time' it costs me. One thing I thought of was using rectangles for every 'object', giving the rectangles a recognizable name - for example starting with rect_grid_(name) and more or less position them as I'd like. Then I'd run a tool on top of the RDL (it's all XML after all) to position and re-size all elements according to the grid of my choice. So far, I haven't found time to develop a small script / tool to do this for me though. If I ever will, I'll let you know 🙂 .
Series: SSRS non-ugly