【中級以上向け】スクールでは教えてくれない、かゆい所に手が届くシリーズ:「FileMakerの値一覧で降順ソートをそれっぽく見せる方法」
値一覧で降順にしたいときはありませんか?
今回のかゆい所に手を伸ばすシリーズでは、値一覧を降順で表示させる方法について書いてみたいと思います(*´ω`*)
<もくじ>
- 値一覧のソートは昇順がデフォルト
- 降順ソートにするのはそう簡単ではなかった
- 降順ソートっぽく見せる方法を公開
値一覧のソートは昇順がデフォルト
例えば、年月を6桁で持っているデータがあるとして、それをドロップダウンリストにすると昇順になってしまいます。
値一覧の設定ではソートをすることは出来ますが、「降順」という選択肢がありません。
なのでデフォルトで昇順になってしまいます。
でも年月って、直近のものを選択したいことが多く、この場合いちいち下までスクロールしないといけなくなります。
スクロールは面倒なので、降順にして直近の年月から選べるようにしたいのです。
理想はこんなドロップダウンリストですね。
降順ソートにするのはそう簡単ではなかった
ネットで調べてみると、一応降順ソートする方法はあるようです。
ただし、みなさん色々苦労しているようでした。
例えばこんな方法があるようです。
- BOM(Byte Order Mark)
- カスタム関数
- カードウインドウ
BOMを使う方法というのは、見えない文字をうまく利用して、2番目の値をソートさせるようです。
ただこれには欠点があって、100件までしか対応できないようでした。
しかも何がなんだか分からないコーディングを計算フィールドに埋め込まないといけないので、すぐに使う場合にはもはや意味もわからずコピペするしかなさそうです。
カスタム関数については、無償で提供してくださっている方がいて大変有難いところです。
あなたがもしカスタム関数を知らないとしたら、よい勉強・よいトライになるかもしれません。
解析しようとなると難易度は上がってくるかと思います。
カードウインドウは、最も手軽に気軽にできる方法かもしれません。
問題があるとすれば、専用のレイアウトをひとつ作る必要があり、決定した値を反映させるためのスクリプトを作らないといけないことでしょうか。
これも今すぐ使いたいという場合にはやや難しくなってきます。
降順ソートっぽく見せる方法を公開
それでは、降順ソートっぽく見せる方法を公開します(*^^*)
ただこの方法は2番目のフィールドの値が数字タイプである必要があります。
結果から言うと、こんな感じのドロップダウンリストになります。
これを良しとする方だけ、続きをご覧ください(*^^*)
では設定してみましょう。
まずは2番目のフィールドを用意します。
計算フィールドで、タイプを「数字」にします。
計算式はこのようになります。
"--" & 年月 & "--"
つまり、6桁の年月フィールド(最初のフィールドの値)の前後に
"--" (ハイフンを2つ、あるいは3つ)
を連結させます。
すると、実際の値はどうなるかというと、当然次のようになります。
次に値一覧の設定です。
最初のフィールドの値には「年月」フィールドを、2番めのフィールドの値には計算フィールドを指定します。
そして、「2番めのフィールドの値のみを表示」にチェックを入れます。
年月フィールドに値一覧を指定します。
ではブラウズモードで見てみましょう。
見事に降順ソートで表示されましたヽ(=´▽`=)ノ
この方法はもうお分かりかと思いますが「ハイフン(マイナス)」がポイントです。
マイナスがつくことで、数字が大きいほど小さい値になり、昇順ソートなのに結果的に降順っぽくなるわけです。
でも、マイナスってひとつあれば良いのでは?なぜマイナスを前後に2つ繋げる必要があるの?
ごもっともです。
でも、理由があります。
それは・・・・・・
見た目で違和感をなくすためです!
どういうことか、もう少し詳しく説明します。
では試しにハイフン(マイナス)を普通の数字のようにひとつだけにしてみましょう。
"-" & 年月
と、このようにしてみます。
すると、ドロップダウンリストは当然このようになります。
どうでしょうか?
マイナスが生々しいと思いませんか?(^_^;)
まあ、これでも良ければ全然OKだと思います。
実はネットで調べた時にこの方法もあるにはありました。
ただ、この”見た目”のせいで、使うことをためらっている方がいらっしゃいました。
確かに・・・・・・・。
それを踏まえ、今回の方法はどうでしょう。
マイナスが前後にあったほうが選択肢っぽくなると思いませんか?
まあ、これを良しとするか、違和感があるからやっぱり使いたくないか、それはあなた次第です(*^_^*)
もしこれで充分使えると思って頂けたら、是非お試し下さい♪
ただ、繰り返しますが、この方法は2番目のフィールドの値が数字タイプである必要がありますのでよろしくお願いします。
ほかにもっと手軽な方法をもしご存知なら、ぜひとも教えて頂けると嬉しいです(*^_^*)
それでは今日も良い一日を!
Blogger Comment
Facebook Comment