Building Reports Using ASP.NET and Crystal Reports - Part 2 - Quarterly Sales Report
page 13 of 15
by Vince Varallo
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 16493/ 633

Step 12: Viewing the report in an ASP.NET page

Now that you have built the report you can build a web page to display it. I will create a simple page that lets the user enter a fiscal year and view the report.

1.    Right click on the Adventure Works web site in the Solution Explorer. 

2.    Select Add New Item… from the pop-up menu.

3.    Select Web Form from the templates and change the name to SalesReport.aspx. Make sure the Language is set to C# and click the Add button.

4.    Open the page and view its markup. Add the following Register directive after the Page directive.

Listing 4

<%@ Register assembly="CrystalDecisions.Web, Version=10.5.3700.0, Culture=neutral, 
PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR"%>

This allows you to use the Crystal Reports Viewer control that comes with Visual Studio.

5.    Add the following code between the div tags.

Listing 5

<asp:TextBox runat="server" ID="txtFiscalYear"></asp:TextBox>
<asp:Button ID="btnPreview" runat="server" onclick="btnPreview_Click" 
Text="Preview" />
<br />
<br />
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" 
AutoDataBind="true" />    

This adds a text box that will allow the user to enter the fiscal year to print the report.

6.    Add the following using statements in the code behind.

Listing 6

//Custom using statements
using System.Data.SqlClient;
using System.Configuration;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;

7.    Add the following code the Page_Load event.

Listing 7

if (IsPostBack)        
{
    if (CrystalReportViewer1.Visible == true)
    {
        //Rebind the report.
        BindReport();
    }
}

8.    Add the following code for the Preview button's click event. You can create the event handler by double clicking on the button in Design mode.

Listing 8

protected void btnPreview_Click(object sender, EventArgs e)
{
    BindReport();
    CrystalReportViewer1.Visible = true;
}

This code calls a custom method called BindReport() and then shows the Crystal Report Viewer Control.

9.    Now add the following custom methods.

Listing 9

private void BindReport()
{
    ReportDocument report = new ReportDocument();
    report.Load(Server.MapPath("Sales.rpt"));
 
    SetTableLocation(report.Database.Tables);
 
    report.DataDefinition.FormulaFields["FiscalYear"].Text = txtFiscalYear.Text;
 
    CrystalReportViewer1.ReportSource = report;
}
 
private void SetTableLocation(Tables tables)
{
    ConnectionInfo connectionInfo = new ConnectionInfo();
 
    connectionInfo.ServerName = @"LTMTI30\SQL2008";
    connectionInfo.DatabaseName = "AdventureWorks";
    connectionInfo.UserID = "aspalliance";
    connectionInfo.Password = "aspalliance";
 
    foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
    {
        TableLogOnInfo tableLogOnInfo = table.LogOnInfo;
        tableLogOnInfo.ConnectionInfo = connectionInfo;
        table.ApplyLogOnInfo(tableLogOnInfo);
    }
}

The first method creates an instance of the ReportDocument class. This represents the report that you created earlier and allows you to manipulate it at runtime. The SetTableLocation() method sets the table location for each table in the report. Again, this assumes you have created an "aspalliance" SQL Login and have given it access to the database. The FiscalYear formula is then set to the year the user typed into the report. You could add validation to make sure the user entered a four digit year, but for simplicity I left this out. The Crystal Report Viewer's source is then set to the report object. 

You can now run the project. Set the SalesReport.aspx page to the start page and run the project. Enter 2002 for the Fiscal Year and click the Preview button.

Figure 13

You can scroll through the report using the navigation buttons at the top of the page or you can click directly to a sales territory by clicking the name in the group tree on the left hand side of the report.


View Entire Article

Article Feedback

Title:  
Name:  
Url: ( Optional )
Comment:  
Please add 1 and 8 and type the answer here:

User Comments

Title: Awesome   
Name: Rusty
Date: 8/27/2009 10:36:14 AM
Comment:
Awesome job. I am a brand new CR user and I found your article to be easy to understand, follow, and very helpful. Thanks and keep them coming.
Title: Superb   
Name: ramakrishna
Date: 8/1/2009 6:51:52 AM
Comment:
This article is very good to customise my website,
Title: great work   
Name: Ankit Agarwal
Date: 7/28/2009 12:48:39 AM
Comment:
u have done a great work
this article is really helpful
Title: Great Job   
Name: yin min
Date: 7/26/2009 5:52:54 AM
Comment:
Thanks for your step by step article.
Everyone who is new at crystal are looking for such a simple and very useful article.
Thanks again.
Title: Well Done   
Name: Muhammad Aijaz Rajput
Date: 7/10/2009 10:47:53 AM
Comment:
This is an excellent article. Thanks. I realy need the detailed step-by-step article approach that you take.
Title: Source coming soon   
Name: Vince
Date: 6/22/2009 9:20:19 AM
Comment:
The source should be posted soon.
Title: Excellent   
Name: Walter
Date: 6/16/2009 4:03:31 AM
Comment:
Hi Vince,

another excellent article. Thanks. I really like the detailed step-by-step approach that you take.

Will the source be available as a download?

Regards

Product Spotlight
Product Spotlight 



Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2009 ASPAlliance.com  |  Page Processed at 11/22/2009 4:42:12 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search