みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Windows10 FileMaker Pro18
https://fm-aid.com/bbs2/viewtopic.php?id=7655
こちらをしたいのですが、サンプルを参考に作成してみているのですが理解できずうまくできません。
簡単で良いのでどなたか説明していただけませんでしょうか?
簡単に、といっても、まあまあ複雑なことをしているので難しいですが。
まず、レイアウトには、オブジェクトフィールドが並べてあります。そのフィールドは、自動計算で自分のレコード番号を変数に取得するように仕組んであります。
ドラッグ元のオブジェクトをクリックして、ドロップすると、ドロップ先のオブジェクトが変更されたことになり、自動計算が働きます。同時に、OnObjectModifyトリガーで、実処理のスクリプトを走らせ、ドラッゴ元のレコード番号を変数に取得します。
原理はこれだけです。デバッガーでステップ動作させ、データビューワーで変数の動きをみていくとわかるでしょう。
あとは、得られた二つの変数を使って、リストを並びかえます。これは、入れ替えとか、挿入とかいろいろ動きがあるので、それに合わせて作業します。
具体的には、そのリストのソートキーとなるフィールドの数値を書き換えます。入れ替えでしたら、それぞれのソートキーを入れ替えます。挿入でしたら、ソートキーを目的の並びになるように適当に書き換えます。(変数に0.5足したり、引いたり)それをもう一度ソートして、ソートキーをシリアルで全置換させます。
基本部分だけのサンプルです。動作は、行の移動です。(ドロップした位置に挿入する)
https://www.dropbox.com/s/8w1jampeebaj0 … 2.zip?dl=0
Last edited by Shin (2022-01-12 15:25:16)
Offline
ご本人様でしょうか?
サンプルまでありがとうございます。
なんとなくですが理解することができました。
いただいたサンプルをコピーして同じように設定してみたのですがうまく動きません。
フィールドの各設定や式、スクリプトトリガ、クイック検索も設定しましたが他にも何か設定しているのでしょうか?
お手数をおかけしますがよろしくお願いします。
シンプルなサンプルに、最低限の設定が含まれています。動かしてみたあとで、2個の変数は、思惑通りの値になっていますか。
なっていなければ、変数の設定部分の見直しを。なっていれば、ソートキーの設定の見直しを、行なってください。
Offline
言葉足らずでした申し訳ございません。
動かすことができていません。
クリックしたら選択されるだけの状態です。
初めから自分でしてみてもできなかったので、まずはテーブル、フィールド、スクリプトをコピーして設定のみやってみようと試しに作成しているところです。
とりあえず動かなくてもいいので、動きの操作を行った後のデータビューワーでの動きをみてください。
仕組みはシンプルなんですが、動きは中級以上のものですので、結構難しいですよ。
Offline
そうなんですね。これができれば仕事が少し楽になるのですが…
サンプルと比べながらしているのですがやはり初心者には難しいんですかね。
開いてみたのですが、そもそも一つのフィールドしか出てこないです。
コピーして使っているのですが何か抜けてるのですかね。
データビューワーですか。
動かすと、グローバル変数が2個追加されているはずです。ローカル変数にしていませんか。
Offline
グローバルになっていますが表示されません。
最前面にあるフィールドのフィールド定義で、自動入力が設定され、上書きを行わない✔が外されていますか。(データビューワーで確認)
同じフィールドに、OnObjectModifyトリガーが設定され、スクリプトが動きますか。(スクリプトデバッガーで確認)
おそらく、どちらの設定もできていないのだと思います。
Offline
お世話になっております。
データビューアが表示されるようになり、順番も変わるようになりました。
まだ正しく動作されていないですが。
まず動かすとnの番号が同じ数字になったりとばらばらになります。
原因は変数の設定でしょうか?
souroeに6を入れている理由を教えていただけますでしょうか。
お手数をおかけしますがよろしくお願いします。
原因はよくわからないのですが正しく動くようになりました。
長期にわたりありがとうございました。
最後にsourceに6、 targetに1が入っている理由を教えていただけないでしょうか?
sourceに6、 targetに1 は、最初にクリックしたレコードのシリアル番号が8 dropしたシリアル番号が1ということです。
Offline
勉強になりました。
ありがとうございました。
Pages: 1
[ Generated in 0.009 seconds, 9 queries executed - Memory usage: 526.22 KiB (Peak: 547.13 KiB) ]