Getting Started with VB .NET and Crystal Reports

Download Report

Transcript Getting Started with VB .NET and Crystal Reports

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
Architecture in Detail…
Based on
Standards
Supports
Existing
Data
Sources
Accessible
by All Users
Delivered
the Way
User’s Want
to Use Data
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)
Deploy Crystal Reports
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
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
Passing a Stored Procedure to a Report (cont)
#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
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.
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.
48Code 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/