【问题标题】:Create and convert .rpt to .pdf without ReportViewer在没有 ReportViewer 的情况下创建 .rpt 并将其转换为 .pdf
【发布时间】:2016-09-21 21:07:18
【问题描述】:

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

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

是否可以在不使用 ReportViewer 的情况下生成报告然后将其转换为 .pdf,如果可以,我该怎么做?

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

【问题讨论】:

  • 你的意思是你不需要亲自出示报告?
  • @reds 是的,我不需要展示它,只需创建它,然后将其设置为电子邮件附件

标签: vb.net crystal-reports email-attachments


【解决方案1】:

它实际上比我想象的要简单。

只需设置所需数据库的登录信息,然后使用 SQL 从数据库中检索数据,并将其存储在您设置为报告DataSourceDataSet 中,然后将其导出。显然你可能有不同的做事方式,但这应该大致做到

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()

【讨论】:

    猜你喜欢
    • 2017-05-27
    • 1970-01-01
    • 2018-04-25
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多