Crystal Reports for Rational Application Developer ガイド

ループの安全装置(Crystal 構文)

無限ループが原因でレポート処理が停止してしまうことを防ぐための安全装置があります。式を 1 回評価する間に、最高で 100,000 回まではループ条件の評価が可能です。次の例でこれを説明します。
以下はその例です。
Local NumberVar i := 1;
While i <= 200000 Do
(
If i > {movie.STARS} Then
Exit While;
i := i + 1
);
20
{movie.STARS}が 100,000 より大きい場合、すなわち(i <= 200000)より大きくなる場合は、最大の評価回数を超えてループ条件が評価されるので、エラー メッセージが表示されます。30,000 以下の場合は、ループは可能です。

安全装置は、個々のループではなく、式単位で適用されます。以下はその例です。
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, an SAP company
http://japan.businessobjects.com/
サポート サービス
http://japan.businessobjects.com/support/
Web 上の製品マニュアル
http://support.businessobjects.com/documentation/