みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
フィールドA、フィールドBがありまして、Bに値が入っているときはAを編集不可にしたい。
Aにスクリプトトリガで OnObjectEnter を設定。Bに値があるときは フィールドへ移動[] とした。
一見うまくいったように見えたが、よそのフィールドからドラッグアンドドロップでAの値を変更できてしまう。
これはどのように回避したらよいのでしょうか?
Offline
OnObjectModify でいかがでしょう。
フィールド値は書き変わっていますので、元に戻空 を使ってみるといいでしょう。
Offline
Shinさん返信ありがとうございます。
OnObjectModify に
IF [フィールドB ≠ ""]
元に戻す/再実行 [元に戻す]
フィールドに移動[]
End IF
を入れてみました。
Aの値を変更すると直ちに元に戻るのですが、ドラックアンドドロップには反応しませんでした。
Offline
駄目でしたか。
そのフィールドを参照する計算フィールドを作り、重ねて表示させておく、クリックしたら、トリガーで本来のフィールドに移動させる、という方法は。
Offline
トリガー発火による入力制限は、動作抜けがあるのでお勧めできません。
FM標準のフィールド設定の入力制限では拙い事案でしょうか?
Offline
Shinさん、Hiroさんアドバイスありがとうございます。
スクリプトトリガーはどうもうまくいかないので今回は
フィールドAに「A」フィールドBに「B」と名前を付ける。
フィールドAはフィールド入力のブラウズモードをOFFにしてフィールドに入れなくする。
フィールドAにボタン設定で
IF[Get(ウインドウモード)=1]
オブジェクトへ移動[オブジェクト名:A]
現在のスクリプト終了
End IF
オブジェクトへ移動[オブジェクト名:B]
IF[Get(アクティブフィールド内容)≠""]
オブジェクトへ移動[オブジェクト名:A]
Else
フィールドへ移動[]
End IF
とすることで対応しました。
フィールドに名前を付けたのは異なるリレーションでも対応できるようにしたためです。
Offline
Pages: 1
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 551.8 KiB (Peak: 579.56 KiB) ]