FileMakerグローバルフィールドで日付フィルタ実装術
基礎知識

FileMakerグローバルフィールドで日付フィルタ実装術

2026年4月8日 admin 基礎知識

FileMakerで「特定の日付だけを絞り込みたい」「期間を指定して検索したい」と思ったことはないでしょうか。毎回検索条件を打ち直したり、スクリプトを切り替えたりするのは意外と手間です。そんなときに便利なのが「グローバルフィールド」を使った日付フィルタです。画面上の入力欄に日付を入れるだけで、ボタンひとつで絞り込みできる仕組みを作ることができます。

グローバルフィールドで何が便利になるのか

グローバルフィールドは「どのレコードを表示しても同じ値が入っている」特殊なフィールドです。
この性質を利用すると、検索条件を一時的に入れておく“入力ボックス”として使うことができます。

例えば、

  • 指定日の売上データだけを見る
  • 「開始日」と「終了日」を入力して、期間内のレコードを表示する
  • 今日・今月・先月など、よく使う日付条件をボタンで呼び出す

といった日付フィルタを、レイアウト上のシンプルな入力欄とボタンだけで実現できます。テーブルの構造を大きく変える必要もありません。

グローバル日付フィールドを用意する

まずは、フィルタ条件を入れるためのグローバルフィールドを用意します。ここでは例として「売上」テーブルを想定します。

  1. 管理メニューから「データベース」を開き、「フィールド」タブで売上テーブルを選択
  2. フィールド名「g_開始日」「g_終了日」を作成(タイプは日付)
  3. オプションで「グローバルストレージ(すべてのレコードで1つの値を共有)」にチェック

これで、どのレコードを表示しても、g_開始日とg_終了日に同じ値が入るようになります。あくまで「検索条件入力用の箱」として使うイメージです。

レイアウトに入力欄とボタンを配置する

次に、実際にユーザーが操作するレイアウトに、グローバルフィールドを配置します。

  1. レイアウトモードに切り替える
  2. フィールドツールから「g_開始日」「g_終了日」をヘッダやサイドバーなど見やすい位置に配置
  3. わかりやすいラベル(例:「開始日」「終了日」)を付ける
  4. 近くに「日付で絞り込み」ボタンを配置する

ここまでで、見た目は「日付を2つ入力して、ボタンを押すだけ」の簡単なフィルタ画面が整いました。次は、このボタンに日付フィルタのスクリプトを割り当てます。

スクリプトで期間フィルタを実行する

日付フィルタの基本的な流れは次のとおりです。

  1. 現在のレイアウトを表示したまま検索モードに切り替える
  2. 売上日フィールドに、開始日~終了日の範囲指定を入力する
  3. 検索を実行する

FileMakerのスクリプトで書くと、イメージは以下のようになります(実際のフィールド名は環境に合わせてください)。

新規スクリプト:日付で絞り込み

# エラートラップ開始
エラー捕捉 [オン]

# 検索モードに切り替え
検索モードに切り替え [一時停止しない]

# 期間指定の計算(開始日と終了日が両方入力されている場合)
If [ not IsEmpty ( g_開始日 ) and not IsEmpty ( g_終了日 ) ]
    設定フィールド [ 売上::売上日 ;
        g_開始日 & "..." & g_終了日 ]
Else If [ not IsEmpty ( g_開始日 ) ]
    # 開始日のみ → その日以降
    設定フィールド [ 売上::売上日 ; ">=" & g_開始日 ]
Else If [ not IsEmpty ( g_終了日 ) ]
    # 終了日のみ → その日以前
    設定フィールド [ 売上::売上日 ; "<=" & g_終了日 ]
Else
    # どちらも空なら全件表示(検索せずに終了)
    省略
End If

# 検索実行
検索実行 []

# エラーがあればメッセージ表示(該当なし等)
If [ Get ( 最後のエラー ) ≠ 0 ]
    カスタムダイアログを表示 [ "該当データがありません" ]
End If

エラー捕捉 [オフ]

このスクリプトを「日付で絞り込み」ボタンに割り当てれば、グローバルフィールドに入力した日付で簡単にフィルタできるようになります。

よく使う日付条件をボタン化する

毎回日付を入力するのが面倒な場合は、「今日」「今月」「先月」といったボタンを用意し、そのボタンを押すとグローバルフィールドに自動で日付が入るようにすると便利です。

例:今日のデータを表示するボタンでは、次のようなスクリプトを組みます。

設定フィールド [ g_開始日 ; Get ( 日付 ) ]
設定フィールド [ g_終了日 ; Get ( 日付 ) ]
スクリプト実行 [ 「日付で絞り込み」 ]

「今月」の場合は、月初と月末の日付を計算して g_開始日 / g_終了日にセットすればOKです。このように、グローバルフィールドを“受け皿”として使うことで、さまざまな日付パターンに柔軟に対応できます。

グローバルフィールド日付フィルタ導入のポイント

最後に、運用時に意識しておきたいポイントをまとめます。

  • グローバルフィールドは「ユーザーごと」に値が保持されるため、複数人で使う環境でも混線しにくい
  • 「検索条件をクリア」ボタンを用意して、g_開始日 / g_終了日を空にするスクリプトも作っておくと親切
  • 日付の入力ミスを減らすために、カレンダー形式の入力(ドロップダウンカレンダー)を使うと安心
  • 実運用前に、該当件数や検索結果が想定どおりか必ずテストする

グローバルフィールドをうまく使えば、FileMakerの検索機能をぐっと使いやすくできます。まずはシンプルな「開始日~終了日フィルタ」から導入して、慣れてきたら「今日」「今月」「先月」などのボタンも追加してみてください。

※ 本稿は、生成AIを使用して執筆しています。重要な内容については、必ずご自身でマニュアル等をご確認ください。