Getting Started with VB .NET and Crystal Reports

childlikenumberSecurity

Nov 5, 2013 (3 years and 10 months ago)

120 views

Chapter 1

Getting Started with VB .NET and
Crystal Reports


Debbie St. George

Wonder Ranch Publishing DBA/Programmer

Covington Visual Studio.Net User Group


Objectives


Create a simple Crystal Report in Visual
Studio.NET


Display a Crystal Report in a Windows Forms
Application


Display a crystal Report in a Web Forms
Application


Publish a Crystal Report as an XML Report
Web Service


Deploy Crystal Reports to the Web

Crystal Report Advantages


Some of the major advantages of using
Crystal Report for Visual Studio .NET are :


-

Rapid report development


-

Can extend it to complicated reports with
interactive charts


-

Exposes a report object model using which it
can interact with other controls on the web
form


-

Can programmatically export the reports into
widely used formats like .pdf, .doc, .xls, .html
and .rtf


Information Delivery
Infrastructure is the Key

Based on
Standards


Supports
Existing
Data
Sources


Accessible
by All Users


Delivered
the Way
User’s Want
to Use Data


Architecture in Detail…

Crystal Reports Walkthrough
-

using the Pull Model

Add a New Project to the Solution.

Project… Add Item… Crystal Decisions Window App

Add a Crystal Report:

Go to Project.. Add New Item..Web Project Items..Crystal Report

Keep the CrystalReport1.rpt as the default name for this report.
Click Open and you will get the Crystal Report Gallery Dialog.

Select standard report

Select OLE DB (ADO) Microsoft Jet 4.0 OLE DB Provider

Adding data and fields

Group and Total

Top N and Chart Data

Standard Report Design

Crystal Report

Add Crystal Report Viewer to Form1.vb

Right
-
click on Form1 and View code.
type Text in yellow areas.

Build and then run the report

Add Project.. new
project…ASP.net web application

Right
-
click and set form as startup form.
Project as startup project.

From an existing report

Add previously created CrystalReport1

Add code behind webform

Build..Build Solution

Debug.. Start without debugging

Run from the web
.

As an Asp.Net Web Service

Add crystalreport1

Testing CrystalReport1Service

Right
-
click on Crystal Report and

set as Startup

Right
-
Click on Form1.vb and

Select View Code

Change ReportSource to our
Web Service .asmx

Web Form hosted in Windows
Environment

Add CR Deployment Project

Crystal Reports Deployment Steps:


* Create a Web Setup Package

* Defining required runtime components

Web Setup Project

(Note: Setup is the same for a Win Project)

From WebSetup (add Merge Modules)

Report files (.RPT) need to be distributed when a .NET application is deployed.

Merge Modules

CR for VS .NET provides merge modules in setup projects to make deployment

a simple task. The merge modules are installed to the following folder, by

default:

C:
\
Program Files
\
Common Files
\
Merge Modules
\

There are four merge modules that need to be included in a setup project to

deploy reports.


Managed.MSM


Database_Access.MSM


Database_Access_enu.MSM


REGWIZ.MSM


Deploy Crystal Reports

RegWiz.msm Needs Lic Key


Registering Crystal Report Product

Http://www.crystaldecisions.com/register.Content.asp

Resources


Crystal Decisions Website

http://www.crystaldecisions.com/products/dev_zone/default.asp



Free
ASP.NET Web Matrix
http://www.asp.net/webmatrix/default.aspx?tabindex=4&tabid=46



The XML for ASP.NET Developers Website
Video Tutorials

http://www.xmlforasp.net/



http://www.aspfree.com/authors/jitajay/crystalreport.aspx



Passing a Stored Procedure to a Report


NOTE: This sample Windows application uses the Windows Forms viewer. The sample has one


form (Form1) that contains the viewer. The report code is run from the form's
constructor


(Public Sub New( )).


====================


Imports CrystalDecisions.CrystalReports.Engine


Imports CrystalDecisions.Shared



Public Class Form1


Inherits System.Windows.Forms.Form



'Crystal Reports Variables


Dim oRpt As New CRStoredParam()


Dim crTables As Tables


Dim crTable As Table


Dim crTableLogOnInfo As TableLogOnInfo


Dim crConnectionInfo As New ConnectionInfo()


Dim crParameterValues As ParameterValues


Dim crParameterDiscreteValue As ParameterDiscreteValue


Dim crParameterFieldDefinitions As ParameterFieldDefinitions


Dim crParameterFieldDefinition As ParameterFieldDefinition

#Region " Windows Form Designer generated code “


Public Sub New()


MyBase.New()


'This call is required by the Windows Form Designer.


InitializeComponent()



'Add any initialization after the InitializeComponent() call


' Set the Connection parameters


' Using an OLEDB connection to a SQL Sever DB (Database: Pubs)


With crConnectionInfo


.DatabaseName = "DBName“


.ServerName = "ServerNameOrODBCName“


.UserID = "UserID“


.Password = "Password“


End With


crTables = oRpt.Database.Tables


'Set the logon information for each table.


For Each crTable In crTables


crTableLogOnInfo = crTable.LogOnInfo


crTableLogOnInfo.ConnectionInfo = crConnectionInfo


crTable.ApplyLogOnInfo(crTableLogOnInfo)


Next




Passing a Stored Procedure to a Report (cont)

' Pass the Stored Procedure parameter to the report


'Get the collection of parameters from the report


crParameterFieldDefinitions = oRpt.DataDefinition.ParameterFields


'Access the specified parameter from the collection


crParameterFieldDefinition =
rParameterFieldDefinitions.Item("@percentage")



'Get the current values from the parameter field. At this point


'there are zero values set.


crParameterValues = crParameterFieldDefinition.CurrentValues



'Set the current values for the numeric parameter field


crParameterDiscreteValue = New ParameterDiscreteValue()


crParameterDiscreteValue.Value = "50"


'Add the current value for the parameter field


crParameterValues.Add(crParameterDiscreteValue)



'The current parameter values must be applied for the parameter field.


crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)


CrystalReportViewer1.ReportSource = oRpt


End Sub


#End Region


End Class

Passing a Stored Procedure to a Report (cont)

CRYSTAL REPORTS WALKTHROUGH



USING THE PUSH MODEL

(Objectives)


1. Create a Dataset during design time.


2. Create the .rpt file (from scratch) and make
it point to the Dataset that we created in the
previous step.


3. Place a CrystalReportViewer control on the
.aspx page and set its properties to point to
the .rpt file that we created in the previous
step.


4. In your code behind page, write the
subroutine to make the connections to the
database and populate the dataset that we
created previously in step one.


5. Call the Databind method from your code
behind page.


Creating a Dataset during Design Time to Define the Fields of the Reports


1. Right click on "Solution Explorer",

select "Add"
--
> select "Add New Item
--
> Select "DataSet"

2) Drag and drop the "Stores" table (within the PUBS
database) from the "SQL Server" Item under "Server
Explorer".

3) This should create a definition of the "Stores" table within the Dataset

Note:The .xsd file created this way contains only the field definitions
without any data in it. It is up to the developer to create the connection
to the database, populate the dataset and feed it to the Crystal Report .

Creating the .rpt File :


4) Create the report file using the steps mentioned previously.
The only difference here is that instead of connecting to the
Database thru Crystal Report to get to the Table, we would be
using our DataSet that we just created.




5)After creating the .rpt file, right click on the "Details"
section of the Report file, select "Add/Remove Database"




6) In the "Database Expert" window, expand "Project Data"
(instead of "OLE DB" that was selected in the case of the PULL
Model), expand "ADO.NET DataSet", "DataSet1", and select
the "Stores" table.




7) Include the "Stores" table into the "Selected
Tables" section by clicking on ">" and then Click
"ok"

8) Follow the remaining steps to create the report layout
as mentioned previously in the PULL Model to complete
the .rpt Report file creation





Creating a CrystalReportViewer Control

9) Follow the steps mentioned previously in the PULL
Model to create a Crystal Report Viewer control and set
its properties.


48
Code Behind Page Modifications :


10) Call this subroutine in your page load
-



Sub BindReport()



Dim myConnection As New SqlClient.SqlConnection()



myConnection.ConnectionString= "server=
(local)
\
NetSDK;database=pubs;Trusted_Connection=yes"



Dim MyCommand As New SqlClient.SqlCommand()



MyCommand.Connection = myConnection



MyCommand.CommandText = "Select * from Stores"



MyCommand.CommandType = CommandType.Text



Dim MyDA As New SqlClient.SqlDataAdapter()



MyDA.SelectCommand = MyCommand







Dim myDS As New Dataset1()





'This is our DataSet created at Design Time








MyDA.Fill(myDS, "Stores")












'You have to use the same name as that of your Dataset that you created during design time







Dim oRpt As New CrystalReport1()




' This is the Crystal Report file created at Design Time







oRpt.SetDataSource(myDS)





' Set the SetDataSource property of the Report to the Dataset







CrystalReportViewer1.ReportSource = oRpt





' Set the Crystal Report Viewer's property to the oRpt Report object that we created







End Sub


Session Summary

Thanks for Attending





Wonder Ranch Publishing

http://www.wonderranchpublishing.net/