みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
何のトリガを使っていますか?
onObjectExit?
ご回答ありがとうございます。
トリガーはポータル行の中に日付を入れて、内容が変更になった場合のOnObjectValidataからスクリプトを起動し、エンターを押すと次のレコードの日付項目には移動するようになりますが、タブキーを押してもエンターを押したときと同じく次のレコードの日付に移動します。これを、タブキーを押したときは、同じポータル行の右のフィールドに移動するようにしたいと思います。このスクリプトの中にtabキーが押されたのか判断することができるのでしょうか。
onObjectKeystroke は使ったことがありません。このような場合どう使うことができるのでしょうか。宜しくお願いします。
オフライン
ヘルプに書いてあるように、Get (トリガキー入力)は~Keystrokeのイベントでないと取得できませんね。
https://help.claris.com/archive/help/18 … ke.html%23
OnObjectValidataは、移動以外に何か別の用途で必要なんでしょうか。
キーイベントで移動先を変えると、その処理の中でフィールドが変わってしまうことになるので、複数のトリガを適用する場合は処理が複雑になります。(1つのスクリプトが処理中に別のイベントスクリプトが割り込んできます)
ポータル行で予定日を入力し、エンターキーを押すとOnObjectValidataからスクリプトを起動し別の明細テーブルの予定日欄に入力された予定日が書き込まれ、次のポータル行に移動するようにすることはできました。
もちろんタブ順の設定では次の行への移動の指定はポータルでは一行しか指定できないので、タブ順では次の行への移動ができないのではないかと思います。
予定日の入力をしないと、タブキーで同一ポータル行の予定日2へ移動しますが、予定日を入れてエンターだと次のポータル行の予定日に移動して、予定日を入力してタブキーを押すと同一ポータル行の予定日2へ移動するようにしたいと思っています。このような場合、方法はあるのでしょうか。
OnObjectKeystrokeを指定してみましたが、キーを一つたたくとそのキーの数値はGet (トリガキー入力)で入りますが、本来の予定日欄の入力はできませんでした。
オフライン
ありごとうございます。試してみたのですが、onObjectKeystroke では日付の最初の2(2023/9/1と入力したい)のキーを入力したらスクリプトが起動してしまいます。
例えば、最初の日付にあたる9月の日付に[2023/9/1]を入力して、エンターを押したらポータル行の2行目の行へ移動して、日付に[2023/9/11]に入力してエンターを押すと9月の日付が3行目の9月の日付に移動するようにしたいのがエンターキーを押した場合の方法です。(これはOnObjectValidataからのスクリプトでできています。記入していただいたような "ポータル内の行へ移動 [ 選択: オフ ; 次の ; 最後まできたら終了: オフ ]"です。)
もう一つの方法として、最初の日付にあたる9月の日付に[2023/9/1]を入力して、エンターではなくTabキーを押したら、同じようにスクリプトが起動して、ポータル同一行の次のフィールドへ移動して10月の日付を「2023/10/1」と入力してTabキーを押したら、ポータルの同一行の次のフィールドへ移動して11月の日付を入力するフィールドに移動して、「2023/11/2」と入力し、今度はエンターキーを押したら、ポータル行の次の行へ移動して、2行目の11月の日付に[2023/11/5]に入力できるようにしたいと思っています。ポータルでこのような動きができるようにしたいと思っています。日付を入力後どうすればエンターとTabきーが押されたか判断できるのか困っています。
オフライン
>onObjectKeystroke では日付の最初の2(2023/9/1と入力したい)のキーを入力したらスクリプトが起動してしまいます。
そのスクリプトが動くと不都合があるのですか?? 1000ストローク/sec 位されると、問題がでるかもしれませんが。
https://www.dropbox.com/scl/fi/w473uhe8 … cmwgv&dl=0
のサンプルファイルで、動作に不自然さがありますか?
編集者 Shin (2023-09-12 00:32:25)
オフライン
デバッガを起動した状態でテストしてると不都合に感じるかもしれません。