Introduction

I'm going very quickly and deeply into the integration of .aspx pages with reporting services reports. If you are new to reporting services this is not an article for you. I will show you how to integrate reports into .aspx pages and alter the content of the reports with web server controls such as drop down boxes and calendars. I take for granted you have a developer machine setup with SQL Server developer edition, Visual Studio .NET, and Reporting Services installed on your client with online samples and books installed as well. I will also not get into designing reports and placing them on your Report Server.

Get Microsoft report viewer

In the samples that are bunged with Microsoft reporting services there is a Report Viewer, this is supplied in VB as well as in C#. I will be concentrating on the C# version. The Report Viewer will allow you to display reports inline with other controls and HTML on a .aspx page.

You can add this as a sub project to your solution or compile the project to a DLL and add that as a reference to your new reporting project. We will do the latter and add the compiled DLL to our new project.

Open the folder ReportViewer in samples browse to cs (for C# version).

Double click or open the ReportViewer.sln (i.e. open the ReportView solution in Visual Studio).

Build the solution.

Close the project.

Visual Studio has now created a few more directories including a bin directory with a debug version of ReportViewer.dll (you can change the build type to produce a release version if you want).

Configure VS to use Report Viewer

Now you can add ReportViewer.dll to this your web project and view reporting:

Now add a ReportViewer document to the toolbox: Right Click Toolbox, Add Remove Items, Browse to bin directory and select ReportViewer.dll.

You should have ReportViewer on your Toolbox in Visual Studio.

Simple Report Viewer on web pages

This is the real easy bit, drag ReportViewer from the Toolbox onto your webpage:

So, now we have to tell ReportView where to find a report. Right click to see the properties of the ReportViewer:

As can be seen above, I've set ServerUrl and the ReportPath. This will show the report as shown on the default webpage for reporting server except that it's encapsulated into a ASP.NET web page. Unless you specify a report ServerURL and ReportPath the component does not let you alter the size and height of the report on the web page.

C# code

Build a parameter report

Some reports take parameters and you detail what information is to be displayed by the start date, year, end date etc. I generally use SQL Server stored procedures to drive reports as I can change the backend SQL logic without the hassle of uploading and changing the report.

Below is a very simple stored procedure used to get the Order Qty (number of orders) over a set year. The SQL is included for reference:

I have put this in a simple report that displays a table by Month and Year with a Qty value. I also placed a chart on the report to show the quantity of sales by month. I have uploaded Report5.rdl to my Reporting Services server called in a test directory. Note that when the report is created by using the above stored procedure it will pull the parameter @Year as a report parameter automatically.

There are two ways I could view the report on the web page: Enter report details into parameters as shown above or use the code to tell the ReportViewer component where to find the report. Since we're all programmers I will use the code.

Change the report with the code

Specify the Parameters of the Report component what the ServerUrl and the ReportPath are and the report will appear on the screen on build on browse. You still have to enter a year into the Parameter field just like going to reporting services directly; which is a bit crude for users, the toolbar is visible we will turn those off so that they are hidden from the user.

Top Tip: You have a single ReportViewer component that can be used to display more than one report.

Integrating web components

By placing a drop down list onto the web page and setting three variables (2002, 2003, 2004) we can use this to drive the Report parameter. You will have to ensure that autopostback is enabled on the drop list control.

History

V1.0 - Initial release.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

Share

About the Author

Currently developing Insurance systems with SQL Server, ASP.NET, C#, ADO for a company in Glasgow Scotland. Very keen on OOP and NUNIT testing. Been in IT forever (20 years) in mix of development and supporting applications / servers. Worked for companies big and small and enjoyed both.

Comments and Discussions

Hi..I have reports which are designed in Reporting Services 2000.Despite i have built them all i dont have any bin folder in the project folder.So i dont have any dll about the reporting services..So i couldnt add the ReportViewer tool to my toolbox...I really need to add a pie chart which i prepared in RS to a asp.net page...But i couldnt achieve to my goal becouse i couldnt be able to add the report viewer tool to the toolbox....Any suggestion?

ok thank youBut this time i have bigger problem...When i try to add a chart to my Report Designer i saw that CHART item is notin the toolbox...I try to add Dundas Chart's dll but when i add it to thetoolbox this time the chart icon looks disabled and i couldnt add it into the report designer...I dont know how will i handle this problemI uninstalled the Report Designer 2 times and Re-install it but despiteImageLıneMatrixRectangleSubreportTableandTextbox are there there is not any CHART item

This sounds like a problem with the reporting services toolbox chart item within Visual Studio. Have you contacted Microsoft support over this issue as this sounds like a Visual Studio issue? Do you have a version of Dundas Chart loaded in the GAC or copied in another Visual Studio folder other than the “PrivateAssemblies” folder (say, the “Common7” or “IDE” folder)?

SQL RS deploys a version of chart control (that they built) with a different version number and signature but having the same name as our product controls (this is normally in the “PrivateAssemblies” folder. If you copied a version of our asp.net or winfoms control over top of the one deployed by SQL, then this is probably the cause of your problems. If you did, you will be able to find the SQL version of the control in the report server bin folder and should copy it back. This is normally:

To get the native chart report item back in the toolbox, right click on the toolbox panel and select reset. If this does not work you may need to delete VS temporary toolbox files. These are found in a hidden folder and can be found:

Ensure Visual Studio is not running and delete all of the toolbox*.tbd files. The next time you load VS it will regenerate all of the toolbox items. USE THIS AS YOUR LAST RESORT! If you have any other 3rd party controls loaded in a toolbox, they probably will not be there anymore.

Hi andrew...i have DundasWebChart.dll in this path;C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\binAssembly version of the dll is 3.6.0.1634After right clicking on the Toolbox for adding a new item i browse to this path and trying to add this dll..It is adding it but it is passive...as like as a disabled control

andC:\Documents and Settings\osman.ayhan\Application Data\Microsoft\VisualStudio\at this path i dont have the 8.0 folder.I have 7.1 folder.And in it there is not any file whose extension is tbd...And in my local disk there is not even any *.tbd file!!!U said

"Ensure Visual Studio is not running and delete all of the toolbox*.tbd files. The next time you load VS it will regenerate all of the toolbox items. USE THIS AS YOUR LAST RESORT! "