The following program describes how to email a Crystal Reports from C# .
All C# Crystal Reports Tutorial in this website is based on the following database - crystaldb. So before you begin this section , please take a look at the database structure of crystaldb - Click Here C# crystaldb
If you are new to Crystal Reports and do not know how to create Crystal Reports from C# , please take a look at the section step by step tutorial for creating a Crystal Reports from C#.
For email a Crystal Report from C# first we have to export the Crystal Reports in any of the File Format available in Crystal Reports and then Email it.
In this section we use the previous tutorial C# Crystal Reports Export to PDF file . So before we start this section please take a look at the tutorial C# Crystal Reports Export to PDF file.
After export the Crystal Reports as a PDF file format in your disk , the next step is to email that .pdf file . For that here we are using System.Web.Mail of C# . We have to provide the necessary information to configuring SmtpMail client and send the exported file as attachment .
Select the default form (Form1.cs) you created in C# and drag two buttons (Button1, Button2 ) and a CrystalReportViewer control to your form.
You have to include CrystalDecisions.CrystalReports.Engine in your C# Source Code.
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System.Web.Mail
using System; using System.Windows.Forms; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Shared; using System.Web.Mail; namespace WindowsApplication1 { public partial class Form1 : Form { ReportDocument cryRpt; string pdfFile = "c:\\csharp.net-informations.pdf"; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { cryRpt = new ReportDocument(); cryRpt.Load(PUT CRYSTAL REPORT PATH HERE\\CrystalReport1.rpt"); crystalReportViewer1.ReportSource = cryRpt; crystalReportViewer1.Refresh(); } private void button2_Click(object sender, EventArgs e) { try { ExportOptions CrExportOptions ; DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions(); PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions(); CrDiskFileDestinationOptions.DiskFileName = pdfFile; CrExportOptions = cryRpt.ExportOptions; CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile; CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat; CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions; CrExportOptions.FormatOptions = CrFormatTypeOptions; cryRpt.Export(); sendmail(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private void sendmail() { try { SmtpMail.SmtpServer.Insert(0, "your hostname"); MailMessage Msg = new MailMessage(); Msg.To = "to address here"; Msg.From = "from address here"; Msg.Subject = "Crystal Report Attachment "; Msg.Body = "Crystal Report Attachment "; Msg.Attachments.Add(new MailAttachment(pdfFile)); System.Web.Mail.SmtpMail.Send(Msg); } catch (Exception ex) { MessageBox.Show (ex.ToString()); } } } }
cryRpt.Load(PUT CRYSTAL REPORT PATH HERE\\CrystalReport1.rpt");
The Crystal Reports file path in your C# project files location, there you can see CrystalReport1.rpt . So give the full path name of Crystal Reports file like c:\projects\crystalreports\CrystalReport1.rpt
Before you run this program , you have to provide the necessary SMTP information , that is your HOSTNAME , FROM ADDRESS and TO ADDRESS to the SMTP client.
No comments :
Post a Comment