SpriteHand
Module Border
  ReportViewer control - programmatically
Module Border
Location: BlogsAndy's Blog    
Posted by: host 1/26/2006 9:08 AM
In VS2005, the report designer is great for quickly throwing together a report and binding it to an ObjectDataSource... but what if you want to do this through code for more control?
 
The steps are to create the report _without_ using a TableAdapter, and then manually create the data source through code (below). Note that the "rds.Name" property must be set to the "DataSetName" attribute in the report's RSDL file:
         <DataSetName>DSCustomers_OutCustomersDataSetName>

Dim dsCustomers As DSCustomers
Dim oCustomers As New CCustomers()

dsCustomers = oCustomers.GetCustomers()
Dim rds As ReportDataSource = New ReportDataSource
ReportViewer1.LocalReport.DataSources.Clear()
rds.Name =
"DSCustomers_OutCustomers"
rds.Value = dsCustomers.OutCustomers
ReportViewer1.LocalReport.DataSources.Add(rds)
ReportViewer1.DataBind()


As a second example, let's say you use a Typed DataSet and TableAdapter as a Data Source and you are creating a WindowsForms application. In the example below, a Typed DataSet has been created called "DataSet1" which queries the Customers table.

Some important things to remember:

  • you need to call  the Reset() method on the ReportViewer whenever you dynamically switch reports.
  • you need to prefix report (RDLC) filenames with the Namespace of the project the report is in (below the namespace is "ReportViewerTest.")

reportViewer1.Reset();

DataSet1TableAdapters.CustomersTableAdapter ta1 = new DataSet1TableAdapters.CustomersTableAdapter();

DataSet1.CustomersDataTable dt1 = new DataSet1.CustomersDataTable();

ta1.Fill(dt1);

 

ReportDataSource rds = new ReportDataSource();

reportViewer1.LocalReport.DataSources.Clear();

reportViewer1.LocalReport.ReportEmbeddedResource = "ReportViewerTest.Report1.rdlc";

rds.Name = "DataSet1_Customers";

rds.Value = dt1;

reportViewer1.LocalReport.DataSources.Add(rds);

reportViewer1.RefreshReport();

 

 

 

Permalink |  Trackback

Comments (1)   Add Comment
Re: ReportViewer control - programmatically    By Anonymous on 3/16/2006 12:48 PM
Thank you soooo much for this! You saved me many hours of hair-pulling! :-)


Title:
Comment:
Add Comment   Cancel 
Module Border Module Border
Module Border
  Blog_List
Module Border
Module Border Module Border
Module Border
  Subscribe
Module Border

RSS

Module Border Module Border
Module Border
  Diversions
Module Border

DESTROY ALL INVADERS
A scrolling shooter game where the objective is to destroy the invading UFO's flying over a neighborhood of your choosing. Imagery provided by Microsoft Virtual Earth. Created using Silverlight 2.
PLAY IT

INFO AND CODE



HOOK SHOT
This little basketball game was submitted as an entry to the TeamZoneSports Silverlight Contest. Created using Silverlight 2 and the Farseer Physics engine.
PLAY IT

INFO AND CODE



SORT THE FOOBARS
A game where you need to sort the good foobars from the bad ones. Created using Silverlight 2 and the Farseer Physics engine.
PLAY IT

MORE INFO



POLYGON PHYSICS DEMO
A demo showing polygon physics where the user draws physics objects with the mouse. Created using Silverlight 2 and the Farseer Physics engine.
PLAY IT

MORE INFO



SILVERLIGHT ROCKS!
Destroy the asteroids before they destroy your ship! Created using Silverlight 2.
PLAY IT

INFO AND CODE



FISH GAME
A simple game of harpoon-the-fish. Written using the AJAX Sprite Toolkit.
PLAY IT

INFO AND CODE

Module Border Module Border
Module Border
  Search_Blog
Module Border
Module Border Module Border
Module Border
  Blog_Archive
Module Border
Module Border Module Border
Copyright (c) 2008 andy.beaulieu.com - Login