FileMaker

お役立ちブログ

Loop 機能について②

こんにちは。

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

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

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

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

先週の例と同じ主旨の構文を使用します。
極論、このスクリプトに関してはこのように複雑化する必要はないのですが、置き換えてイメージしてみるためにご活用いただけると幸いです。

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

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

  Loop

変数を設定 [ $count ; $count +1 ]
フィールド設定 [顧客::日中の連絡先; GetValue ( $list ; $count )] …②
レコード/検索条件/ページへ移動 [次の; 最後まできたら終了: オフ]

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

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

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

※レコードの移動はシステムが重くなるため、大量のレコードを扱う際には特に、極力使わない方が望ましいです。打開策はセレコネの考え方を使うことになり少し高度になるので、今回は割愛させていただきます…

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

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

その他の記事