Crystal Reports Designer  

避免無限迴圈 (Crystal 語法)

迴圈有一個安全機制,可以防止處理報表時因為無限迴圈而導致停止。任何公式的驗算,每次最多可以驗算迴圈條件 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) 的次數將會超過最大次數,就會產生錯誤訊息。否則的話,這個迴圈就沒有問題。

注意   這個安全機制僅限用於每個公式內,並不適用於個別迴圈。例如:
Local NumberVar i := 1;
For i := 1 To 40000 Do
(
   Sin (i);
);
While i <= 70000 Do
(
   i := i + 1;
)

以上這個公式也會觸發安全機制,因為 100,000 是指公式中迴圈條件驗算的總次數,而這個公式將會驗算 40001 + 70001 次。

請參閱

For 迴圈 | While 迴圈