FileMaker(ファイルメーカー)において、ソートは基本中の基本で、よく使われる機能です。ソートは、表示されているレコード(対象レコード)を特定の基準によって並び替えを行うものです。
ただし、このソート、気を付けておくべきことがいくつかあります。
ソートした後の作法
FileMakerには、「現在のレコード」というものがあります。
リスト形式(複数のレコードが一画面に表示される形式)で、複数のレコードが対象レコードの場合、今どのレコードがアクティブ(選択)されているかは非常に重要な問題になります。
FileMakerでは、何をするにも、この現在のレコードを基準に行われるので、今どこにいるかで、スクリプトなどの挙動が変わってきます。
ソートも同じです。ソートを行うと、「現在のレコード」はそのままで、レコードの順番が入れ替わるので、対象レコード数や現在のレコード」の位置によって、見えている画面の状態が変化します。
また、ソートというのは大概、値が最も小さいか、大きいものを知りたい、見たいから並び替えるケースがほとんどです。例えば、売上を多い順に並び替える、少ない順に並び替えるのは、今後の営業で何をするべきかを考えるためにソートを行います。
例えば、ソートをする前に、売上が真ん中くらいのレコードが現在のレコードであるとします。ソートを行ってもそのレコードは真ん中付近ですから、対象レコードが多いと、一番売上の多いレコードが見えないケースがあります。
この時に大事なのは、ソートでは、一緒に「レコード/検索条件/ページへ移動」のステップを使い、現在のレコードを一番上のレコードにしてあげる必要があります。
対象レコード数が多いと遅くなる
ソートは当然のことながら、並びかえを行うレコード数が多ければ多いほど遅くなります。
ユーザーが検索条件を指定して検索して、ソートを行う場合、対象レコード数がどれくらいになるのか想像がつかないこともあります。
そういった場合には、検索実行後に対象レコード数を調べて、その数に応じてソートを行う場合と行わない場合を分けるのがいいのではないでしょうか。
ソートが遅くなる条件
最後に、ソートが遅くなりがちな条件を挙げていきます。こういったものが含まれる場合は、ソートをしないか、原因を排除していく必要があります。
- FileMaker Server、Cloudのスペック不足
- 計算フィールド(非保存)がレイアウトに含まれる
- 対象レコード数が多すぎる
- レイアウトに関連レコード(リレーションでつながれた別のテーブルのフィールド)が含まれる