Как экспортировать отчет Crystal в PDF и электронную почту на c#

Я пытаюсь преобразовать отчет crystal в pdf, так как мне нужно отправить его по почте. Так что я посмотрел попробовал несколько шагов, но безрезультатно.
Я пытался:

  RPTBanQoute printbanqoute = new RPTBanQoute();
            printbanqoute.SetDataSource(ds);               

            printbanqoute.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, @"E:ASD.pdf");

В этом ничего не происходит.

Тогда я попытался :

            try
            {
                // Export the Report to Response stream in PDF format and file name Customers
                //printbanqoute.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, "Customers");
                printbanqoute.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, true, "Quotation");
                // There are other format options available such as Word, Excel, CVS, and HTML in the ExportFormatType Enum given by crystal reports
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                ex = null;
            }

Получение ошибки на Responseas The name 'Response' does not exist in the current context

Я пытался использовать сервер.Mappath, но intellisense не показывает Mappath. Я использовал систему.Сеть

Вот как я заполняю данные на Crystal reprt :

  MySqlCommand cmd = new MySqlCommand("SELECT tb.BookingID, BookingDate, Event, EventDate, EventTime, Pax, Service, ServiceTime, f.FoodMenu, f.ExtraItem FROM tblBookingDetails tb, tblMenu f WHERE tb.BookingID = @bookid AND tb.BookingID = f.BookingID", con.con);
            cmd.Parameters.AddWithValue("@bookid", BLDashboard.bookingID);
            MySqlDataAdapter adapter = new MySqlDataAdapter(cmd);
            DataSet1 ds = new DataSet1();
            adapter.Fill(ds, "BookingDetails");
            if (ds.Tables["BookingDetails"].Rows.Count == 0)
            {
                MessageBox.Show("No Data Found", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            RPTBanQoute printbanqoute = new RPTBanQoute();
            printbanqoute.SetDataSource(ds);

Я также передаю значения параметров в этот отчет Crystal.

Поэтому, пожалуйста, совет, как добиться преобразования в PDF и электронной почте

Также я погуглил дальше и попробовал эти коды :

 cryRpt = new ReportDocument();  
          cryRpt.Load("E:OfficeClientsBombay RestaurantBanquet New - MySqlBanquet NewRPTBanQoute.rpt");  
          crystalReportViewer1.ReportSource = cryRpt;  
          crystalReportViewer1.Refresh();  
          try  
          {  
              ExportOptions CrExportOptions;  
              DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();  
              PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();  
              CrDiskFileDestinationOptions.DiskFileName = "c:csharp.net-informations.pdf";  
              CrExportOptions = cryRpt.ExportOptions;  
              {  
                  CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;  
                  CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;  
                  CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;  
                  CrExportOptions.FormatOptions = CrFormatTypeOptions;  
              }  
              cryRpt.Export();  
          }  
          catch (Exception ex)  
          {  
              MessageBox.Show(ex.ToString());  
          }  

Но это дало мне исключение :
Введите описание изображения здесь

1 ответ

  1. Я могу решить свою проблему. Я писал все коды в crystalviewer1_Loadсобытии ie; экспорт и электронная почта, а также заполнение данных в crystal report. Поэтому мне пришлось создать электронную почту кнопки для экспорта и электронной почты.
    Вот мой код для экспорта и электронной почты, Button1-это кнопка электронной почты на crystalviewer:

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                billprint.ExportToDisk(ExportFormatType.PortableDocFormat, "E:\" + filename);
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.ToString());
    
            }
            try
            {
                MailMessage mm = new MailMessage();
                string toemail = BLDashboard.email;
                string custnm = BLDashboard.custname;
    
                mm.From = new MailAddress("operations@kaem.in", "Kashif Ahhmed");
                mm.To.Add(new MailAddress(toemail, custnm));
                mm.IsBodyHtml = true;
                string name = BLDashboard.custname;
                mm.Subject = "Bill from Indian Restaurant";
                //mm.Body = "Testing Crsytel Report Attachment send via Email";
    
                String Body = "<div>Hello " + name + ",<br> Thank you for considersing us for your next Party/Event, here is the Bill for the Party/Event.<br> If any queries you can reach us at 6096464445. <br> Thank You</div>";
                mm.Body = Body;
                //mm.Attachments.Add(new Attachment(rpt.ExportToStream(ExportFormatType.PortableDocFormat), fileName));  
                mm.Attachments.Add(new Attachment("E:\" + filename));
    
    
    
                SmtpClient sc = new SmtpClient("smtp.kaem.in");
                sc.Credentials = new NetworkCredential("emailadd", "*********");
                sc.Send(mm);
                // MailMessage msg = mm.CreateMailMessage("mr.markwhite1@gmail.com", replacements, Body, new System.Web.UI.Control());  
                MessageBox.Show("Email successfully sent to " + toemail);
            }
            catch (Exception e1)
            {
    
                MessageBox.Show("Unable to send email to mr.markwhite1@gmail.com due to following error:\n\n" + e1.Message, "Email send error", MessageBoxButtons.OK, MessageBoxIcon.Error);
    
                //{
                //    this.SendEmail(emailId, subject, body, rpt, fileName);
                //}
            }
        }