VB.net Crystal报表导出到html并使用Outlook作为html邮件正文发送

2020-09-01 17:48发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在尝试使用Outlook应用程序将水晶报表的内容作为电子邮件正文发送。 这是我在 VB.net

中的代码
 导入Outlook = Microsoft.Office.Interop.Outlook
 昏暗的AsString = something.ConnectionString
             Dim cryRpt作为ReportDocument
             昏暗的用户名AsString = a.Split(" =")(3).Split(";")(0)'获取用户名昏暗的用户名AsString = a.Split(" =")(4).Split(";")(  0)获取密码
             cryRpt =新ReportDocument()暗路径AsString = Application.StartupPath
             Dim svPath AsString = Application.StartupPath&" \ PDF" IfNot Directory.Exists(svPath)然后
                 Directory.CreateDirectory(svPath)EndIf
             cryRpt.Load(路径&" \ Reports \ dr.rpt")
             CrystalReportViewer1.ReportSource = cryRpt
             cryRpt.SetDatabaseLogon(用户名,密码)
             CrystalReportViewer1.Refresh()将myExportOptions设置为ExportOptions
             myExportOptions = cryRpt.ExportOptions
             myExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
             myExportOptions.ExportFormatType = ExportFormatType.HTML40'我也尝试了HTML32Dim html40FormatOptions as HTMLFormatOptions = New HTMLFormatOptions()
             html40FormatOptions.HTMLBaseFolderName = svPath
             html40FormatOptions.HTMLFileName =" dr.htm"
             html40FormatOptions.HTMLEnableSeparatedPages = False
             html40FormatOptions.HTMLHasPageNavigator = False
             html40FormatOptions.UsePageRange = False
             myExportOptions.FormatOptions = html40FormatOptions
             cryRpt.Export()TryDim oApp作为Outlook.Application
                 oApp =新的前景。应用

                 Dim oMsg作为Outlook.MailItem
                 oMsg = oApp.CreateItem(outlook.OlItemType.olMailItem)

                 oMsg.Subject = txtSubject.Text
                 oMsg.BodyFormat = Outlook.OlBodyFormat.olFormatHTML
                  oMsg.HTMLBody =""

                 oMsg.HTMLBody = getFileAsString(svPath&" \ PoPrt \ QuotPrt.html")

                 oMsg.To = txtEmailId.Text
                 Dim ccArray AsNew List(Of String)({txtCC1.Text,txtCC2.Text,txtCC3.Text})Dim cclis AsString = String.Join(",",ccArray.Where(Function(ss)NotString.IsNullOrEmpty(ss))  )
                 oMsg.CC = cclis
                 oMsg.Display(True)异常捕获
                 MsgBox("出问题了",vbExclamation)结束尝试
             SvFormPanel3.Visible = False  

功能

  PrivateFunction getFileAsString(ByVal file AsString)AsStringDim阅读器作为System.IO.FileStream
         尝试
             reader = New System.IO.FileStream(file,IO.FileMode.Open)捕获异常
             MsgBox("出问题了。" + e.Message,vbInformation)EndTryDim resultString AsString ="" Dim b(1024)AsByteDim temp as UTF8Encoding = New UTF8Encoding(True)DoWhile reader.Read(b,0,b.Length)>  0
             resultString = resultString和temp.GetString(b)
             Array.Clear(b,0,b.Length)循环

         reader.Close()返回resultString
     EndFunction  

该报告将以html格式导出到指定位置。 当我们手动打开该html文件时,它会完美显示带有边框线和所有边框。 但是,当将其作为Outlook应用程序的html主体添加时,格式将消失,并且看起来很分散。 谁能帮忙

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我正在尝试使用Outlook应用程序将水晶报表的内容作为电子邮件正文发送。 这是我在 VB.net

中的代码
 导入Outlook = Microsoft.Office.Interop.Outlook
 昏暗的AsString = something.ConnectionString
             Dim cryRpt作为ReportDocument
             昏暗的用户名AsString = a.Split(" =")(3).Split(";")(0)'获取用户名昏暗的用户名AsString = a.Split(" =")(4).Split(";")(  0)获取密码
             cryRpt =新ReportDocument()暗路径AsString = Application.StartupPath
             Dim svPath AsString = Application.StartupPath&" \ PDF" IfNot Directory.Exists(svPath)然后
                 Directory.CreateDirectory(svPath)EndIf
             cryRpt.Load(路径&" \ Reports \ dr.rpt")
             CrystalReportViewer1.ReportSource = cryRpt
             cryRpt.SetDatabaseLogon(用户名,密码)
             CrystalReportViewer1.Refresh()将myExportOptions设置为ExportOptions
             myExportOptions = cryRpt.ExportOptions
             myExportOptions.ExportDestinationType = ExportDestinationType.DiskFile
             myExportOptions.ExportFormatType = ExportFormatType.HTML40'我也尝试了HTML32Dim html40FormatOptions as HTMLFormatOptions = New HTMLFormatOptions()
             html40FormatOptions.HTMLBaseFolderName = svPath
             html40FormatOptions.HTMLFileName =" dr.htm"
             html40FormatOptions.HTMLEnableSeparatedPages = False
             html40FormatOptions.HTMLHasPageNavigator = False
             html40FormatOptions.UsePageRange = False
             myExportOptions.FormatOptions = html40FormatOptions
             cryRpt.Export()TryDim oApp作为Outlook.Application
                 oApp =新的前景。应用

                 Dim oMsg作为Outlook.MailItem
                 oMsg = oApp.CreateItem(outlook.OlItemType.olMailItem)

                 oMsg.Subject = txtSubject.Text
                 oMsg.BodyFormat = Outlook.OlBodyFormat.olFormatHTML
                  oMsg.HTMLBody =""

                 oMsg.HTMLBody = getFileAsString(svPath&" \ PoPrt \ QuotPrt.html")

                 oMsg.To = txtEmailId.Text
                 Dim ccArray AsNew List(Of String)({txtCC1.Text,txtCC2.Text,txtCC3.Text})Dim cclis AsString = String.Join(",",ccArray.Where(Function(ss)NotString.IsNullOrEmpty(ss))  )
                 oMsg.CC = cclis
                 oMsg.Display(True)异常捕获
                 MsgBox("出问题了",vbExclamation)结束尝试
             SvFormPanel3.Visible = False  

功能

  PrivateFunction getFileAsString(ByVal file AsString)AsStringDim阅读器作为System.IO.FileStream
         尝试
             reader = New System.IO.FileStream(file,IO.FileMode.Open)捕获异常
             MsgBox("出问题了。" + e.Message,vbInformation)EndTryDim resultString AsString ="" Dim b(1024)AsByteDim temp as UTF8Encoding = New UTF8Encoding(True)DoWhile reader.Read(b,0,b.Length)>  0
             resultString = resultString和temp.GetString(b)
             Array.Clear(b,0,b.Length)循环

         reader.Close()返回resultString
     EndFunction  

该报告将以html格式导出到指定位置。 当我们手动打开该html文件时,它会完美显示带有边框线和所有边框。 但是,当将其作为Outlook应用程序的html主体添加时,格式将消失,并且看起来很分散。 谁能帮忙

付费偷看设置
发送
2条回答
当学会了学习
1楼-- · 2020-09-01 18:20

我已经解决了该问题,方法是将其导出为PDF,然后转换为图像并嵌入到电子邮件正文中。

哎,真难
2楼-- · 2020-09-01 18:06

有人可以帮忙吗

一周热门 更多>