创建和转换.rpt到.pdf没有ReportViewer



我正在编写一个关于按钮单击的函数,该函数允许用户向客户列表发送电子邮件,其中附加了使用Crystal Reports制作的发票的.pdf。我已经有了电子邮件功能,我可以检索正确的信息并向列表中的每个客户发送电子邮件,但是我在附件方面遇到了麻烦。

在同一个项目中,我确实有一个带有ReportViewer的窗口,我使用它来生成和查看单个报告,但是,由于可能会同时创建和发送大量报告,我现在需要在不使用此窗口的情况下创建它们。

是否有可能在不使用ReportViewer的情况下生成报告,然后将其转换为.pdf,如果可以,我该如何做到这一点?

我想也许通过使用SQL来选择我需要的所有数据并将其存储在数据集中,但我不确定在此之后需要做什么。

其实比你想象的要简单得多。

只需设置所需数据库的登录信息,然后使用SQL从数据库检索数据,并将其存储在DataSet中,将其设置为报表DataSource,然后导出它。显然,你可能有不同的做法,但这应该大致完成

Dim report As New ReportDocument
                Dim dest As String = ` This is where you put your file destination
                report.Load(dest)
                Dim info As CrystalDecisions.Shared.TableLogOnInfo
                info = New CrystalDecisions.Shared.TableLogOnInfo()
                info.ConnectionInfo.DatabaseName = ' Your DB name
                info.ConnectionInfo.ServerName =' Your DB server name
                info.ConnectionInfo.Password = ' Your DB password
                info.ConnectionInfo.UserID = ' Your DB UserID
                report.Database.Tables(0).ApplyLogOnInfo(info)
                sql = "SELECT * FROM your_table"
                Dim rda As New OleDb.OleDbDataAdapter(sql, connectionstring)
                Dim rds As New DataSet
                rda.Fill(rds)
                report.SetDataSource(rds)
                CrDiskFileDestinationOptions.DiskFileName = ' Your directory path and chosen file name
                CrExportOptions = report.ExportOptions
                With CrExportOptions
                    .ExportDestinationType = ExportDestinationType.DiskFile
                    .ExportFormatType = ExportFormatType.PortableDocFormat
                    .DestinationOptions = CrDiskFileDestinationOptions
                    .FormatOptions = CrFormatTypeOptions
                End With
                report.Export()

最新更新