みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
FMP12とFMGo12
macOS10.8です
各フィールド毎に定型文が多いため、各文の入力に対応するボタンを作っています。
最近ボタンが増えてきたことと、ipad上での入力にも対応するため、同一のレイアウト上に別配置したタブコントロールを利用しています。
あるフィールドに入った時に開いておきたい(使いたいボタンが配置されている)タブを指定したいのですが、どのようにすればよいでしょうか。
オブジェクトへ移動[オブジェクト名::"開いておきたいタブ"]
フィールドへ移動[テーブル::入力したいフィールド]
というスクリプトを入力したいフィールドにスクリプトトリガ[OnObjectEnter]で設定したところコマンドマークがでて固まってしまいました。
また、その前のフィールドは別の[OnObjectExit]スクリプトトリガが設定されています。
どうぞよろしくお願いします。
スクリプトでフィールドにEnterしてるので、無限ループになってるんでしょう。
GetLayoutObjectAttributeでisFrontPanelを確認して、違う場合だけ移動したら。
> その前のフィールドは別の[OnObjectExit]スクリプトトリガが設定されています
これで何をしているか分かりませんが、
> あるフィールドに入った時に
ここへ移動しているのなら、その直後に
スクリプト終了[結果 : 0]
を入れてみたらいかがでしょう。
Offline
Layouterさん、アドバイスありがとうございます。
教えて頂いた関数の使い道がいまいち分かりませんでした。じっくり取り組んでみたいと思います。
チポさん、アドバイスありがとうございます。
「スクリプト終了[結果 : 0]」の入れ方が分かりませんでした。「現在のスクリプトを終了」ステップで設定するのでしょうか?
確かに〜OnObjectEnterを設定したフィールドに戻るのですから無限ループしてしまいますね…
ひとまず、一つ前でなく数フィールド前に[OnObjectExit]スクリプトトリガを設定することでしのいでみます。
スクリプトステップ
現在のスクリプト終了
です。
ですが、
説明を全く取り違えて考えていました。
私の方法ではだめです。
> フィールドへ移動[テーブル::入力したいフィールド]
これは、Enterのフィールドへ戻るんですね。
これでは確かに無限ループになっちゃいます。
> その前のフィールドは別の[OnObjectExit]スクリプトトリガが設定されています
このスクリプトで、
タブパネルを指定してから、入力したいフィールドへ移動
ではだめなのかな。
Offline
[OnObjectExit]は次のフィールドへ行くとは限らないので(レコード確定とか)だめでしょう。
If[GetLayoutObjectAttribute("開いておきたいタブ";"isFrontTabPanel")]//isFrontPanelはFM13でした
//何もしない
Else
タブを切り替えてフィールドへ移動
EndIf
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 551.74 KiB (Peak: 579.34 KiB) ]