初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2023-03-14 15:03:54

y_y
Guest

年月のみのドロップダウンリストを降順で

https://fm-aid.com/bbs2/viewtopic.php?id=4969
の#8で記載されている方法
Let([
   $dt=Get(日付);
   $dt=Date(Month($dt);1;Year($dt)-1);
   $i=0;
   $res="";
   $fnc="Case($i=25; $res;
      Let([
         $ym=Date(Month($dt)+$i;1;Year($dt));
         $ym=Year($ym) & "/" & Right(100+Month($ym);2);
         $res=List($res;$ym);
         $i=$i+1
      ]; Evaluate($fnc))
   )"
];
   Evaluate($fnc)
)
を使用させていただきました。
この年月のリストを降順としたい場合はどうすればいいのかご教示お願いします。

#2 2023-03-14 15:39:19

Shin
Member

Re: 年月のみのドロップダウンリストを降順で

その並べ順はFMが値一覧をつくるときの並び方ですので、昇べきのみです。
降べきが必要でしたら、2番めの項目のみを表示する動的な値一覧を作って列べ直すのが簡単だと思います。
https://www.dropbox.com/s/witoh1yikszpi … 2.zip?dl=0

Last edited by Shin (2023-07-15 17:00:44)

Offline

#3 2023-03-14 15:42:12

himadanee
Guest

Re: 年月のみのドロップダウンリストを降順で

そこのスレッドに書かれていますが、値一覧はテキストのソート順になります。
降順にするにはテーブル・レコードを使ってソート用の2番目フィールドを降順になるように設定します。

不可視の文字を使って順番を細工する方法もありますが、その文字自体がデータに入ってしまいます。

#4 2023-03-17 11:46:31

チポ
Member

Re: 年月のみのドロップダウンリストを降順で

無理無理ですが^^;;

書かれた計算フィールドを
数字タイプの繰り返しフィールドにして、
年月の最初に「-」を付けて負数にします。
セパレータの「/」は、数値としては無視されますが、
フィールド値としてはそのまま持っています。

こうすると
値一覧のリストは「-」を見なければ、降順で並んで見えますよね。

入力するフィールドには入力値の自動化で「-」を取ります。

Offline

#5 2023-03-22 10:56:54

himadanee
Guest

Re: 年月のみのドロップダウンリストを降順で

>入力値の自動化で「-」を取ります。
これをやると、値一覧が選択された状態でなくなりますよね。あんまり関係ないかな。
選択した値を検索条件に使うなら、そっちのスクリプトで取る、とかも考えられますね。

あとは、そもそも値一覧は使わないで、カードウィンドウで選択させるとか...

#6 2023-03-29 21:25:26

himadanee
Guest

Re: 年月のみのドロップダウンリストを降順で

#1の計算式は、"/"のところの\マークが消えてしまってますね。(リンク先の方は問題ない)
直ったので、不可視の文字を使う計算式を一応書いておきます。
Let([
   $dt=Get(日付);
   $dt=Date(Month($dt);1;Year($dt)-1);
   $i=0;
   $res="";
   $fnc="Case($i=25; $res;
      Let([
         $ym=Date(Month($dt)+$i;1;Year($dt));
         $ym=Substitute(10^(25-$i)-1;9;Char(8203)) & Year($ym) & \"/\" & Right(100+Month($ym);2);
         $res=List($res;$ym);
         $i=$i+1
      ]; Evaluate($fnc))
   )"
];
   Evaluate($fnc)
)

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 552.41 KiB (Peak: 579.27 KiB) ]