In this post I would like to share my thoughts on the RDL and RDLC versions released by Microsoft, explained from a Microsoft Dynamics NAV point of view. This post does not contain a matrix of what is supported in RDL vs. RDLC. If you like to see a matrix like this leave a comment and I will start to compile this Matrix, since I cannot find this anywhere on the internet. Yes I’m using Bing, so maybe that is why
But lets get back to the released RDL and RDLC version released by Microsoft. I like to visualize things so let me start with this image:
In this image you will find 3 horizontal boxes: Server Side Report(RDL), Local Reports(RDLC) and Report Viewer.
As you can see in the image, when a new SQL Server was released, a new version of RDL is released. When a new version of Visual Studio is released a new RDLC version is released, based on the latest RDL version from the latest SQL Server release.
So when SQL Server 2005 was released, Microsoft released RDL in the 2005 format. This RDL 2005 format is described in details here: http://download.microsoft.com/download/c/2/0/c2091a26-d7bf-4464-8535-dbc31fb45d3c/rdlNov05.pdf. As you all know NAV 2009 was released in November 2008. Here we took the decision to support SSRS Reports(SQL Server Reporting Services), but not the Server Side reports but the Local Reports which we call RDLC. To get the RDLC Reports in RDLC 2005 format we needed Visual Studio to design the reports. So Dynamics NAV is dependent on the RDLC version from latest released Visual Studio, and Visual Studio is dependent on the RDL version from latest released SQL Server. A lot of dependencies!!!
Since the Visual Studio team released Visual Studio 2005 at the same time as the SQL team released SQL Server 2005 we actually have support for designing NAV 2009 RDLC reports in Visual Studio 2005. But we have better option and that is to use Visual Studio 2008, because Visual Studio 2008 was released before SQL Server 2008. You would have thought that Visual Studio 2008 supported RDLC 2008 but it does not. Only RDCL 2005. Since SQL Server 2008 was not released when Visual Studio 2008 was released.
Then SQL Server Team released SQL Server 2008 and upgraded RDL to the RDL 2008 format. This RDL 2008 format is described in details here:
This was a major upgrade and especially the possibility to add fields directly to headers and footers made many people happy.
But we also had a lot confusion because RDL was at the RDL 2008 format while RLDC was at RDLC 2005 format. From NAV point of view we could read nice books about RDL 2008 but could not use much of the information since we were still at the RDLC 2005 format and many things in these books described Server Side features only supported in RDL reports.
But then Visual Studio team came to the rescue and released Visual Studio 2010 which supported RDLC 2008, so once again both SQL Server and Visual Studio was at the same version. But could we use this for NAV 2009? Unfortunately not, as this would be a breaking changes and we would have reports in both RDLC 2005 and RDLC 2008 format in a database. This would be mess, especially if you shared reports between partners, were one was using Visual Studio 2010 and the other was using Visual Studio 2008. Also what Report Viewer should be used. RDLC 2005 reports requires Report Viewer 2008 and RDLC 2008 reports requires Report Viewer 2010 so which one should open? Yes Report Viewer 2010 will convert RDLC 2005 reports to RDLC 2008 reports on the fly but this run time conversion is slow. So to avoid all this confusion the NAV Reporting team decided not allow the RDLC 2008 format for NAV 2009. So Visual Studio 2010 is not supported to design reports in NAV 2009.
Now our friends at the SQL Server team released SQL Server 2008 R2, and with this release a new version of RDL was released. The RDL 2010 format.
This RDL 2010 format is described in details here:
This was a minor release compared to the upgrade from RDL 2005 to RDL 2008. But noteworthy things are support for saving to DOCX and XLSX, Vertical TextBoxes natively(Although we can do this in RDLC 2005 also, see my demo report here for how to do this in NAV 2009:http://sdrv.ms/O0SsJG), support for Spark lines and probably the most useful feature from NAV point of view, the possibility to reset page numbers. Today we need to workaround this missing feature in RDLC. Described here:
You might also want to read Robert Bruckner’s blog about how to use reset page numbers in RDL 2010 here:
So here we are. The latest version of RDL is RDL 2010, from SQL Server 2008 R2 and latest version of RDLC is RDLC 2008 from Visual Studio 2010. And now the NAV team is about to release NAV 2013 just before Visual Studio 2012 is released which will the support RDLC 2010. Will NAV 2013 support RDLC 2010? I doubt it, but I hope they will support it. Showing a demo of NAV 2013 and then saving a report in DOC and XLS format just seems so wrong when XLSX and DOCX formats was released back in Office 2007. Maybe just me
But hold on, did Microsoft not just release SQL Server 2012? Yes they did, but did we get a new version of RDL in SQL Server 2012? No we did not. SQL Server 2012 still supports RDL 2010 no changes what so ever…
I cannot figure out if this is a good thing or bad thing. Good thing is that Visual Studio finally have a change to catch up so we can have both RDL and RDLC at the same version release. On the other hand when something does not evolve in Microsoft it means nobody is working on it, so can we expect new version of RDL in the future? Yes the RDL format has matured dramatically compared to the RDLC 2005 version we use in NAV 2009, but this is not end of the line. We need many more enhancements to the RDL format. To start with, we would like to have support for:
- Dynamic Headers and Footers so i.e. Footers does not take up space on pages where it is not shown
- Transfooter and Transheader, so we don’t need workaround like this:
- Place in bottom property, so we can place elements in the bottom of a report just like we can do with Classic reports
I guess you guys can add many more things to this list.
Thanks, Claus Lundstrøm, Abakion.com