初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2020-06-16 14:33:17

bang
Guest

ポータル内レコードを「確定」させつつそのポータルの処理をするには?

FM18を使っていますが、昔からこのような場合のスクリプトで迷っていました。
皆さんはどうされているでしょうか?

・ポータル行内に、ユーザーが入力できるフィールドがある
・ポータル行内に、スクリプトの実行ボタンがある

このような場合に、入力フィールドに文字を入れる→スクリプト実行ボタン とダイレクトに操作されてしまうと
入力フィールドが確定しないままスクリプトが進んでしまいます。

かといってフィールドの確定ステップを挟むと、ポータル1行目に対してスクリプトが実行されてしまいます。

「入力したらいったんフィールド外をクリックしてからスクリプト実行ボタンを押す」
というルールを作っても守られる保証がなく、トラブルのもとになります。

割とよくある問題かもしれませんが、どうやって解決されていますでしょうか。

#2 2020-06-16 15:11:58

チポ
Member

Re: ポータル内レコードを「確定」させつつそのポータルの処理をするには?

フィールドを確定してそのフィールドに留まる。
がご希望なら、
  次のフィールドへ移動
  前のフィールドへ移動
とすればいいのでは。

Offline

#3 2020-06-16 16:48:36

koeda
Member

Re: ポータル内レコードを「確定」させつつそのポータルの処理をするには?

「フィールドを確定」とは?
問題となるシーンがあまり具体的にイメージできないのですが…

https://fmhelp.filemaker.com/help/18/fm … -data.html
関連データ (ポータルに表示される関連レコードなど) への変更は、関連データを表示しているレコードが確定されるまで適用されません。

上記ヘルプにもあるように、ポータルなど関連レコードを確定させるには、元レコードを確定する必要があります。
レコード確定のために「レコード/検索条件確定」ステップを実行する
→その副作用としてポータル行からフォーカスが外れてしまう(「フィールド外をクリックする」のと同じことですので)
この解決が課題だとしたら、
以下のように
1)ボタンクリック時に行番号を覚えておき、
2)レコード確定後に、クリックしたポータル行へ再度移動する
のはどうでしょうか?

変数を設定 [ $activeLine; 値:Get ( アクティブポータル行番号 ) ]
レコード/検索条件確定[ ダイアログなし ]
オブジェクトへ移動 [ オブジェクト名: "PortalName" ]
ポータル内の行へ移動 [ $activeLine ] [ 選択; ダイアログなし ]

(以下、そのポータル行に/で行いたい処理)

Last edited by koeda (2020-06-17 09:41:00)

Offline

#4 2020-06-16 17:56:26

bang
Guest

Re: ポータル内レコードを「確定」させつつそのポータルの処理をするには?

質問のしかたが曖昧で申し訳ありません。

チポさん、koedaさん ご想像のとおりの状態でした。

ポータル内のフィールドへ入力した内容を「レコード/検索条件確定」で確定しようとすると
ポータル行のフォーカスが外れ、ポータル1行目に対してその後のスクリプト処理が行われてしまう
という状態を解消したかったのです。

いくつものやり方があること、勉強になりました。
今回は入力欄以外の他のフィールドが無かったので
-------------------------------
変数を設定 [ $activeLine; 値:Get ( アクティブポータル行番号 ) ]
レコード/検索条件確定[ ダイアログなし ]
オブジェクトへ移動 [ オブジェクト名: "PortalName" ]
ポータル内の行へ移動 [ $activeLine ] [ 選択; ダイアログなし ]
-------------------------------
このやりかたで希望のイメージ通りの動作にすることができました。

ありがとうございます!

#5 2020-06-17 10:05:53

チポ
Member

Re: ポータル内レコードを「確定」させつつそのポータルの処理をするには?

終わっていますが、、
私の方法はフィールド一つでも機能しますよ。

ポータルのフィールドならポータル行を移動します。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 514.35 KiB (Peak: 519.26 KiB) ]