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

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

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

You are not logged in.

Announcement

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


#1 2023-02-15 20:59:18

ポテチ
Guest

カーソルの移動

何度かお世話になっております。

テーブルからデータ検索してリスト形式で表示させています。
(1検索で1件から10件ほどリスト表示されます。)
検索したあとデータを追加で入力するのですが、カーソルが移動しません。

最初に1件目のレコードに追加で入力して、2件目のレコードに入力しようとクリックしてもカーソルが移動しません。
試しに検索→検索結果5件
最初に一番下の5件目を入力したあと4件目の入力をしようと入力するフィールドをクリックしましたが移動しませんでした。
どこから入力しても次のレコードへカーソルが移動しません。

ただたまに入力できるときもあります。

原因がわからずにいます。Ver19 Win10

よろしくお願いします。

#2 2023-02-15 21:09:52

himadanee
Guest

Re: カーソルの移動

何かフィールド値に制限をかけてて、それを満たしていないとか、
何もメッセージが出ないなら、トリガが設定してあるとか、
でしょうかね?

#3 2023-02-16 07:19:42

ポテチ
Guest

Re: カーソルの移動

フィールドにいくつか制限もありますし、onrecordcomid も設定しています。

何もメッセージはでないです。
あえていうなら、カーソルが移動したと勘違いして入力して「入力する前に・・・」の
メッセージがでるくらいで・・・

#4 2023-02-16 08:12:25

ポテチ
Guest

Re: カーソルの移動

onRecordcommid
が原因のような気がします。

ここで登録フラグを判定してfalseなら現在のスクリプト終了にしています。
次のレコードに移動するだけではtureにならないので、そのままスクリプト終了になると
思うのですが、やり方が違っているのでしょうか?

#5 2023-02-16 09:55:36

チポ
Member

Re: カーソルの移動

スクリプトが分からないので何ともですが、、
そのトリガを外してみて試されたらいかがでしょうか?

今のレイアウトをいじりたくないのでしたらレイアウトコピーして試せばいいでしょう。

Offline

#6 2023-02-16 09:57:15

himadanee
Guest

Re: カーソルの移動

登録フラグの意味も何をしたいのかもわからないので何とも言えませんが、
「現在のスクリプト終了」に戻り値をtrueで入れない場合はコミット禁止(イベントがキャンセル)になって、レコードから出られなくなります。

#7 2023-02-16 10:12:17

チポ
Member

Re: カーソルの移動

検証不足ですが、、

> onRecordcommid
> が原因のような気がします

OnRecordCommit
ですよね?

ならば、
レコード確定時にトリガが働きますが、
フィールド移動だけでは働きませんよ。。

Offline

#8 2023-02-16 11:05:26

himadanee
Guest

Re: カーソルの移動

移動と言ってもレコード内の別のフィールドでなく、別のレコードの(同じ)フィールドへ移動しようとしてますから、コミットのトリガ発生になります。

#9 2023-02-16 11:19:02

チポ
Member

Re: カーソルの移動

ですね、
フィールド移動ではなく、
レコード移動ですね、
読み違えていました。

Offline

#10 2023-02-16 12:17:36

ポテチ
Guest

Re: カーソルの移動

みなさまありがとうございます。

登録フラグは登録ボタンを押したときにレコード確定させるためのフラグです。
押したらtrueにして、キャンセルボタンはレコード復帰のスクリプトです

「現在のスクリプト終了」に戻り値をtrueで入れない場合はコミット禁止(イベントがキャンセル)になって、レコードから出られなくなります。
>>戻り値はfalseです。これが原因かもですね


そのトリガを外してみて試されたらいかがでしょうか?
>>試してみます

#11 2023-02-16 14:51:23

ポテチ
Guest

Re: カーソルの移動

試したところ、やはりOnRecordCommitが原因のようです。

1レコードに対して変更(データ追加)しているので、それを登録なりキャンセルなりしないと次のレコード
へ移動できないといったところでしょうか?

レイアウト上で登録とキャンセルを制御したいのですが、どのようにしたらいいんでしょうか?
OnrecordLoadのほうを使ったほうがいいのでしょうか?

#12 2023-02-16 15:43:12

チポ
Member

Re: カーソルの移動

> 登録フラグを判定してfalseなら現在のスクリプト終了にしています
その結果をtrueとすればいいですが、
それで不都合があるかはスクリプトが分からないと。。

Offline

#13 2023-02-16 15:59:26

himadanee
Guest

Re: カーソルの移動

レコード単位でなく、検索結果全体の編集を一括して登録かキャンセルかしたい、ということなのかな。
だとしたら、CommitもLoadもあんまり意味がないですが...

最新バージョンなら「トランザクション」がありますけど、途中で人力で編集するのはスクリプト一時停止になるので色々制限がでてくるかも。

#14 2023-02-16 17:57:00

ポテチ
Guest

Re: カーソルの移動

レコード単位でなく、検索結果全体の編集を一括して登録かキャンセルかしたい、ということなのかな。
だとしたら、CommitもLoadもあんまり意味がないですが...
>>その通りです。
やはりそうなのですね・・・いろいろ調べてそうなのかなーと思っていたところです。

最新バージョンなら「トランザクション」がありますけど、途中で人力で編集するのはスクリプト一時停止になるので色々制限がでてくるかも。
>>これも今調べて試してみようかと思っていました。
初心者には難しいでしょうか?一時停止(入力中)は他の作業ができないように(登録かキャンセルを押してから)制限をかけたりできるのでしょうか?

#15 2023-02-17 06:53:53

himadanee
Guest

Re: カーソルの移動

トランザクションは最近できた機能なので、ほとんど使ったことありませんからあんまりアドバイスできませんが、
https://help.claris.com/ja/pro-help/con … ction.html
を見ると、考慮すべき事項がかなり多いので、初心者には難しいのは確かだと思います。

自動的に確定する操作として「ファイルが閉じられた場合」があるので、何か確定に条件がある(登録ボタンのスクリプトを必ず実行させるなど)であれば、onWindowCloseトリガを併用してチェックが必要、かも?

複数のクライアントで同時にトランザクションが始まって、変更がバッティングしたらあとから確定しようとした方が失敗するとか、あるのかな??
それとも、あとから変更しようとした方が「ロックされています」と言われて編集できないのかな。

スクリプト一時停止の際は、自動的にある種の制限がかかりますが、「他の作業」とはフィールド編集以外すべて、ですか?
https://help.claris.com/ja/pro-help/con … cript.html
メニューのカスタマイズが必要かも。

#16 2023-02-17 07:47:52

ポテチ
Guest

Re: カーソルの移動

試しにちょっとだけやってみましたが、難しいです。
一時停止してもEnterで解除されてしまうようで、入力→Enterで確定してしまい入力作業は厳しいです・・・

あきらめて自動保存にするしかないかもしれません。

ありがとうございました。

#17 2023-02-17 09:06:29

ぎょぼぼ
Guest

Re: カーソルの移動

>1検索で1件から10件ほどリスト表示

という事なので、10件程度なら力技で...
編集用のレイアウトのオカレンスは別テーブル(グローバルフィールド)にし、編集先のテーブル(UUIDを入れるフィールド)とをリレーションします。
検索後、UUIDを改行区切りで取得し、グローバルフィールドに挿入します。

これで一応、ポータルツールで表示している先の編集したいテーブルがトランザクションを担保した上で一括編集出来るかと思います。
※勿論、OnRecordCommit をレイアウトに組み込む必要があります。

#18 2023-02-17 20:03:52

ポテチ
Guest

Re: カーソルの移動

返信が遅くなりました。

ぎょぼぼ様、アドバイスありがとうございます。
なんとなく言っていることはわかるのですが・・・

グローバルテーブルを作成して検索結果をグローバルテーブルで表示させる

編集

登録ボタンを押すことにより元のテーブルへ転記する

ということでしょうか?

#19 2023-02-20 09:08:16

ぎょぼぼ
Guest

Re: カーソルの移動

>登録ボタンを押すことにより元のテーブルへ転記する

表現のニュアンスですが、微妙に異なります。
転記するスクリプトを作成するのではなく、編集が確定されるという方が正確です。

サンプルを準備出来れば良いのですが、こちらの都合で直ぐには難しいです。
その上、分かりにくい表現で首を突っ込んでしまいすみません。


[既存レイアウト:検索内容テーブル]
検索の実行。結果の一覧表示

一フィールドで完結するプライマリーキー(若しくはUUID)を取得。

(編集開始ボタン)
編集用レイアウトへ遷移。

[編集レイアウト:新規テーブル:グローバルでリレー]
グローバルフィールドへ、改行区切りでプライマリーキーを挿入。

リレー先の検索内容テーブルが関連レコードとして取得出来る。
ポータルで表示させる。

登録ボタンを押すと、OnRecordCommitの判別結果でレコード確定出来るようにする。
(元のレイアウトへ戻る。また、キャンセルボタンでも同様。)

大まかには、このような流れを想定して投稿しました。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 603.93 KiB (Peak: 620.84 KiB) ]