FileMaker

お役立ちブログ

Loop 機能について②

こんにちは。

今回は、前回に引き続き、Loop機能についてお話しさせていただきます。

前回、Loop/End Loopとセットで、Exit Loop Ifを使うことで、どの状態になればループを終了するかを指定することも可能である、というお話をしていました。

このスクリプトを便利に活用するにあたって、ValueCount関数、GetValue関数を用いたいと思います。

(過去の記事はこちら:ValueCount関数についてGetValue関数について

先週の例と同じ主旨の構文を使用します。

変数を設定 [ $count ] (カウント数を$cntで定義)

変数を設定 [ $list ; 値 : 顧客::勤務先電話番号_list ] (勤務先電話番号の集計一覧フィールド)
変数を設定 [ $volume ; 値 : ValueCount ( $list ) ] (集計フィールドの総数) …①

  Loop

     変数を設定 [ $count ; $count +1 ]
  フィールド設定 [顧客::日中の連絡先; GetValue ( $list ; $count )] …②

 Exit Loop If [ $count ≧ $volume ]
  End Loop

①コピーしたい総数が一定ではなく毎度異なる場合、または総数を把握するのが困難な場合に、ValueCountで総数を設定することが可能です。今回は勤務先電話番号を集計フィールドにまとめている場合の例となっていますが、基本は集計フィールドでidのリストをまとめておくことが多いです。集計フィールドについては下記参考URLもご参照ください。

②ループを回していく際に,  “レコード/検索条件/ページへ移動 [次の; 最後まできたら終了: オン] “の代わりに、フィールド設定の際にGetValue関数を用いることができます。(レコードの移動はシステムが重くなるため、大量のレコードを扱う際には特に、極力使わない方が望ましいです。)

Loopのはじめで$countに+1していくことによって、$list(勤務先電話番号のリスト)からコピーする行を改行していく仕組みです。

単純な1例ではありましたが、そのほかにも様々は場面で活用できる大事な機能ですので、ぜひ扱ってみてください。

 

参考サイト   Loopについて / 集計フィールドについて

その他の記事

GetFieldについて

今回は、フィールド名を評価して、指定したフィールドの内容を返してくれる、GetFieldについてです。