Crystal Reports for Rational Application Developer 设计员指南

循环的安全机制(Crystal 语法)

有一个安全机制可以防止因无限循环问题而出现报表处理停顿的情况。在任何一个公式中,每个公式求值最多有 100,000 次循环条件求值。下例将解释这个安全机制。
例如:
Local NumberVar i := 1;
While i <= 200000 Do
(
If i > {movie.STARS} Then
Exit While;
i := i + 1
);
20
如果 {电影.明星} 大于 100,000,则循环条件 (i <= 200000) 的求值次数多于最大次数,就会显示错误信息。否则循环没有问题。

注意: 安全机制是基于每个公式运行的,并非对每个循环都适用。例如:
Local NumberVar i := 1;
For i := 1 To 40000 Do
(
Sin (i);
);
i := 1;
While i <= 70000 Do
(
i := i + 1;
)
上述公式也会触发安全机制,因为 100,000 是指公式中的循环条件求值总数,而该公式将有 40001 + 70001 次这样的求值。



Business Objects,SAP 子公司
http://www.china.businessobjects.com/
支持服务
http://www.china.businessobjects.com/support/
Web 上的产品文档
http://support.businessobjects.com/documentation/