FileMaker

お役立ちブログ

Loop 機能について②

こんにちは。

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

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

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

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

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

こんにちは。

今回は、前回に引き続き、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について / 集計フィールドについて

その他の記事

ValueCount について

ValueCount関数は、GetValue関数と同じく、改行で区切られたテキスト値の一覧を適切な形で返してくれる関数で、テキスト値の合計数を返してくれます。

Substitute について

Substitute関数とは、指定したテキスト内にある文字や記号を、特定のテキストに置き換えることができるという関数です。