2017-01-13 16 views
0

私はそれを郵送する必要があるので、私はCrystal Reportをpdfに変換しようとしています。だから、私はいくつかのステップを試してみましたが、役に立たないです。 私は試しました:CrystalレポートをPDFにエクスポートし、電子メールでC#

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

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

これは何も起こりません。

は、次に私が試した:私はServer.MapPathのが、インテリセンスのdoesntショーMapPathのを使用してみました

The name 'Response' does not exist in the current contextとして

  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; 
      } 

Response上のエラーを取得します。私は相続人は、私はクリスタルreprtにデータを移入していますどのSystem.Webの

を使用:

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や電子メール

への変換を達成するためにどのようにアドバイスをしてください。また、私はさらにGoogleで検索し、これらのコードを試してみました:

cryRpt = new ReportDocument(); 
      cryRpt.Load("E:\\Office\\Clients\\Bombay Restaurant\\Banquet New - MySql\\Banquet New\\RPTBanQoute.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()); 
      } 

しかし、これは私に例外与えた: enter image description here

答えて

0

を私ができる午前私の問題を解決する。私はcrystalviewer1_Loadイベントのすべてのコードを書いていました。エクスポート、電子メール、クリスタルレポートへのデータの入力などが含まれます。だから私は、エクスポートして電子メールを送るためのボタン電子メールを作成しなければなりませんでした。 私のコードをエクスポートして電子メールで送ってください、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("[email protected]", "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("[email protected]", replacements, Body, new System.Web.UI.Control()); 
      MessageBox.Show("Email successfully sent to " + toemail); 
     } 
     catch (Exception e1) 
     { 

      MessageBox.Show("Unable to send email to [email protected] due to following error:\n\n" + e1.Message, "Email send error", MessageBoxButtons.OK, MessageBoxIcon.Error); 

      //{ 
      // this.SendEmail(emailId, subject, body, rpt, fileName); 
      //} 
     } 
    } 
関連する問題