在没有 ReportViewer 的情况下创建 .rpt 并将其转换为 .pdf
Create and convert .rpt to .pdf without ReportViewer
我正在编写一个点击按钮的功能,允许用户向客户列表发送电子邮件,其中附有发票的 .pdf,这是使用 Crystal 报告制作的。我的电子邮件功能正常工作,我可以检索正确的信息并向列表中的每个客户发送电子邮件,但我在附件方面遇到了问题。
在同一个项目中,我确实有一个 window 和一个 ReportViewer,我正在使用它来生成和查看单个报告,但是,由于可能正在创建大量报告并且立即发送,我现在需要在不使用此 window 的情况下创建它们。
是否可以在不使用 ReportViewer 的情况下生成报告然后将其转换为 .pdf,如果可以,我该怎么做?
我想也许可以通过使用 SQL 来 select 我需要的所有数据并将其存储在数据集中,但我不确定这之后需要做什么。
实际上比我想的要简单。
只需设置所需数据库的登录信息,然后使用 SQL 从数据库中检索数据,并将其存储在 DataSet
中,您将其设置为报告 [=12] =],然后导出。显然你可能有不同的做事方式,但这应该大致做到了
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()
我正在编写一个点击按钮的功能,允许用户向客户列表发送电子邮件,其中附有发票的 .pdf,这是使用 Crystal 报告制作的。我的电子邮件功能正常工作,我可以检索正确的信息并向列表中的每个客户发送电子邮件,但我在附件方面遇到了问题。
在同一个项目中,我确实有一个 window 和一个 ReportViewer,我正在使用它来生成和查看单个报告,但是,由于可能正在创建大量报告并且立即发送,我现在需要在不使用此 window 的情况下创建它们。
是否可以在不使用 ReportViewer 的情况下生成报告然后将其转换为 .pdf,如果可以,我该怎么做?
我想也许可以通过使用 SQL 来 select 我需要的所有数据并将其存储在数据集中,但我不确定这之后需要做什么。
实际上比我想的要简单。
只需设置所需数据库的登录信息,然后使用 SQL 从数据库中检索数据,并将其存储在 DataSet
中,您将其设置为报告 [=12] =],然后导出。显然你可能有不同的做事方式,但这应该大致做到了
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()