Loop 構造の例
[Loop]、[Exit Loop If]、および [End Loop] スクリプトステップは、スクリプトステップを繰り返すことができるようにする構造を定義します。[Loop] と [End Loop] の間に挟まれたスクリプトステップは、[Exit Loop If] の条件が満たされるまで、または [レコード/検索条件/ページへ移動] スクリプトステップや [ポータルへ移動] スクリプトステップの [最後まできたら終了] の条件が満たされるまで繰り返されます。
[Exit Loop If] スクリプトステップを使用して、評価する計算式を指定します。計算結果が0でない場合には、この式は真(True)であると評価され、ループが終了します。計算結果が0になった場合は、この式は偽(False)であると評価され、ループは繰り返し実行されます。
[Exit Loop If] の例
フィールド設定 [売上::カウント = 0]
Loop
Exit Loop If [売上::カウント = 25]
フィールド設定 [売上::カウント; 売上::カウント + 1]
スクリプト実行 [「ボーナス」]
End Loop
上の例では、最初のステップでループに使用するフィールドを「カウント」というフィールドに設定し、計算式で評価しています。[Loop] と [End Loop] は、ループ構造を決めるためのスクリプトステップです。どちらも省略することはできません。
「Exit Loop If」スクリプトステップは、FileMaker Pro に対し、「カウント」フィールドの値が 25 になったらループ内のそれぞれのステップの実行を終了するように指示しています。 次の「フィールド設定」スクリプトステップでは、[フィールド設定] が実行されるたびに「カウント」フィールドの値に1が加えられています。[スクリプト実行] スクリプトステップには、ループ構造が終了するまで実行するスクリプトを指定します。「カウント」の値が 25 になったら、ループを終了し、[End Loop] スクリプトステップの次にステップがあれば、制御がそのステップに移ります。
[最後まできたら終了] の例
レコード / 検索条件 / ページへ移動 [最初の]
Loop
フィールド設定 [従業員::給与; 従業員::給与 * 1.1]
レコード/検索条件/ページへ移動 [次の; 最後まできたら終了]
End Loop
上の例では、最初のステップによって、ファイル内の最初のレコードに移動します。[Loop] と [End Loop] は、ループ構造を決めるためのスクリプトステップです。[フィールド設定] スクリプトステップでは、「給与」フィールドの値を 10% 増加させるという処理が行われます。[レコード/検索条件/ページへ移動] スクリプトステップにより、ファイル内の次のレコードに移動します。ファイル内の最後のレコードが検索されるまで、[フィールドの設定] や [レコード/検索条件/ページへ移動] ステップが繰り返し実行されます。[レコード/検索条件/ページへ移動] スクリプトステップには [最後まできたら終了] オプションが指定されているため、最後のレコードの処理が終了すると、ループも終了します。