trobbins

Looking at the Report Viewer Control

Download this episode

Download Video

Description

Microsoft Visual Studio 2005 includes a report designer functionality and a new set of ReportViewer controls that can be used to build and display reports within custom applications. Reports may contain tabular, aggregated, and even multidimensional data. The ReportViewer controls are used to process and display these reports within applications. There are two versions of the controls. The ReportViewer Web server control is used to host reports in ASP.NET projects. The ReportViewer Windows Forms control is used to host reports in Windows application processing.

Both controls can be configured to run in either local or remote processing mode. How you configure the processing mode effects everything about the reports from design to deployment.

  • Local processing mode refers to report processing that is performed by the ReportViewer control within the client application. All report processing is performed as a local process using data that your application provides. To create the reports used in local processing mode, you use the Report project template in Visual Studio
  • Remote processing mode refers to report processing that is performed by a SQL Server 2005 Reporting Services report server. In remote processing mode, the ReportViewer control is used as a viewer to display a predefined report that is already published on a Reporting Services report server. All processing from data retrieval to report rendering is performed on the report server.

In this Screencast Thom takes a look at how this control can be used to host both server reports and local reports

Embed

Format

Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • guercheLE
      Dear Thom,

      I this sample I saw that in Report Builder, reports designed were bound to models and in Visual Studio 2005 reports designed were bound to datasets/datatables. What came to my mind based on your sample is: Is it possible to have reports designed in Report Builder bound to datasets/datatables? Is it possible to have reports designed in Visual Studio 2005 bound to models?
    • trobbins
      Is it possible to have reports designed in Report Builder bound to
      datasets/datatables?

      Sure - this is actually bound to a dataset by default. I would think that you could code this to bind to a datatable as well.

      Is it possible to have reports designed in Visual Studio 2005 bound to models?

      What kind of model do you mean?
    • thewizster
      Is it possible to build a report based on a dataset that you build in code? I have a dataset that I pull data in from an xml file. In the demo it shows you have to create a data source first. How would you do this if your data is stored in an xml file?

      Thanks....
    • thewizster
      Well... After much research I Answered my own question. Maybe this is just so simple it is just obvious to everyone else, but I missed it until about 2am. I finally found a post on asp.net's website showing how to do this on a webform. So for all the others that can't get this like me here is some help:

      I had a hard time understanding how to build the report since I could not add my xml file as a data source. What I did was added a new DataSet to my project and used it as my data source. This DataSet is not the actual DataSet I am using in code but they are identical in structure. This made designing the report easy.

      After you add the Dataset to your project open up the xsd file that will be created and thne by right clicking in the Dataset Designer window navigate to Add>DataTable. This will add a blank DataTable Object to the designer window.

      By right-clicking on the DataTable object you have the option of adding columns to it. Add columns to the DataTable exactly like they are in your DataSet that you have built in code. Also Make sure to rename the DataTable.

      This newly created DataSet will now show up in the DataSource window and you can create your report file from it just like the video shows.

      I used a report viewer and created a new report. When the report designer window opens there will be a new menu added to vs called 'Report' Clcik it and then click Data Sources. This opens up the Report Data Sources window. Make sure the Report Data Source listed matches the one you created, if not select it and delete it from the list then select your DataSet from the Project Data Sources dropdown and click 'Add to Report'

      Now, tying it all together in your code is next.

      After you have the Dataset in your app built and load in the data from the xml file (I won't demo that here, there are plenty of places to find out how to do it and it is very simple) I used this code to set the tie in my dataset I created in code to the report viewer.

      Me.ReportViewer1.LocalReport.DataSources.Add(New Microsoft.Reporting.WinForms.ReportDataSource("DataSet1_Bills", Me.MyBills.Tables("Bills")))

      Me.ReportViewer1.RefreshReport()

      DataSet1_Bills is what is listed in the Report Data Source window as discussed above. MyBills is the DataSet I created in code and I just reference the Bills table.

      Hope this helps someone else out.

    • jwiner
      Do you happen to have a video of using the ReportViewer control in local mode in ASP.NET 2.0?  I am trying to setup and run a report locally and I am having some difficulties.  Thanks.
    • sri27_latha

      can we have a complete video here?

      or is this the complete one.

    • hasibul

      Thanks for wonderful post. It helps me for creating rdlc report.

      Now i need another help.

      I need to add two tables/procedures in my report.

       

      My report have two section. One is Header and another is details.

       

      I sgall use companyInfo table for header and use TransactionInfo for detail section.

       

      But i am unable to add two table of data Programmatically.

       

      The report talke only one table with specific datasource name.

      How i can load twho table at a time.

      consider following code which i have used for retriveing single data table.

       

       

      string sqlQ = "Select * from CompanyInfo";
                  string sqlQ1= @"Select * from command_1 where operationType = 2";


                  DataSet ds = new DataSet() ;
                  SqlConnection con = new SqlConnection("Data Source=ITSOFT206; initial catalog=rbrl;user id = sa;password=start777");
                  con.Open();

                  DataTable dt = new DataTable();
                  DataTable dt1 = new DataTable();

                  SqlDataAdapter da = new SqlDataAdapter(sqlQ , con);
                  SqlDataAdapter da1 = new SqlDataAdapter(sqlQ1, con);

                  da.Fill(dt);
                  da1.Fill(dt1);
                  dt.TableName = "CompanyInfo";
                  dt1.TableName = "command_1";
                  ds.Tables.Add(dt.Copy ());
                  ds.Tables.Add(dt1.Copy());
                  da.Dispose();
                  da1.Dispose();
                  con.Close();

                  
                  ReportViewer1.ProcessingMode = ProcessingMode.Local;
                  LocalReport lc = ReportViewer1.LocalReport;
                  lc.ReportPath = "Report1.rdlc";



                  ReportDataSource rds = new ReportDataSource();
                  rds.Name = "rptSource_command_1";
                  
                 
                  rds.Value = ds.Tables["command_1"];


                   lc.DataSources.Add (rds);

                   ReportViewer1.LocalReport.DataSources.Clear();
                   ReportViewer1.LocalReport.DataSources.Add(rds);
                   ReportViewer1.LocalReport.Refresh();

       

      hope i will get solution.

    • Andy3B

      unable to add a new dataset in reportviewer visual studio 2010.
      I could do anything, from adding images, parameters and control to the designer; but as soon i try to ad a new dataset (using wizard also), my enviroment is forced to restart.
      Note: Simple Windows Application with that one Report added.
       

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.