|
发表于 2023-1-31 18:25:28
|
显示全部楼层
四川省眉山市
从技术角度来看,此对话框由“Windows脚本控件”打开,该控件用于从Forms Printer运行“Vbscript”代码。Forms
Printer使用Vbsscript操作Crystal Reports COM API,以请求Crystal Engine打印报告。
如果Crystal Engine打印过程花费的时间超过Windows脚本控件的默认超时时间(我认为10秒是正常的脚本控件超时时
间),则会出现此对话框。
对话框的出现不应降低报告运行的速度,而是报告运行的缓慢导致对话框出现。
您可以更改此对话框出现时的默认超时,这样您就永远不会看到对话框,但请注意,进行此更改本身不会加快报告速
度。
请参阅下面的注释-(特别是确保您的报告是“通用”的-即,使用运行时不存在的DSN名称设计,请参阅下面*[]注释
)
解决方案
注1:“脚本超时消息”信息
如果打印报告时出现“脚本超时”对话框(脚本比正常时间更长…中止或继续),
脚本超时通常出于以下原因:
-返回/执行的数据量非常大,或者SQL查询效率不高(应使用Microsoft SQL Profiler分析并可能优化报表执行的SQL
查询)
-根据Forms Printer文档第36页,该报告并非真正的“通用”报告(根据您的Crystal版本,程序有所不同)。
(如果实际使用Crystal 8.5引擎,通常不会出现问题,如果Dlls位于c:\Program Files\Common Files\Crystal
Decisions或c:\Program Files\Common Files\Business objects中,则可能使用较新的Crystal运行时)
(请注意,升级时,您应始终确保报告已根据当前Great Plains数据库进行了验证,因为Crystal可能会因尝试适应升
级导致的数据库/表更改而变慢。)
-正在运行的Crystal报告的设计方式可能会导致其执行速度太慢。看看这份报告,
看看它的设计是否有改进的可能。提高性能的更改示例包括:可以更改为内部的左外部联接、删除不需要的表等
为了避免出现“脚本执行时间超过预期”对话框,可以在安装时增加脚本超时(默认值为10秒)。通过添加以下
dex.ini设置(仅当您的Forms Printer 8.0版本为22或更高版本时有效),可以为特定工作站完成此操作。(此选项
仅禁止对话框,不会加快报告速度。)
示例将dex.ini设置添加或修改为:
ASIFPVBSTIMEOUT=-1(即负1)
将完全禁用VBScript脚本控制超时。
ASIFPVBSTIMEOUT=10000
将其设置为默认值10000毫秒(10秒)。(例如,您可能希望将其设置为30000)
*[(以下注释,通常仅针对Crystal 9.0或更高版本的运行时引擎。)]
如果您发现在一批中从表单打印机打印的
Crystal报表在打印每个连续报表时(在一批或一组发票/报表的表单打印机“交付”期间)花费的时间要长得多,那
么我们发现有一件事有时会影响报表的启动时间,即打印的第一个报表“快”,而每个连续报表都会得到很多较慢-如
果这是您所看到的行为的特征,那么检查以确保Crystal Reports已设计为“Generic”是非常重要的,因为它们是使
用ODBC DSN名称设计的,该名称在客户端计算机上的报表运行时不存在。
我们发现,在少数情况下,如果您在Crystal Reports应用程序中打开报表并使用“设置数据源位置”为报表(以及任
何子报表)设置ODBC DSN,则报表的连续打印将运行得更快(不会降级),到最终打印报告时工作站上不存在的DSN(
请参阅Great Plains Application文件夹中的表单打印机文档FPDOCNN.pdf)附录1描述了将报告的DSN设置为临时DSN
,然后删除该Odbc DSN,以确保其不会存在于打印报告的任何计算机上。(此方法适用于Crystal 9及更高版本)-如
果在报表运行时不存在DSN,则允许表单打印机代码回退到Great Plains Connection参数,因为未知原因,在某些情
况下,该参数可以提高性能(在多个打印上的性能不会降低)。
我们发现,在涉及Crystal 9或更高版本组件的几个案例中,此过程提高了报告的性能,请让我们知道它是否适用于您
。(但请注意,这并不是缓慢执行受其报表生成的SQL查询约束的报表的“万全之策”,因此在执行此步骤后,如果报
表仍然缓慢,则应使用Microsoft SQL配置文件查看它正在执行的SQL查询,并尝试在SQL Server上或通过更改报表设
计来优化该报表。) |
|