I’ve been putting this off for a while, and it’s been a couple of months since I had actively worked with SSRS reports on a daily basis.
Here are my main points of frustration with the product. This was and older version of SQL Server (2008R2, if I remember correctly), but I don’t believe the report designer was changed significantly in newer versions.
First and the most annoying problem with the report designer is that it is conceptually very far removed from the underlying RDL document. This leads to very unpleasant consequences. For example, this error appears to be common:
Innermost group does not have a grouping cell"
What is a grouping cell and how do I create one? There is no such concept in the report designer. There is absolutely nothing one can do on the designer level to fix this error. And it does make grouping difficult and painful.
Another manifestation of the same problem is “Tablix header”. There is no way to explicitly say “this row is in Tablix header”. Most of the time the designer will figure it out by itself, but if it made a wrong decision, there is no way of fixing it, short of opening the RDL file and messing with it.
Speaking of which: if you manually mess with RDL file you are quite likely to get
NullReferenceException when you open it in the designer. Good programming practice tells us that the program should be resilient to malformed input and provide meaningful error messages. Unfortunately, the report designer is far from this goal.
And when you go beyond designer there are rendering bugs.
One big problem I encountered was docking. Due to groups of repeating rows or columns, entities in the actual report may have different heights and widths than on the designer surface. If you have several entities on the page (e.g. a table and some charts), they will have to be moved relative to each other. There is no way to explicitly tell SSRS where to put things in this case. E.g., if you have this layout in the designer:
your report may end up looking something like this:
or even like this:
Depending on the items relative position, SSRS guesses how to handle the docking, and it does not always guess right. I would love to give it some hints, but there is no way to do that.
Another problem was headers over groups of repeating columns. Setting up a header over a column group is painful, but possible. If your design looks like this:
You would hope that end result would be
But in reality it is
SSRS does not realize that it has extra width now and there is no need to make the header rows taller.
Yet another problem is that reports look different in the designer, in HTML, in Excel and in PDF. Sometimes you would create a gap row 2 pixels high only to find that in HTML it is stubbornly displayed as 10 pixels and not a pixel less, or something of the sort.
The bottom line is: SSRS is good for basic reports, but more complicated scenarios lead to trouble. Just count the number of times I used the word “painful” in this post 🙂