第106回 表示されているレコード毎の値を設定する

おはようございます。こんにちは。こんばんわ。
エヌ・ケイ・カスタマイズの 泉 です。

久しぶりに鹿児島本店に来ております。
今週は不安定な天気で雨が降ったりやんだりしております。
しかし、今週末の土曜日は、弊社の特別な日(詳しくはこちら)!!
晴れ男、晴れ女を総動員して「晴れ」にしてみせます!!

それでは、さっそくFileMakerのテクニックについて勉強していきましょう!!

解説に入る前に。。。

解説に入る前に、本ブログのタイトルなんですが、FileMakerがまだまだ骨身に染みていない私は、意味が理解できずに数秒固まりました。

私なりに解釈した結果

レイアウト(主にリスト形式)に表示されているレコード毎のフィールドの値を設定する』

さらに、FileMakerでは、「レイアウトに表示されているレコード」→「対象レコード」として、メニュー表示やスクリプトステップで使用されていますので

対象レコード毎のフィールドの値を設定する』

さらにさらに、これから説明するテクニックは、対象レコード全てに同じ値を設定する「一括処理」のではなく、対象レコードを順を追って条件に沿った値を設定する「逐次処理」なので

逐次処理で対象レコード毎のフィールドの値を設定する』

が、私的にはしっくり来るのですが、タイトルを変える勇気はないので、このまま進めたいと思います。

表示されているレコード毎の値を設定する

対象レコード毎に、条件に応じた異なる値を設定します。

対象レコードのすべてに処理を行うには、いくつかの方法がありますが、ここでは [Loop] スクリプトステップを使って、対象レコードの最初のレコードから最後のレコードまで処理します。

今回のサンプルでは、『複数の担当者を奇数グループと偶数グループに振り分ける』という処理を想定します。

実装

テーブルには[担当者]と[チーム]というフィールドを作成します。

レイアウトはリスト形式で作成し、[担当者]と[チーム]、さらに「レコード番号」を配置します。
「レコード番号」は[挿入] メニューから[レコード番号]を選択すると、レイアウト上に「{{レコード番号}}」のラベルが配置されるので、適当な場所に移動します。

スクリプト「チーム振り分け」の内容は以下の通りです。

  • 1行目:[レコード/検索条件/ページへ移動] スクリプトステップを挿入します。移動先を[ 最初の]に設定して必ず 1 レコード目から順番に実行されるようにします。
  • 2行目:[Loop] スクリプトステップを挿入します。自動的に [End Loop] が挿入されます。
  • 3〜7行目:条件に応じた値を設定するために [Loop] と [End Loop] の間に [If] スクリプトステップを挿入します。[End If] が自動的に挿入されます。条件式が成立した場合のみ [If] から [End If] までの処理が実行されます。
  • 3行目:[If] スクリプトステップの条件式を指定します。Mod 関数と Get ( レコード番号 ) 関数を使用してレコード番号が偶数か否か判定します。レコード番号を[ 2] で除算した結果が[ 0] ならば条件式が成立して偶数と判定します。
  • 5行目:条件式が成立しない場合の処理を作成するために [Else] スクリプトステップを挿入します。[If] が成立しない場合は [Else] から [End If] までの処理が実行されるようになります。
  • 4、6行目:[If] と [Else] の後にそれぞれ [フィールド設定] スクリプトステップを挿入します。レコード番号が「偶数」ならば[ 偶数]、そうでなければ[ 奇数] がフィールド値として設定されるようにします。
  • 8行目:[レコード/検索条件/ページへ移動] スクリプトステップを使用して、対象レコードの最後のレコードまで[Loop] から [End Loop] の間の処理が繰り返し実行されるようにします。移動先を[ 次の] に設定すると [最後まできたら終了] オプションが表示されるので、最後のレコードで [Loop] から抜けるように設定します。

実行

スクリプト「チーム振り分け」を実行した結果は以下の通りです。

さいごに

いかがだったでしょうか?

私の実績としては、「リスト形式の対象レコード」を逐次処理することはありませんが、「ポータルのレコード」を逐次処理や一括処理することは多々あります。

請求書の「明細」のような、対象レコードに紐付く関連テーブルに対して逐次処理や一括処理するケースです。

「ループによる逐次処理」は、複雑なFileMakerのシステムを構築しようとすると、必ず実装されるといっても過言ではない処理だと思っています。
慣れるまで、理解するまでには時間がかかるかもしれませんが、一度実装するとイメージしやすいので、試してみてください。

それでは、次回のブログもお楽しみに!!

参考文献:Claris FileMaker 公式トレーニング教材 から、「FileMaker 関数・スクリプトガイド」 等を参考にしています
https://content.claris.com/fmb19_reg-ja