May 9, 2010 2 Comments
In most cases upgrading applications is a good idea, but in this week we have to downgrade our Reports to an older version. The scenario is that We had some SSRS 2005 reports in the past and we upgrade those to SSRS 2008 reports, so we actually upgrade our Report definition schema from 2005 to 2008 which I wrote an article about it at the past. Currently we decide to convert our SSRS server reports to Visual Studio Client Reports which has some benefit for us, but unfortunately Visual Studio 2008 use Older version of report schema and the nightmare begun here.
Title : Downgrading Report schema version and Report Viewer Nightmare
Publish Date : 09/05/2010
Version : 1.0
Author : Nasser Hadjloo
Author Mail : email@example.com
Copyright (c) 2010 Nasser Hadjloo.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled “GNU Free Documentation License”.
SQL Server Reporting Services (all editions) and Visual Studio Reporting use ReportViewer control to display Reports, but it’s not the end, it’s just the beginning of a nightmare.
SSRS 2005 and Visual Studio 2008 & 2005 using 2005 Schema to create reports which is an older version of schema so that it missed some newer items which it’s obvious.
SSRS 2008 RDL reports use 2008 schema to create reports (in this schema we have some new features to create reports like Tablix or etc)
Visual Studio 2010 using Schema 2008 to create RDLC reports.
Report Viewer 2008 Service Pack 1, resolved some issues (installation and etc) and also apply some patches for some performance issues.
Report Viewer 2010, has a few limitation (won’t install in XP SP2 – only XP SP3 accept installation) but resolved all issues and works fine with Schema 2008. This version work very well with Asp.net Ajax and Ajax functionality like AsynchPostback and etc.
With these background, just imagine you have a SSRS 2008 report which implemented by schema 2008, and you want to convert it to VS 2008 Client Report which use older schema (2005). Following options may help to resolve the issue.
1 – Don’t Convert SSRS 2008 reports to VS 2005 or VS 2008 client report! Go and drink a cup of coffee.
2 – Convert SSRS 2008 reports to VS 2005 or 2008 reports and get rid of reports which may face with issues. (For example don’t convert reports which contain tablix or newer 2008 schema items).
3 – Create client reports from the scratch for those which face with issue.
4 – Upgrading VS 2008 reporting schema which I don’t find a solution for it. (take a look at here)
5 – Using Report Viewer 2010 with Visual Studio 2008, this scenario may resolve your common issues but in my case it wasn’t enough.
6 – Convert SSRS 2008 reports to Visual Studio 2010 client reports. (I think in most cases it would be the best option). It will work fine because VS2010 use schema 2008 for reporting system. But unfortunately this will force you to buy a VS2010 edition!
So what’s the best approach to convert SSRS 2008 report to Client reports?
First approach – to get rid of some reports and create them from the scratch with schema 2005
Second Approach – To use Report Viewer 2010 inside Visual Studio 2008
Third approach – to upgrade VS 2008 to VS 2010 and enjoy conversion, but you have to upgrade your host framework too.
In my case second approach was good enough to resolve issue, but I used third approach. In your case it may be a little difference and you have to make a decision.