490 likes | 912 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
E N D
Chapter 1 Getting Started with VB .NET and Crystal Reports Debbie St. GeorgeWonder Ranch Publishing DBA/ProgrammerCovington 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
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.
Right-click on Form1 and View code. type Text in yellow areas.
Right-click and set form as startup form. Project as startup project.
Add code behind webformBuild..Build SolutionDebug.. Start without debugging
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)
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
Registering Crystal Report ProductHttp://www.crystaldecisions.com/register.Content.asp
Resources • Crystal Decisions Websitehttp://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 Tutorialshttp://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
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. CRYSTAL REPORTS WALKTHROUGH – USING THE PUSH MODEL(Objectives)
Creating a Dataset during Design Time to Define the Fields of the Reports1. 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 DatasetNote: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 Publishinghttp://www.wonderranchpublishing.net/