Title: Getting Started with VB 'NET and Crystal Reports
1Chapter 1
- Getting Started with VB .NET and Crystal Reports
- Debbie St. GeorgeWonder Ranch Publishing
DBA/ProgrammerCovington Visual Studio.Net User
Group
2Objectives
- 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
3Crystal 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
4Information Delivery Infrastructure is the Key
5Architecture in Detail
Based on Standards Supports Existing Data
Sources Accessible by All Users Delivered the
Way Users Want to Use Data
6Crystal Reports Walkthrough - using the Pull
Model Add a New Project to the
Solution.Project Add Item Crystal Decisions
Window App
7Add a Crystal ReportGo 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.
8Select standard report
9Select OLE DB (ADO) Microsoft Jet 4.0 OLE DB
Provider
10Adding data and fields
11Group and Total
12Top N and Chart Data
13Standard Report Design
14Crystal Report
15Add Crystal Report Viewer to Form1.vb
16Right-click on Form1 and View code. type Text in
yellow areas.
17Build and then run the report
18Add Project.. new projectASP.net web application
19Right-click and set form as startup form. Project
as startup project.
20From an existing report
21Add previously created CrystalReport1
22Add code behind webformBuild..Build
SolutionDebug.. Start without debugging
23Run from the web.
24As an Asp.Net Web Service
25Add crystalreport1
26Testing CrystalReport1Service
27Right-click on Crystal Report and set as Startup
28Right-Click on Form1.vb and Select View Code
29Change ReportSource to our Web Service .asmx
30Web Form hosted in Windows Environment
31Add CR Deployment Project
Crystal Reports Deployment Steps Create a Web
Setup Package Defining required runtime
components
32Web Setup Project(Note Setup is the same for a
Win Project)
33From WebSetup (add Merge Modules)
34Deploy 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
35RegWiz.msm Needs Lic Key
36Registering Crystal Report ProductHttp//www.cry
staldecisions.com/register.Content.asp
37Resources
- Crystal Decisions Websitehttp//www.crystaldecisi
ons.com/products/dev_zone/default.asp - Free ASP.NET Web Matrix http//www.asp.net/webmatr
ix/default.aspx?tabindex4tabid46 - The XML for ASP.NET Developers Website Video
Tutorialshttp//www.xmlforasp.net/ - http//www.aspfree.com/authors/jitajay/crystalrepo
rt.aspx
38Passing 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.CrystalRep
orts.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 crParameterFieldDefi
nitions As ParameterFieldDefinitions
Dim crParameterFieldDefinition As
ParameterFieldDefinition
39Passing 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.Connection
Info crConnectionInfo
crTable.ApplyLogOnInfo(crTableLogOnInfo)
Next
40Passing 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 rParameterFieldDefini
tions.Item("_at_percentage")
'Get the current values from the parameter
field. At this point
'there are zero values set.
crParameterValues crParameterFieldDefinit
ion.CurrentValues
'Set the current values for the numeric parameter
field
crParameterDiscreteValue New ParameterDiscreteVa
lue()
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(crPa
rameterValues)
CrystalReportViewer1.ReportSource oRpt
End Sub
End Region End Class
41CRYSTAL 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.
42Creating a Dataset during Design Time to Define
the Fields of the Reports 1. Right click on
"Solution Explorer", select "Add" --gt select
"Add New Item--gt Select "DataSet"
432) Drag and drop the "Stores" table (within the
PUBS database) from the "SQL Server" Item under
"Server Explorer".
443) This should create a definition of the
"Stores" table within the DatasetNoteThe .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 .
45Creating 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. -
467) Include the "Stores" table into the "Selected
Tables" section by clicking on "gt" and then Click
"ok"
47- 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.
4848Code Behind Page Modifications
- 10) Call this subroutine in your page load -
- Sub BindReport()
- Dim myConnection As New
SqlClient.SqlConnection() - myConnection.ConnectionString "server
(local)\NetSDKdatabasepubsTrusted_Connectionye
s" - 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()
49Session Summary
- Thanks for Attending
- Wonder Ranch Publishinghttp//www.wonderranchpubl
ishing.net/