No.306 一覧画面に検索フィルタを追加する方法(日付範囲・値一覧) | Claris FileMaker 10分でスキルアップ
▶ 動画を見る 📁 サンプルファイル

AI による要約

この動画では、FileMaker の一覧画面で複数の条件を指定して検索できる仕組みの作り方を解説しています。

通常の検索モードを使わずに、グローバルフィールドを検索窓として活用するのがポイントです。グローバルフィールドとは、グローバル格納が定義されたフィールドのことで、テーブル単位でデータを保持する特性があります。この特性により、非関連テーブルのフィールドでもレイアウト上で入力が可能になります。

テーブル構成は「作業管理」「都道府県マスタ」「グローバル」の 3 つです。グローバルテーブルには g_開始日・g_終了日・g_ステータス・g_県名という検索用のグローバルフィールドを用意します。

検索の仕組みは次のとおりです。まずグローバルフィールドの値を変数に保存し、検索モードに切り替えます。日付の検索は開始日・終了日の入力状況に応じて、以降・以前・範囲指定と 3 パターンに分岐して処理します。ステータスと都道府県も同様にフィールドへ検索条件を設定してから検索を実行します。検索結果が 0 件のときはカスタムダイアログでメッセージを表示し、最後に作業日の昇順でソートをかけます。

検索解除のスクリプトでは、グローバルフィールドの値をすべて空にしてから全レコードを表示し、ソートをかけます。

この方法を使うと、ドロップダウンリストやカレンダーで条件を選ぶだけで絞り込みができる、業務アプリらしい一覧画面を作ることができます。

機能

  • ・グローバルフィールド グローバル格納が定義されたフィールド。テーブル単位でデータを保持し、非関連テーブルのレイアウト上でも入力可能な特性を利用して検索窓として使用します。

スクリプト・スクリプトトリガ

  • ・フィールド設定 検索モード時に作業日・ステータス・作業住所へ検索条件を設定したり、グローバルフィールドの値を空にするために使用します。
  • ・カスタムダイアログを表示 検索結果が 0 件のときに「対象結果がありません」というメッセージを表示します。
  • ・レコードのソート 検索実行後および検索解除後に、作業日の昇順でレコードをソートします。

関数

  • ・IsEmpty 開始日または終了日のグローバルフィールドが空かどうかを判定し、検索条件の分岐に使用します。
  • ・Get ( 対象レコード数 ) 検索実行後の対象レコード数が 0 件かどうかを判定し、カスタムダイアログ表示の条件として使用します。

字幕