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

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

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

You are not logged in.

Announcement

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


#1 2018-02-17 05:16:14

Shin
Member

【リスト表示を、ドラッグ&ドロップで並び替え】

ドラッグ&ドロップで、リスト表示の並び順の変更を、非常に単純なスクリプトで行うサンプルファイルです。少し変更するとポータルでも使えます。
サンプルは、ソートの状態で、別のレコード間に割り込ませる動きを作っていますが、一部を変更すると、対象の2列を入れ替える動きにもなります。
https://www.dropbox.com/s/nuvapfvqn2lxc … 7.zip?dl=0

動作の解説
各レコードに、ソート順を指定する数値フィールドを置いておき、1からのシリアル値を設定しておきます。(レコード番号と一致しています)
同じ内容を入れているオブジェクトフィールドが最前面に置かれています。クリックするとそのフィールドが選択され、別のレコードへドロップされると、そのオブジェクトフィールドを変更することになります(内容は同じなので、変更されたようには見えません)。そのフィールドには、自動入力が設定されており、自分自身の値へを設定し直すのですが、その式の中でグローバル変数へレコード番号を取得しています。
動作が終わると、その変更のトリガーで、スクリプトが動きます。元のレコードがアクティブになっていますので、そのレコード番号を別のグローバル変数へ取得します。2個のグローバルフィールドの値からレコードを特定し、ソート順を指定する数値フィールドを、目的の順になるように全置換を行い、ソートを行なっています。

最後の全置換の式を変更すると、対象の2レコードの位置の入れ替えの動作になります。

Last edited by Shin (2019-12-12 15:51:30)

Offline

#2 2018-02-28 18:51:40

Shin
Member

Re: 【リスト表示を、ドラッグ&ドロップで並び替え】

機能の追加です。

行をクリックするだけですと、その行に新しいレコードが挿入追加されます。
https://www.dropbox.com/s/nuvapfvqn2lxc … 7.zip?dl=0

最終行の下に新規レコードを作る機能を追加しました。
ポータルの新規行の様に、新規行が架空で表示してあります。そこをクリックすると新規行が最下行に追加されます。

動作の解説
各レコードに、ソート順を指定する数値フィールドを置いておき、1からのシリアル値を設定しておきます。(レコード番号と一致しています)
同じ内容を入れているオブジェクトフィールドを一番上に置いておきます。クリックするとそのフィールドが選択され、別のレコードへドロップされると、そのオブジェクトフィールドを変更することになります。(内容は同じなので、変更されたようには見えません)そのフィールドには、自動入力が設定されており、自分自身の値へを設定し直すのですが、その式の中でグローバル変数へレコード番号を取得しておきます。
動作が終わると、その変更のトリガーで、スクリプトを動かし、元のレコードがアクティブになっていますので、そのレコード番号を別のグローバル変数へ取得します。さらに、ソート順を指定する数値フィールドを、目的の順になるように全置換を行い、ソートを行なっています。
レコードの挿入追加は、新規レコードでソート順の数値フィールドに既存の最大値より一つ大きな値を設定し、入れ替えと同じ動きを作っています。

なお、ソート順の数値フィールドは、レコード番号と一致している時点から開始することが前提ですので、リスト表示の際にシリアル値で全置換しておいてください。

Last edited by Shin (2018-03-01 17:36:51)

Offline

#3 2018-06-16 11:54:41

Shin
Member

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 511.78 KiB (Peak: 516.69 KiB) ]