This article explains how to use
PUSH method for drawing reports. It will also explain how to use user
DataSets in an ASP.NET page for reports. There are two types of methods for drawing the reports:
PULL method- the crystal report makes connection with the database, brings the fields data and draws the report.
PUSH method- we create the
DataSet, choose fields of the
DataSet as report fields and then push it to the crystal report. Here I am going to explain the
PUSH method only.
- Create a new ASP.NET project.
- Insert new item as
- Add elements to the
DataSet which you want on the report. Save All, then right click on the
DataSet filename in the solution explorer and select command "Build and browse".
- Then add a new item to the project as “Crystal report” and insert a blank report.
- In the server explorer, right click database field and select database expert and expand the project data and select
DataSet in the table selector and press OK.
- Then drag the fields from the database fields of server explorer in the detail section of the report. Arrange the fields as you want.
From the toolbox, add crystal report viewer control on to the page. That will add this variable:
protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
- Populate the
DataSet. Set the report
CrystalReportViewer report source.
private void Page_Load(object sender, System.EventArgs e)
CrystalReport1 report=new CrystalReport1();
DataSet ds=new DataSet("Account");DataTable table=new DataTable("Account");table.Columns.Add("Fname",typeof(System.String));
The output will be as follows...
Points to be careful of
- Give same names on
Dataset and the table element name of inserted
- As and when you modify
DataSet, build it again and log off the current connections in report. Set the
DataSource location again pointing to new
DataSet, otherwise database fields of the report will not take the change.
- Setting up
DataBind properties of the report viewer can be avoided. It can be done at runtime.
my name is omkar bhave. I work in Autodesk Inc. USA.