Getting Started with ReportViewer Control

If you have written any reporting applications in .NET, you may be familiar with Crystal Reports and/or Microsoft SQL Server Reporting Services.

The ReportViewer control is a new addition to Visual Studio 2005, which is actually a Reporting Services component. This control has two versions - Windows Forms version and Web version. As you may presume, Windows Forms version is used to write reporting applications in Windows Forms applications and Web version is used to write ASP.NET Web applications.

Report Processing Modes

The ReportViewer control supports two report processing modes - local and remote.

In local processing mode, the ReportViewer control runs within the client application and the report processing is performed as a local process on the client machine where actual application is running.

In remote processing mode, the ReportViewer control runs on a SQL Server 2005 Reporting Services report server. In this mode, the ReportViewer control is used to view the report that is already generated on the server. All processing from data retrieval to report rendering is performed on the report server. To use remote processing mode, you must have a licensed copy of SQL Server 2005 Reporting Services.

Both Windows and Web controls can be configured to run in local processing mode or remote processing mode.

Namespace and Assembly

The ReportViewer control assemblies for Windows Forms and Web Forms versions are  Microsoft.ReportViewer.WinForms and Microsoft.ReportViewer.WebForms respectively. You must have to import the namespace in your application before start using the ReportViewer control. If you use add the ReportViewer control by dragging and dropping from the Toolbox, the namespace and assembly references are added for you automatically.

Create a Simple Report

Now let's create a simple report using the ReportViewer control. In this application, I will load data from a SQL Server database to generate reports.

  1. Create a Web Application using Visual Studio 2005
  2. Drag and drop a ReportViewer control from Toolbox to the Web page
  3. Right click on the Project in Solution Explorer and select Add New Item menu item and select DataSet from the list and keep DataSet1.xsd as name.
  4. The next screen is TableAdapter wizard, which asks you question about your database connection and SQL queries where you want data to be selected from. Just follow the wizard steps one by one and you will end up seeing DataSet in designer mode with your table name and columns. Close the designer. 
  5. Now right click on the Project again and select Add New Item and select Report from the available items and click Add button. See Figure 1.

    Figure 1. 
  6. It will add Report.rdlc file to your project and will open the report designer, which looks like Figure 2. As you can see in the left side, you will see your DataSet.

    Figure 2. 
  7. Now you can expand your DataSet and drag whatever column you want in the report to the report designer. I select three columns in Figure 3. 

    Figure 3.
  8. Now if you right click and select Properties on a TextBox, you will see Figure 4, where you can apply settings like visibility, navigation, format, font, and sorting. For now, you can say OK on this dialog. I will discuss these properties in more details in my following articles. 

    Figure 4. 
  9. Now go to the Web page and click the smart tag on ReportViewer and select Report.rdlc from the list. See Figure 5.

    Figure 5. 
  10. That's it. Now if you run the application, you will see report. You can navigate through records, and export it to Excel or PDF using the Export option.


The ReportViewer control available in Visual Studio 2005 makes reporting easier for .NET developers. This article was a basic introduction to ReportViewer control and how to get started with it. Now having Reporting Services component available in Visual Studio, you don't have to deal with Crystal Report, its distribution and licensing issues.


Similar Articles
Founded in 2003, Mindcracker is the authority in custom software development and innovation. We put best practices into action. We deliver solutions based on consumer and industry analysis.