みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FMS19
Windows10
よくある自動採番スクリプトをカテゴリ別に作っています。
ラジオボタンと番号の組み合わせです。
自動採番は出来たのですが
1点解決できないことがありこちらに相談させてもらいました。
同じラジオボタンを連続で押してしまったたときに
番号がインクリメントするのを避けるにはどのようにしたらよいのでしょうか。
新規レコードはこのタイミングでは作成されてないのでレコードが次々作られてしまうわけではないです。
番号フィールドの番号が、同じラジオボタンを押した分だけ上がってしまうのを避ける方法はありますか。
現在、自己リレーションを作り
自動採番させるスクリプトをOnObjectModifyで走らせています。
なにかよいアドバイスありましたらよろしくお願いいたします。
そのスクリプトがわかりませんが、、
採番のフィールドに入力があれば、スクリプトを止める。
では?
Offline
同じ値なのにOnObjectModifyが発生するのは変ですね。
「自己リレーションを作り」なら、自分自身には関連しないようにレコードIDをリレーションに追加するとかでもいいかも?(関連レコードの最大値に+1しているとすれば)
チポ様
himadanee様
早々にありがとうございます。
>採番のフィールドに入力があれば、スクリプトを止める。では
ラジオボタンフィールドと番号フィールドから成っているので
ラジオボタンと番号が前回と同じだったらスクリプトを止めるということを
できればいいのですがそれをやるにはグローバルフィールドを作るのでしょうか?
himadanee様のおっしゃる通り、
スクリプト内で、関連レコードの最大値に+1してカウントアップしています。
なので今、現在選択しているボタンを故意にまた押しても
OnObjectModifyが走ってしまうため、カウントアップされてしまうのです。
(実際利用者は何回も同じボタンを押すという操作は往々にしてやりがちなのでそこを避けたいのです)
選択されているボタンと同じボタンを押下してるのになぜOnObjectModifyが走るのでしょうか?仕様でしょうか?
そもそも自動採番のスクリプトはどのトリガーで使うのが正解なのですか?
自分は、ラジオボタンが選択されたタイミングだと思い、OnObjectModifyに設定したのですが
そこだと、同じボタンをクリックするだけでも発生してしまうので困っています。
引き続きよろしくお願いいたします。
ラジオボタンフィールドのボタンを押される以前の値を判定して、
入力があれば、以前に戻してスクリプトを止める。
でいいのでは。
OnObjectModify
をラジオボタンのフィールドに設定すると、
どの値でも、ボタンを押すたびにトリガされますね。
Offline
カテゴリーと全体のシリアル番号で自己リレーションを張り、リレーション先のカウントをシリアルにする、という構造の方が単純なのでは。
Offline
みなさま、ありがとうございました。
チポ様がおっしゃっていた、ラジオボタンフィールドのボタンを押される以前の値を判定して、
入力があれば、以前に戻してスクリプトを止める。にしたいと思います。
ありがとうございました。
Pages: 1
[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 562.38 KiB (Peak: 587.07 KiB) ]