みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
初めまして、setsuと申します。
ある変数フラグが特定の値になっている時に、レイアウト内のタブコントロールにある二つのタブインデックスa,bのうちタブインデックスb内のフィールドを編集不可にしたいです。
理想的なのはレイアウト切り替えの際に$flag=1のとき、タブインデックスb自体を触れない(インデックスの部分がグレーアウトし、クリックしても反応がない)状態にできるようなスクリプトが書けるといいのですが、難しい場合は、タブインデックスb内のフィールドxについて入力禁止とできるようになればと考えています。
どうぞよろしくお願いいたします。
===========
使用環境
filemaker pro advanced14
Windows8.1 pro
===========
※filemaker webdirectの互換性が必要ですが、ひとまず無くてもできる方法がありましたらご教授いただきたいです。
FMP12レベルしか持ってないので
ポータルのスクリプトトリガではうまくできなかったので
ボタンをポータルラベルにかぶせるということで
なんとか解決できたけど
方法は、
フラグフィールド(Flag)に A/Bのラジオボタンを作って
それでAB指定
ラベルAのボタンの上には
・If[Flag=”A"]
・カスタムダイアログ[入れませんのメッセージ]
・Else
・オブヘクトに移動[ラベルA]
・End If
Bの方にはこれと逆のスクリプトを
これでなんとか動いたけど。。。
何かいい方法ないかなぁ?
検証ファイルは
http://yahoo.jp/box/duJOyc
にあります
Offline
> レイアウト切り替えの際に$flag=1のとき
ローカル変数になっていますが、
スクリプト内でのことですか?
Offline
変数についてはチポさんから指摘がありますが $$flag ですかね?
↑という前提で。
[OnPanelSwitch]スクリプトトリガで移動先のタブが分かりますから、
$$flag = 1 でタブB がダメならば[現在のスクリプト終了(False)]でタブ移動はできません。
FileMaker WebDirect 互換性はあります。
Offline
フラグが不明ですが。
OnObjectEnter トリガーを仕掛けておき、スクリプトでその変数を評価して、フラグが立っていればオブジェクトから出てしまうようにしておけば良いでしょう。
Offline
OnObjectEnter トリガーを仕掛けておき、スクリプトでその変数を評価して、フラグが立っていればオブジェクトから出てしまうようにしておけば良いでしょう。
これを仕掛けて見たんですが
!2レベルでは OnObjectEnter が反応しなかった OnTabSwitch も反応してくれなくて
ひょっとして OS(Sierra と相性が悪いのかも。。。
Offline
リファレンスにも記載されていますが[OnObjectEnter]トリガは
マウスクリックによるタブコントロール選択ではアクティベートされません。
http://www.filemaker.com/help/12/fmp/jp … .38.2.html
タブコントロール内のフィールドへの入力を防ぐためにフィールドコントロールへ設定するなら有効です。
Offline
OnObjectModify
がタブパネルの切り替えに有効ですよ。
これを使って、
条件で指定したタブパネルを選択出来ない様に出来ますね。
Offline
FileMaker Pro 14 のようなので[OnPanelSwitch](作例で使用)で良いかなと思ったのですが......マズいですかね。
トリガの起点は FileMaker Pro 12(初出は[OnTabSwitch])です。
Offline
検証で使った関数が間違ってました
Get ( トリガ現在のタブパネル )
を使うべきだったんですね。
これを使って
OnTabSwitchで解決できました。
検証ファイルは
http://yahoo.jp/box/no5UIu
に置きました。
Offline
タブの表示を禁止したいのではなく,その中のフィールドの編集を禁止する、という事では無いのですか。そのフィールドにトリガーを仕掛ければいいと思いますが。
Offline
理想的なのはレイアウト切り替えの際に$flag=1のとき、タブインデックスb自体を触れない(インデックスの部分がグレーアウトし、クリックしても反応がない)状態にできるようなスクリプトが書けるといいのですが、難しい場合は、タブインデックスb内のフィールドxについて入力禁止とできるようになればと考えています。
というご要望ですから
[OnPanelSwitch]によるタブの無効化が図れたら第一希望通り、
[OnObjectEnter]によるタブ内フィールドの入力禁止は次点希望ですね。
[OnPanelSwitch]で以下の追加要望についても充足されることも検証済です。
※filemaker webdirectの互換性が必要ですが、ひとまず無くてもできる方法がありましたらご教授いただきたいです。
Last edited by Moz (2017-01-24 13:45:05)
Offline
皆様
一括で失礼します。たくさんのご助言ありがとうございます。
ご指摘のあった変数ですが、当初タブのあるレイアウトへの切り替え時のスクリプト内で解決しようとしていたためflagをローカル変数にしていました。特にこだわりがあった訳ではないです。紛らわしくて申し訳ありません。
Mozさん、Shinさんのご助言を参考にレイアウト切り替え時に$$flag=1とし、スクリプトトリガのOnPanelSwitchで$$flag=1のとき現在のスクリプト終了で解決しました。
シャチさんもボタンをラベルに重ねるというアイデアをありがとうございました。また他に機会があれば応用できればと思います。
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 532.03 KiB (Peak: 552.94 KiB) ]