みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも大変お世話になっております。
バージョン19.5.4.401になります。
フォーム形式で1レコードを表示して、その中に別テーブルのポータルを表示させています。
ポータルの中には5つほどフィールドがあり、タブキーで順番に進んでいきます。
左から→方向に進んで、一番右のフィールドが入力されたら、ポータルから出て、レコードの中のフィールドに飛びたいです。
現状はそのようにタブ順を設定しているのですが、タブキーを押すと、ポータルの最初に戻り、新規でレコードを作るという動作になってしまいます。
解決できますでしょうか?
ご教授お願いいたします。
> タブキーを押すと、ポータルの最初に戻り、新規でレコードを作るという動作
理解できません。
ポータルの最初に戻ります?
さらに、それが新規レコード作成になる?
Offline
ポータルなら複数行あるだろうから、その行を順番に移動することは避けられないのでは?
1行しかないならポータルにせず関連フィールドを配置すればできそうですが...
実験してみたら、なぜかポータル内のフィールドにタブ順があっても移動しない...何でだ??
もし、新規行に入力した直後の話(ポータル実行の最後の行(新規行の一つ上)での話)でしたら、ポータルを2個に分ければいいかも。
一番上に1行のポータルにして、ここにタブ順を設定。フィルターで、既に入力されている行を除外しておく(例えば主キーがあるとして、IsEmpty ( 主キー ) でフィルター)と、新規入力行のみが表示されます。このポータルのフィールドにはタブ順を設定します。または、最後のフィールドに OnObjectExit トリガーで、フィールド移動をさせます。
その下に複数行のポータルを配置します、
でどうでしょう。
または、ポータルフィルターを使ってない事が条件ですが、最後のフィールドに OnObjectExit トリガーで、ポータル行番号が関連レコード数と一致していれば、フィールドに移動、というのでもいいのでは。
If [ Get ( アクティブポータル行番号 ) = Count ( 明細テーブル::主キー ) or Get ( アクティブポータル行番号 ) = Count ( 明細テーブル::主キー ) + 1 ]
フィールドへ移動 [ テーブル::フィールド ]
現在のスクリプト終了 [ テキスト結果: 0 ]
End If
Last edited by Shin (2022-10-06 08:23:50)
Offline
私の実験で移動しなかったのは、最初にポータルを作る時に横着して「現在のテーブル」にしたので、フィールドが編集可能になってなかったからでした。お粗末!
himadaneeさん
Shinさん
チポさん
返信ありがとうございます。
お時間が空いてしまい申し訳ございません。
Shinさんの
If [ Get ( アクティブポータル行番号 ) = Count ( 明細テーブル::主キー ) or Get ( アクティブポータル行番号 ) = Count ( 明細テーブル::主キー ) + 1 ]
フィールドへ移動 [ テーブル::フィールド ]
現在のスクリプト終了 [ テキスト結果: 0 ]
End If
のスクリプトで、ポータル内で新規レコードを作成せず、同じレコードの内の次のタブ順に設定したフィールドに移動するようになりました。
ありがとうございました。
引き続き、何卒よろしくお願いいたします。
Pages: 1
[ Generated in 0.006 seconds, 7 queries executed - Memory usage: 553.74 KiB (Peak: 581.59 KiB) ]