Crystal Reports挂起.Load事件

2020-09-05 10:34发布

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

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


嗨,

我们正在Windows环境(2008 R2)上使用CR 2011,并运行以下工作流程。

1。 我们创建了一个包含9个子报告的rpt。

2。 我们想将端口打印到特定打印机,因此在报告上设置了标志

3。 该应用程序是基于Windows的应用程序,而不是基于Web的应用程序。

4。 我们通过启动报告并在所需的打印机上进行打印来测试报告。

5。 我们有一个Windows服务,该服务执行读取报告并将其打印为pdf/打印机的代码。

6。 步骤4是基于事件的活动,每2分钟发生一次。

7。 数据库是Oracle 11g

问题:

1。 通常,所有程序运行良好,但是每天挂起一次/两次。

2。 我们已经创建了一个转储文件,并观察到挂起发生在.LOAD事件上。

3。 我们正在将.LOAD与报告名称的单个参数一起使用。

4。 我们还观察到后台打印程序服务挂起

5。 我们将在打印报告后立即处理它。

出现问题后,我们被迫启动Windows服务和打印机后台处理程序服务。

迄今为止尝试过的解决方案:

1。 更改"无打印机"标志不会产生任何结果。

2。 我们创建了一个作业,该作业在30分钟后会重新启动Windows服务和后台打印程序服务。 -这样可以最大程度地减少发生,但不能消除问题。

伪代码:

ReportDocument CR =新的ReportDocument()

CR.Load(<报告文件名);

//设置主数据源

CR.Database.Tables [0] .SetDataSource(ADODB.Recordset)

//设置子报告

CR.Subreports []。Database.Tables [0] .SetDataSource(数据表)

//此处在默认打印机或设置的打印机上打印。 (打印机是UNC打印机,但是我们会对其进行注册-它们在给定计算机上作为本地打印机可见-在打印之前在本地)

CR.PrintToPrinter(noOfCopies,false,fromPage,toPage);

CR.Close()

CR.Dispose()

如果需要,我们还可以提供rpt文件和任何其他详细信息。

我们的客户确实为此蒙受了痛苦,任何帮助将不胜感激。

谢谢

Anil

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

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


嗨,

我们正在Windows环境(2008 R2)上使用CR 2011,并运行以下工作流程。

1。 我们创建了一个包含9个子报告的rpt。

2。 我们想将端口打印到特定打印机,因此在报告上设置了标志

3。 该应用程序是基于Windows的应用程序,而不是基于Web的应用程序。

4。 我们通过启动报告并在所需的打印机上进行打印来测试报告。

5。 我们有一个Windows服务,该服务执行读取报告并将其打印为pdf/打印机的代码。

6。 步骤4是基于事件的活动,每2分钟发生一次。

7。 数据库是Oracle 11g

问题:

1。 通常,所有程序运行良好,但是每天挂起一次/两次。

2。 我们已经创建了一个转储文件,并观察到挂起发生在.LOAD事件上。

3。 我们正在将.LOAD与报告名称的单个参数一起使用。

4。 我们还观察到后台打印程序服务挂起

5。 我们将在打印报告后立即处理它。

出现问题后,我们被迫启动Windows服务和打印机后台处理程序服务。

迄今为止尝试过的解决方案:

1。 更改"无打印机"标志不会产生任何结果。

2。 我们创建了一个作业,该作业在30分钟后会重新启动Windows服务和后台打印程序服务。 -这样可以最大程度地减少发生,但不能消除问题。

伪代码:

ReportDocument CR =新的ReportDocument()

CR.Load(<报告文件名);

//设置主数据源

CR.Database.Tables [0] .SetDataSource(ADODB.Recordset)

//设置子报告

CR.Subreports []。Database.Tables [0] .SetDataSource(数据表)

//此处在默认打印机或设置的打印机上打印。 (打印机是UNC打印机,但是我们会对其进行注册-它们在给定计算机上作为本地打印机可见-在打印之前在本地)

CR.PrintToPrinter(noOfCopies,false,fromPage,toPage);

CR.Close()

CR.Dispose()

如果需要,我们还可以提供rpt文件和任何其他详细信息。

我们的客户确实为此蒙受了痛苦,任何帮助将不胜感激。

谢谢

Anil

付费偷看设置
发送
6条回答
野沐沐
1楼 · 2020-09-05 11:15.采纳回答

我相信您的测试只是证明您用尽了CPL。

重新CR服务器。 请参阅以下内容:

如何将RAS SDK .NET与进程内RAS服务器一起使用

这里也有许多示例:

业务对象/BI托管的.NET RAS SDK示例应用程序

我还建议您访问 help.sap.com Analytics知识中心)并在那里搜索可用资源。

-Ludek

Cikesha
2楼-- · 2020-09-05 11:27

更多信息..

我们没有适当的多线程或并行处理。

我们依次加载,打印和销毁报表实例。

但是,此周期每3分钟运行一次,大约有20份报告要按顺序打印。

因此,问题将是……我们如何用尽CPL?

br

Anil

路亽曱_Ryan
3楼-- · 2020-09-05 11:12

嗨Anil

几件事:

CR 2011,没有提供任何SDK,所以我不确定哪个版本 您正在使用的SDK。 检查您项目中的CR程序集,然后让我知道它们的版本。 另外,请让我知道此文件夹中crpe32.dll的版本:

C:\ Program Files(x86)\ SAP BusinessObjects \ Crystal Reports for .NET Framework 4.0 \ Common \ SAP BusinessObjects Enterprise XI 4.0 \ win32_x86

下一步:

尝试使用其他打印机驱动程序,因为它可能只是导致问题的打印机。

如果您将数据集重新用于报告 ,对它进行.close和.dispose处理(特别是如果正在对其进行修改(例如,添加/删除的行等))并不是一个坏主意。

-Ludek

加拿大全球支持中心AGS产品支持高级支持工程师

Twitter

#上关注我们 p#

嗨Ludek,

我们观察到

1。 现在,我们的许多客户安装中都出现了问题。

2。 我们已经讨论了达到打印作业数量限制的原因之一。

3。 所以我们将限制增加到500

此外,由于错误只是间歇性地发生,所以我们只是观察问题发生的背景。

然后,我们尝试在相同的上下文中加载报告并执行打印。 (独立)

所有作品。

所以问题是,如果相同的报告在给定的上下文中挂起,那么当我们稍后尝试加载并打印它时,它似乎可以正常工作。 我们已要求客户使用最新的补丁程序更新打印机驱动程序。 造成这种现象的原因可能是什么。

我们已经下载了CR 2011服务器的试用版。 一个非常基本的问题,我如何登录到BI启动板。 想要测试并查看是否可以从服务器安装中运行我们拥有的所有报告。

br

Anil

浮生未央
4楼-- · 2020-09-05 11:15

这个问题曾经解决过吗? 我遇到了同样的问题:报告偶尔会挂起。 如果我稍等片刻,并使用相同的参数运行相同的报告,则该报告将运行完毕。 我也尝试将打印机选项设置为"无打印机"。 任何帮助将不胜感激。

spaceman01
5楼-- · 2020-09-05 11:26

感谢劳拉的快速回复! 从Visual Studio运行我们的应用程序时,我仍然不明白在负载上没有出现挂起的问题。

何必丶何苦呢
6楼-- · 2020-09-05 11:30

我们面临着同样的问题。 从开发环境运行应用程序时不存在挂起(Visual Studio 2013更新5)

一周热门 更多>