将.rpt导出到PDF或Excel时出现问题

2020-09-26 22:26发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在使用VS 20...

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

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


嗨,


 我正在使用VS 2015版本14更新2
 VS和运行时引擎的Crystal Reports(13.0.21.2533)
 Windows窗体应用程序。
 定位.Net Framework 4.5.2


 我在尝试可靠地在vb.net中导出Crystal报表(到pdf或xls)时遇到了一个真正的问题。
 我基于现有报告(在Visual Studio中创建)以编程方式在代码中创建一个报告。
 现有报告具有子报告(所有已验证且已确认数据源正在查看我的Visual Studio应用程序中的数据集中的数据表)。
 我独立地从SQL Server检索数据并将此数据放入表中。
 然后,我将子报表的数据源设置为带有已填充SQL数据的表。
 (不确定这是否是最好的方法,但是就创建报告而言,它可以正常工作)。
 导出后,我关闭并处理报表以及winform中的所有对象,然后关闭并处理winform本身。
 然后,我重新创建winform并尝试再次导出-此过程最多可以运行几次,但是最终出现错误。
 仅在导出功能上会出现此问题。
 我可以重复加载报告而不会出现问题(如果我不尝试导出)。
 我正在将'.export'函数用于水晶报表:

     公共子ExportToExcel()
         昏暗的日期时间
         d = LabelShiftStart.Text.Trim
         Dim s As String = d.ToString(" ddMMMyyyy_HHmm")
         尝试
             将CrExportOptions变暗为ExportOptions
             将CrDiskFileDestinationOptions设为新_
             DiskFileDestinationOptions()
             将CrFormatTypeOptions设为新的ExcelFormatOptions
             ShiftReportNameAndPathExcel =" C:\ iLine Reports \ Report_"&s.Trim&" .xls"
             CrDiskFileDestinationOptions.DiskFileName =
                                             " C:\ iLine报告\ Report_"和s.Trim和" .xls"
             CrExportOptions = objRpt.ExportOptions
             使用CrExportOptions
                 .ExportDestinationType = ExportDestinationType.DiskFile
                 .ExportFormatType = ExportFormatType.Excel
                 .DestinationOptions = CrDiskFileDestinationOptions
                 .FormatOptions = CrFormatTypeOptions
             结束于
             '如果文件已经存在,请先检查
             如果不是File.Exists(ShiftReportNameAndPathExcel),则'仅在文件名不存在的情况下导出
                 objRpt.Export()
             万一
         异常捕获
             TraceUpdate(TimeOfDay.Now.ToString(" dd/MMM/yy HH:mm:ss:fff")&"无法导出到Excel。"&ex.ToString.Trim)
         结束尝试
     结束子
 首次导出始终有效。 但随后的(有时是第二个或更晚)导致了以下错误:
 16/Sep/17 20:59:26:046SHIFT报告无法导出到pdf.CrystalDecisions.CrystalReports.Engine.DataSourceException:文件CrystalReportShift 4312_4644_ {0DFEA3E2-2AC7-4E57-AC88-FE9A3A722F51} .rpt中的错误:
 找不到表格。  ---> System.Runtime.InteropServices.COMException:文件CrystalReportShift 4312_4644_ {0DFEA3E2-2AC7-4E57-AC88-FE9A3A722F51} .rpt中的错误:
 找不到表格。
    在CrystalDecisions.ReportAppServer.Controllers.ReportSourceClass.Export(ExportOptions pExportOptions,RequestContext pRequestContext)
    在CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext)处
    ---内部异常堆栈跟踪的结尾---
    在CrystalDecisions.ReportAppServer.ConvertDotNetToErom.ThrowDotNetException(Exception e)
    在CrystalDecisions.ReportSource.EromReportSourceBase.ExportToStream(ExportRequestContext reqContext)处
    在CrystalDecisions.CrystalReports.Engine.FormatEngine.ExportToStream(ExportRequestContext reqContext)处
    在CrystalDecisions.CrystalReports.Engine.FormatEngine.Export(ExportRequestContext reqContext)处
    在CrystalDecisions.CrystalReports.Engine.FormatEngine.Export()
    在CrystalDecisions.CrystalReports.Engine.ReportDocument.Export()
    在 ?。?()
 当应用程序崩溃时,VS在输出屏幕中记录以下内容:
 IlineSQLEngine.exe中的0x5D6ABCCF(clr.dll)引发异常:0xC0000005:访问冲突读取位置0x00000000。
 公共语言运行时无法在此异常处停止。 常见原因包括:错误的COM互操作编组和内存损坏。 要进一步调查,请使用仅本机调试。
 在未知模块中发生了类型为'System.ExecutionEngineException'的未处理异常。
 每次我用相同的数据执行相同的代码时,我不知道为什么它不起作用?
 从本质上讲,我的代码的逻辑看起来不错,但是由于随后的尝试导出,某种原因导致它崩溃。
 我已经花了几天时间,而且遇到了严重困扰,因此我们将不胜感激。
 问候,


 凯文

 ps。 我已经记录了该问题,但是经过彻底搜索后,找不到原始问题(我的帐户中也没有链接)-很抱歉,如果出现两次。

 p.p.s. 抱歉,格式化-我似乎无法在不创建新问题的情况下更正格式。 如果太难读了,请告诉我,我将删除并重新创建问题。