INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Jobs

How-to

How To Create a Crystal Report from ADO.NET Dataset using Visual Basic .NET? by PankajBanga
Posted: 27 Jul 03


How To: Create a Crystal Report from ADO.NET Dataset using Visual Basic .NET

Introduction:
Crystal Report of Visual Studio .NET is the standard reporting tool for Visual Studio .NET. You can host reports on web and windows platform and can publish reports as Report Web services on the web server. It is based on framework of Crystal Report 8.0 and uses open and flexible architecture, with standards like XML, to allow porting reports over the web. Using crystal report expert you can choose report layouts, display charts, calculate summaries, subtotals as grouped data as well as conditionally format text and rotate text objects.

Although Crystal Reports for Visual Studio .NET supports variety of data source like ADO recordset, CDO recordset, DAO recordset, MS Excel workbook, this walkthrough endeavor to explain How to report off ADO.NET DataSet using Visual Basic .NET.

As you all know DataSet is the core component of distributed application and is explicitly designed for data access independent of any data source. Dataset can be created from variety of sources. Whatever the source is, before reporting off ADO.NET DataSet you must perform the following task:
  
  • Generate an object for the DataSet.

  •   
  • Connect report to DataSet Object.

  •   
  • Push data into DataSet Object.

  •   
  • Bind report to Windows Forms Viewer to display report with actual data at runtime.


  • Requirements:
      
  • Visual Studio .NET 2002

  •   
  • .NET Framework 1.0

  •   
  • SQL Server 2000 with Northwind database


  • Generating an Object for the DataSet
    Object for ADO.NET is a collection of dataset classes created in memory.

    To create a dataset object from Northwind database in SQL Server, using ADO.NET DataSet Designer.

    1. In the Solution Explorer, right-click the project name, point to Add, and click Add New Item.
    2. In the Categories area of the Add New Item dialog box, expand the folder and select Data.
    3. In the Templates area, select Dataset.
    4. Accept the default name Dataset1.xsd.

    This creates a new schema file that will be used to generate a strongly typed dataset. The schema file will be displayed in ADO.NET Dataset designer.

    5. In the Solutions Explorer, click on Dataset1.xsd file, if now already the active view.
    6. From the Server Explore, on the right connect to SQL Server and drill down to Northwind Database.
    7. Highlight the Table Customers (or stored procedure if desired) and drag and drop it on the Interface of Dataset1.xsd. Dataset1.xsd should now be displayed in the Dataset tab.

    This creates a dataset object and contains only a description of the database based on the schema in Dataset1.xsd. It does not contain the actual data.   

    Connecting Report to an ADO.NET Dataset Object
    From ADO.NET Dataset Object you can add tables to Crystal Report using Database Expert in Crystal Report Designer.

    To create a new report and connect it to Dataset object which contains description for Customers table in Northwind database

    1. In the Visual Studio .NET Solution Explorer, right-click your project to display the shortcut menu.
    2. Point to Add and click Add New Item.
    3. In the Add New Item dialog box, select Crystal Report from the Templates area. Click Open.
    4. You will be presented with Crystal Report Gallery.
    5. You can choose from any of the options provided in Crystal Report Gallery. But for the purpose of this walkthrough choose As a Blank Report and click OK.
    6. On File menu, click Save to save the report.
    7. Right click in the Report Designer, point to Database, and click Add/Remove Database.
    8. YouÆll be presented with Database Expert wizard.
    9. In the Database Expert wizard, expand the Project Data folder, expand the ADO.NET Datasets folder and select the dataset object.
    10. If you now drill down Database Fields node, in the Field Explorer, you can view Customers table and all its fields
    11. Drag and drop the fields onto the report and format them as required.

    Pushing data into DataSet object and binding report to Windows Forms Viewer
    In order to display actual data in the report, you should fill the dataset object with the data before you bind the report to Windows Forms Viewer. You should do this in the corresponding source file for Windows Form.

    1. Drag and drop CrystalReportViewer control on Form1 and set the DisplayGroupTree property to False.
    2. Accept the default name as CrystalReportViewer1.
    3. Open Form1 code editor and add the following code on Load event of Form1.

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim rpt As New CrystalReport1() 'The report you created.
            Dim myConnection As SqlConnection
            Dim MyCommand As New SqlCommand()
            Dim myDA As New SqlDataAdapter()
            Dim myDS As New Dataset1() 'The DataSet you created.

            Try

                myConnection = New SqlConnection("Data Source=localhost;Integrated Security=SSPI;" & _
                                                 "Initial Catalog=northwind;")
                MyCommand.Connection = myConnection
                MyCommand.CommandText = "SELECT * FROM Customers"
                MyCommand.CommandType = CommandType.Text
                myDA.SelectCommand = MyCommand

                myDA.Fill(myDS, "Customers")
                rpt.SetDataSource(myDS)
                CrystalReportViewer1.ReportSource = rpt

            Catch Excep As Exception
                MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
    End Sub

    Troubleshooting

    Add reference to SqlClient namespace. Imports System.Data.SqlClient

    Check connection to your server.

    Happy programming!!!

    Back to Visual Basic (Microsoft) VB.NET FAQ Index
    Back to Visual Basic (Microsoft) VB.NET Forum

    My Archive

    Resources

    Close Box

    Join Tek-Tips® Today!

    Join your peers on the Internet's largest technical computer professional community.
    It's easy to join and it's free.

    Here's Why Members Love Tek-Tips Forums:

    Register now while it's still free!

    Already a member? Close this window and log in.

    Join Us             Close