January 26, 2011

Code help with example of crystal Reports

Export Crystal Report to Excel Sheet


 MemoryStream oStream; // using System.IO  
 oStream = (MemoryStream)  
 rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel);  
 Response.Clear();  
 Response.Buffer = true;  
 Response.ContentType = "appliaction/ms-excel";  
 Response.BinaryWrite(oStream.ToArray());  
 Response.End()  


Export Crystal Report to Excel


 ReportDocument rpt=new ReportDocument();//set a ReportPath and assign the dataset to reportdocument objectrpt.Load(Server.MapPath("Report1.rpt"));  
 rpt.SetDataSource(ds);  
 //assign the values to crystal report  
 viewerCrystalReportViewer1.ReportSource = rpt;  
 CrystalReportViewer1.DataBind();  
 //Exporting PDFMemoryStream oStream;  
 // using System.IOoStream = (MemoryStream)rpt.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);  
 Response.Clear();  
 Response.Buffer = true;Response.ContentType = "application/pdf";  
 Response.BinaryWrite(oStream.ToArray()); Response.End();  

Create pdf from crystal report
 Imports System.Data  
 Imports System.Data.SqlClient  
 Imports CrystalDecisions.CrystalReports.Engine  
 Imports CrystalDecisions.Shared  
 Imports System.IO  
 'This call is required by the Web Form Designer.  
 Private Sub InitializeComponent()  
 'start - This code should be pasted under #Region Private Sub itializeComponent()  
 'rptProduct is the name of crystal report.  
 Me.docProd = New rptProduct  
 '  
 'docProd  
 '  
 Me.docProd.PrintOptions.PaperOrientation = CrystalDecisions.Shared.PaperOrientation.DefaultPaperOrientation  
 Me.docProd.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.DefaultPaperSize  
 Me.docProd.PrintOptions.PaperSource = CrystalDecisions.Shared.PaperSource.Upper  
 Me.docProd.PrintOptions.PrinterDuplex = CrystalDecisions.Shared.PrinterDuplex.Default  
 'Ends here  
 'Declaration of report document  
 Protected WithEvents docProd As rptProduct  
 Private Sub CreatePDF()  
 Dim objDS As New DataSet  
 Dim dfdoFile As New CrystalDecisions.Shared.DiskFileDestinationOptions  
 Dim strServerPath As String  
 Dim szFileName As String  
 'Create dataset as per requirement  
 docProd.SetDataSource(objDS.Tables(0))  
 szFileName = Session.SessionID & ".pdf" ' rptDailyCalls.pdf  
 strServerPath = MapPath("~") & "\Report\" ' Here the pdf file will be saved.  
 File.Delete(strServerPath & "\" & szFileName) ' Delete file first  
 dfdoFile.DiskFileName = strServerPath & "\" & szFileName  
 With docProd  
 .ExportOptions.ExportDestinationType = CrystalDecisions.Shared.ExportDestinationType.DiskFile  
 .ExportOptions.ExportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat  
 .ExportOptions.DestinationOptions = dfdoFile  
 .Export()  
 End With  
 'URL of the pdf file  
 Response.Redirect("http://localhost/WebApplication1/" & szFileName ,Flase)  
 End Sub  


Dataset to Excel
 Public Class DataSetToExcel  
 Public Shared Sub Convert(ByVal ds As DataSet, ByVal response As HttpResponse)  
 response.Clear()  
 response.Charset = ""  
 response.ContentType = "application/vnd.ms-excel"  
 Dim stringWrite As New System.IO.StringWriter  
 Dim htmlWrite As New System.Web.UI.HtmlTextWriter(stringWrite)  
 Dim dg As New DataGrid  
 dg.DataSource = ds.Tables(0)  
 dg.DataBind()  
 dg.RenderControl(htmlWrite)  
 response.Write(stringWrite.ToString)  
 response.End()  
 End Sub  
 Public Shared Sub Convert(ByVal ds As DataSet, ByVal TableIndex As Integer, ByVal response As HttpResponse)  
 If TableIndex > ds.Tables.Count - 1 Then  
 Convert(ds, response)  
 End If  
 response.Clear()  
 response.Charset = ""  
 response.ContentType = "application/vnd.ms-excel"  
 Dim stringWrite As New System.IO.StringWriter  
 Dim htmlWrite As New System.Web.UI.HtmlTextWriter(stringWrite)  
 Dim dg As New DataGrid  
 dg.DataSource = ds.Tables(TableIndex)  
 dg.DataBind()  
 dg.RenderControl(htmlWrite)  
 response.Write(stringWrite.ToString)  
 response.End()  
 End Sub  
 Public Shared Sub Convert(ByVal ds As DataSet, ByVal TableName As String, ByVal response As HttpResponse)  
 If ds.Tables(TableName) Is Nothing Then  
 Convert(ds, response)  
 End If  
 response.Clear()  
 response.Charset = ""  
 response.ContentType = "application/vnd.ms-excel"  
 Dim stringWrite As New System.IO.StringWriter  
 Dim htmlWrite As New System.Web.UI.HtmlTextWriter(stringWrite)  
 Dim dg As New DataGrid  
 dg.DataSource = ds.Tables(TableName)  
 dg.DataBind()  
 dg.RenderControl(htmlWrite)  
 response.Write(stringWrite.ToString)  
 response.End()  
 End Sub  
 End Class  



Bind Crystal Report in ASP.Net

 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