FileMaker
お役立ちブログ
Loop 機能について
こんにちは。
前回まで、Googleブログにて投稿をさせていただいておりました記事について、今週から当社ホームページにて投稿を行うことにいたしました。
FileMakerにまつわる、便利な関数や機能について、ご紹介をさせていただきます!
FileMakerヘルプサイトに掲載されている例がこちらです。
例 1
すべてのレコードで [顧客::勤務先電話番号] の内容を [顧客::日中の連絡先] にコピーします。
レコード/検索条件/ページへ移動 [最初の]
Loop
フィールド設定 [顧客::日中の連絡先; 顧客::勤務先電話番号]
レコード/検索条件/ページへ移動 [次の; 最後まできたら終了: オン]
End Loop
例 2
レコードをループして、オブジェクトフィールド内のファイルをエクスポートします。
変数を設定 [$パス; 値: Get (ドキュメントパス) & 製品::オブジェクト]
レコード/検索条件/ページへ移動 [最初の]
Loop
フィールド内容のエクスポート [製品::オブジェクト; 「$パス」 ; フォルダを作成: オフ]
レコード/検索条件/ページへ移動 [次の; 最後まできたら終了: オン]
End Loop
例にあるように、対象のレコード項目に対して、追加・変更・エクスポートなど編集を一括で加えることができます。
LoopとEnd Loopがセットとなっており、その間に連続で実行したいスクリプトを記述します。
これだけだと全てのレコードに対してが対象となりますが、Exit Loop Ifを使って、どの状態になればループを終了するかを指定することも可能です。
例えば、例1において、1〜10のレコードだけをコピーしたい、という時は、
何ループ目かをカウントする変数を$count、コピーしたい総数を$volume = 10 とし、下記のようにループ処理を行います。
レコード/検索条件/ページへ移動 [最初の]
Loop
変数を設定 [ $count ; $count +1 ]
フィールド設定 [顧客::日中の連絡先; 顧客::勤務先電話番号]
レコード/検索条件/ページへ移動 [次の; 最後まできたら終了: オン]
Exit Loop If [ $count ≧ $volume ]
End Loop
Exit Loop If で、$countが$volumeの10以上になればループ終了、となります。
この、Exit Loopを活用する際に、前回・前々回にご紹介したGetValue関数やValueCount関数を活用することができます。
その活用方法について、また来週お話しさせていただきます。
FileMaker開発記事
受発注システム [EC-CUBE連携]
受発注業務をEC-CUBEと連携する事により、顧客情報と受注情報それぞれの入力を自動化。その後の各種事務手続(伝票作成・郵送業務・売上レポート作成等)すべても同時に効率化するツールです。
その他の記事
ValueCount について
ValueCount関数は、GetValue関数と同じく、改行で区切られたテキスト値の一覧を適切な形で返してくれる関数で、テキスト値の合計数を返してくれます。