FileMakerポータル並べ替えボタン実装の基本
基礎知識

FileMakerポータル並べ替えボタン実装の基本

2026年6月3日 admin 基礎知識

FileMakerでポータルを使っていると、「行を並べ替えるボタンを付けたい」「ユーザーにとって見やすい順番で表示したい」と感じることが多いと思います。ですが実際にやろうとすると、どこを触ればよいのか分かりにくく、スクリプトも必要そうで尻込みしてしまう方も少なくありません。

この記事では、FileMakerのポータルに「並べ替えボタン」を実装するための基本的な考え方と、具体的な操作手順をやさしい表現で解説します。まずは「一方向のソートボタン」を作り、その後「昇順・降順を切り替えるボタン」に発展させる流れで見ていきます。

ポータル並べ替えの基本的な考え方

ポータルに表示される行は、「関連レコードの並び順」によって決まります。この並び順を変えるのが「並べ替え」です。基本的に並べ替えには次の2つのやり方があります。

  • リレーションシップの「並び替え設定」を使う
  • スクリプトで関連レコードを並べ替える

ポータルにクリックできるボタンを置いて、ユーザーが自由にソート順を変えられるようにしたい場合は、スクリプトを使う方法が分かりやすく、応用も効きます。この記事では、この「スクリプトで並べ替える」方法を前提に説明します。

前提となるレイアウトとポータルの準備

まずは、次のような構成を前提にします。

  • 親テーブル:請求書(Invoices)
  • 子テーブル:請求明細(InvoiceLines)
  • 請求書レイアウトに、請求明細のポータルを配置

ポータル内には、例えば「商品名」「数量」「単価」「金額」といったフィールドを表示している状態を想定します。この「商品名で並べ替え」や「金額の高い順で並べ替え」ボタンを作っていく流れです。

ステップ1:ポータル用の並べ替えスクリプトを作る

まずは、シンプルに「特定の1つのフィールドで昇順に並べ替える」スクリプトを作成します。

  1. メニューの「スクリプト」→「スクリプトワークスペース」を開く
  2. 新規スクリプトを作成し、名前を「ポータル並べ替え(商品名昇順)」など分かりやすく付ける
  3. スクリプトステップに「関連レコードの並べ替え」を追加する
  4. 「指定…」をクリックし、ターゲットにポータルが参照している関連テーブル(例:請求明細)を指定する(必要に応じて「現在のレイアウト上の関連レコードのみ」を選択)
  5. 「並べ替え順」の設定で「商品名」フィールドを昇順に設定する
  6. 最後に「ポータルを更新」や「ウインドウ内容を再表示」を入れて表示をリフレッシュしておくと安心

ポイントは、「どのテーブルのレコードを並べ替えるのか」と「どのフィールドで並べ替えるのか」をきちんと指定することです。ここまでできれば、あとはこのスクリプトを呼び出すボタンをポータル付近に置くだけです。

ステップ2:ポータルヘッダーに並べ替えボタンを配置

次に、ポータルの上部(ヘッダー部分)に並べ替えボタンを配置します。見た目としては、「列見出し自体をクリックすると並べ替わる」ように作ると、表計算ソフトに近い使い心地になります。

  1. レイアウトモードに切り替える
  2. ポータルの一番上の行(ヘッダー部分)にテキストオブジェクトを配置し、「商品名▲」などと入力する
  3. そのテキストオブジェクトを選択し、「ボタンとして設定」または「ボタンバー」として設定する
  4. 先ほど作成したスクリプト「ポータル並べ替え(商品名昇順)」を割り当てる
  5. ブラウズモードに戻り、ボタンをクリックして並び順が変わるか確認する

これで、商品名の昇順に並べ替える簡単なソートボタンが実装できます。まずは一つ作って、正しく動作するかを確認してから、他の列にも応用していくとスムーズです。

ステップ3:昇順・降順を切り替えるボタンに発展させる

次のステップとして、「同じボタンをクリックするたびに、昇順⇔降順が切り替わる」形にしてみましょう。この場合は、並び順を覚えておくためのフィールドや変数を用意する必要があります。

並び順を記録するためのフィールドを用意

  • 親テーブル(請求書)に、グローバルフィールドを1つ追加します。例:「g_並べ替え状態」
  • このフィールドに、「product_asc」「product_desc」など、現在の状態を文字で保存するイメージです。

スクリプトで状態に応じて並べ替え

「商品名の並べ替えスクリプト」を少し発展させて、以下のような流れにします。

  1. フィールド g_並べ替え状態 の内容を確認する
  2. もし「product_asc」なら、商品名を「降順」で並べ替え、g_並べ替え状態 を「product_desc」に変更
  3. もし「product_desc」または空欄なら、商品名を「昇順」で並べ替え、g_並べ替え状態 を「product_asc」に変更
  4. 最後に「ポータルを更新」や「ウインドウ内容を再表示」で画面をリフレッシュ

これにより、同じボタンをクリックするたびに、昇順と降順が切り替わるようになります。見た目としては、テキストオブジェクトに「商品名▲」や「商品名▼」などと表示し、状態に合わせて表示内容を切り替える方法もあります。

複数の並べ替え条件を用意するコツ

実務では、「商品名順」「金額の高い順」「行番号順」など、いくつかのソートパターンを用意したくなることが多いです。基本的な考え方は同じですが、次のように整理しておくと管理しやすくなります。

  • 並べ替え種類ごとに、スクリプトを分ける(例:ポータル並べ替え_商品名、ポータル並べ替え_金額 など)
  • 共通する処理(ポータル更新やエラーチェック)は、「サブスクリプト」にまとめる
  • フィールド名やスクリプト名に、どのテーブルの、どの列かが分かる名前を付ける

最初から複雑にしすぎず、「まずは1列だけ」「次に昇順・降順」「最後に列を増やす」という順番で段階的に作っていくのがポイントです。

まとめ:シンプルな仕組みから段階的に

ポータルの並べ替えボタンは、FileMakerの画面を使いやすくするうえで非常に効果的な工夫です。しかし、一度に多機能なものを作ろうとすると、スクリプトやリレーションの設定が複雑に感じられて挫折しがちです。

まずは、

  • 「1つの列を昇順で並べ替えるだけ」のスクリプトを作る
  • そのスクリプトをポータルのヘッダーにボタンとして配置する
  • 慣れてきたら、昇順・降順の切り替えや、他の列への応用にチャレンジする

という流れで、少しずつ機能を増やしていくと理解しやすく、トラブルも少なくなります。この記事を参考に、自分のファイルに合った「見やすくて操作しやすいポータルレイアウト」を作ってみてください。

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