Right now I'm swamped making reports in SSRS 2005. Even though that might be considered a junior's task I found it interesting. Last time I created report templates was 10 years ago with Quick Reports and VB 6 in the late 1990s :-p
My team recommended SSRS over Crystal Reports and
VTO mainly because we have had a previous bad experience with word templates for report generation and really liked the idea or having the report engine accessible using a web service. Also being the RDL files xml with a
documented schema, instead of the proprietary Crystal Report format, made us believe SSRS might go farther in the long run. Price was also a consideration for ruling out Crystal Reports. One of the big points towards this decision was the Report Manager in SSRS. Deploying our reports independently of the application where they will be viewed allow us to deploy and test the reports in parallel. There is no need to wait until the main application goes to QA. Report subscriptions was another plus.
The purpose of this short post is not to compare those three technologies though. You can see a good comparison of Crystal Reports vs SSRS
here.
Our initial hesitation of putting most of our eggs on the SSRS's basket is almost gone now, but not without having a wish list that would make the maintenance of our solution easier:
- Widows and Orphans control, there's a hack if you use a rectangle control to group elements, KeepTogether property for a table doesn't work
- Full aligned text, no workaround for this AFAIK.
- Reuse datasets in the reports that belong to the same project.
- Reuse images
- Reuse custom code and make it visible other than in the Report Properties->Code Tab
- Be able to re-use headers and footers on all the reports on the project.
- Be able to use more than one reportitem in an expression for an element in the header or footer.
You have to do lots of hacks in order to achieve this.I have an example of doing this using a dataset and an internal report parameter after I gave up on using the ReportItems for hiding or showing header elements.
-Barcode print in PDF, some barcode fonts get distorted when the report is rendered as a PDF,
so you have to rely on third party components such as Aspose.Barcode. Microsoft SSRS team fixed some fonts on the SP2 for SQL Server 2005 but unfortunately the font we use is not fixed yet.
-More alignment with the Visual Studio project layout. Being able to group reports in subfolders, being able to see the shared datasets in a project folder, the custom code in a project folder, being able to see the referenced external assemblies similar to the references added to the visual studio web and windows projects.
I know that aligning the web rendering with the PDF rendering might be too much to ask, but it would be really nice if the report rendered in HTML form would look similar to its PDF counterpart. Right now you cannot rely on the HTML view at all
when your final renderer is PDF.
- Rendering RTF text out of the database (I still have to explore this on 2008)
- Using CSS to apply styles to your textboxes.
Hope this helps if you have to make a technology decision, I'm sure I'll increase the wish list soon...
Labels: Reporting Services, SQL Server stuff
I'm sometimes amazed how personal people takes the bug issue. If you look at users you can sometimes think that the users think we have a complete bug list or that we have super powers to figure out what the problem are. And believing that a rotten attitude gets the problem fixed faster is so stupid.
But if you look at it from the other perspective, I often find developers taking pride in classifying something as a bug. In these days of agile and customer driven development, why taking so much pride into saying if something is a bug or a change request.
During the past two years we've gotten two synchronization bugs fixed in SQL Server 2005. My tips: be honest, give all information you have, understand that everyone wants to fix the bugs and don't forget that the guys fixing and confirming the stuff are people. Often really nice people. And also remember that reporting a bug is like going to the ER: sometimes there are people who are sicker than you and they need help first.