用户可以生成最大数量的报告导出吗?

2020-09-20 22:40发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个Windows 2012...

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

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


我有一个Windows 2012 64位服务应用程序(内置于c#VS2010中,CR引擎版本v2.0.0.50727),除其他一些任务外,该应用程序还从非结构化文件中解析文本,创建Crystal报表,然后自动保存该报表 作为PDF到磁盘。 此过程可以正常运行约12个小时,然后在调用CReport.Export()时突然开始生成错误。 错误是"对象引用未设置为对象的实例"。 如果我将服务帐户切换到其他用户,则它将再次开始工作约12个小时(可能有一定数量的导出),然后开始产生错误。 停止和启动服务没有任何作用,用户根本无法再调用导出方法。 我已经用GUI调用了相同的代码来复制了此代码。 看来用户达到了报告导出的最大数量,然后无法再导出报告。 下面是用于生成报告的代码(为简洁起见,对其进行了重新键入),非常感谢您的帮助!

对象报告=新的Reports.ExportContent();
 ReportDocument crReportDocument =(Reports.ExportContent)报告;
 crReportDocument.SetDataSource((DataTable)contentReport.Content);
 流crIn = crReportDocument.ExportToStream(ExportFormatType.PortableDocFormat); //此调用在为用户导出了一定数量后开始失败
 FileStream crOut =新的FileStream(outputinfo)
//创建一个缓冲区
//有一些数据时先写入缓冲区,然后写入文件
//关闭文件流
//一些错误捕获
//最后
 crReportDocument.Close();
 crReportDocument.Dispose();
 收集
 
3条回答
hengyuye
2020-09-20 23:30

嗨唐。 谢谢回答。 我实际上能够弄清楚发生了什么。 即使我正在关闭报告并进行处理,AppData \ Temp文件夹中仍存在.tmp文件。 每创建8个文件,就会有一个文件存在。 一旦达到65K CR左右的文件数量,就不再创建临时文件并可能会产生错误。 处理后,我添加了一些代码以从Temp文件夹中清除.tmp文件,从而达到了目的。 再次感谢!

一周热门 更多>