将crystal报表导出为pdf时内存已满错误

将crystal报表导出为pdf时内存已满错误,pdf,crystal-reports,vb6,Pdf,Crystal Reports,Vb6,我们有一个用visual basic 6.0编写的遗留应用程序。此应用程序首先将呈现的crystal报告作为pdf文档保存到目录中。然后我们将该文档作为blob存储在数据库中。下面是代码片段。当应用程序必须呈现1000名员工的报告时,它运行到一半,并在“.Export false”行上抛出“内存已满”错误。如果我在抛出异常后按play按钮,它工作正常。但是,必须有人注意它并按下播放按钮。有没有关于如何解决这个问题的建议 FileLocation = "D:\TempSaveToMail\" &a

我们有一个用visual basic 6.0编写的遗留应用程序。此应用程序首先将呈现的crystal报告作为pdf文档保存到目录中。然后我们将该文档作为blob存储在数据库中。下面是代码片段。当应用程序必须呈现1000名员工的报告时,它运行到一半,并在“.Export false”行上抛出“内存已满”错误。如果我在抛出异常后按play按钮,它工作正常。但是,必须有人注意它并按下播放按钮。有没有关于如何解决这个问题的建议

FileLocation = "D:\TempSaveToMail\" & CoCode & Batch & ".pdf"

                On Error Resume Next
                Kill FileLocation
                On Error GoTo 0

                myReport.ExportOptions.DiskFileName = FileLocation
                myReport.ExportOptions.DestinationType = crEDTDiskFile
                myReport.ExportOptions.FormatType = crEFTPortableDocFormat
                myReport.ExportOptions.PDFExportAllPages = False
                myReport.ExportOptions.PDFFirstPageNumber = StartPage
                myReport.ExportOptions.PDFLastPageNumber = EndPage
                myReport.Export False

                '   Make printer friendly check the PDF image
                ImageReferenceNumber = InsertImage(CoCode, FileLocation)
                ReferenceNumber = GetReferenceNumber(CoCode, EmpNo, CheckNumber, Batch)
                InsertPDFImages CoCode, EmpNo, Batch, ReferenceNumber, ImageReferenceNumber

您没有处理报表对象,导致内存泄漏

在每位员工使用

 for each employee
      myreport = new report

      //do all processing here

     myReport.dispose

  next employee

这应该可以工作

您没有处理报表对象,从而导致内存泄漏

在每位员工使用

 for each employee
      myreport = new report

      //do all processing here

     myReport.dispose

  next employee

这应该有效

它是否为每个员工生成一份报告?或者它是一个大报告它为每个员工生成一个报告。所以,如果你有1000名员工,那将是1000份PDF文档。它会为每个员工生成一份报告吗?或者它是一个大报告它为每个员工生成一个报告。所以,如果你有1000名员工,那将是1000份PDF文档。它会为每个员工生成一份报告吗?或者它是一个大报告它为每个员工生成一个报告。所以,如果你有1000名员工,那将是1000份PDF文档。很抱歉回复太晚。我不确定它是visual basic 6.0代码还是其他代码,但我无权访问myReport.dispose。在循环结束时,我们将myReport设置为Nothing。不确定这是否重要,但我们将myReport声明为全局变量。哦,对不起。我假设您使用的是vb.net。那是我的错误。检查一下你是否有myReport.关闭选项我也没有myReport.关闭选项。我的报告的数据类型是CRAXDRT.report很抱歉响应太晚。我不确定它是visual basic 6.0代码还是其他代码,但我无权访问myReport.dispose。在循环结束时,我们将myReport设置为Nothing。不确定这是否重要,但我们将myReport声明为全局变量。哦,对不起。我假设您使用的是vb.net。那是我的错误。检查一下你是否有myReport.关闭选项我也没有myReport.关闭选项。我的报告的数据类型是CRAXDRT.report很抱歉响应太晚。我不确定它是visual basic 6.0代码还是其他代码,但我无权访问myReport.dispose。在循环结束时,我们将myReport设置为Nothing。不确定这是否重要,但我们将myReport声明为全局变量。哦,对不起。我假设您使用的是vb.net。那是我的错误。检查一下你是否有myReport.关闭选项我也没有myReport.关闭选项。我的报告的数据类型是CRAXDRT.report