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

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

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

You are not logged in.

Announcement

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


#1 2022-03-21 08:56:40

nyoro
Member

ドロップダウンカレンダーの出るタイミング

案件あたりの利益管理のアプリで、最終の原価が確定したらそれ以降営業担当者は数値を変更することができなくしたいです。

その時に、フラグをたてるための date_genkakakutei という日付フィールドに、Onobjectenter のスクリプトトリガで、

If(Get(アカウントアクセス権セット名)   =   "eigyo" and IsEmpty ( constraction::date_genkakakutei ) = 0)
カスタムダイアログ表示("あなたの権限ではこのフィールドは変更できません。")
フィールドへ移動[]
全スクリプト終了
else
フィールドへ移動[date_genkakakutei ]
end if

としたのですが、設定してあったドロップダウンカレンダーが開かない状態で停止します。

アカウントアクセス権を確認して、問題なければ入力ができるようにする場合、ドロップダウンカレンダーを表示した状態になる方法をご教授ください。

FMP19 WINMAC利用です。よろしくお願いします。

Offline

#2 2022-03-21 10:29:57

Shin
Member

Re: ドロップダウンカレンダーの出るタイミング

eigyo のアクセス権セットで、レコードの編集許可に、IsEmpty ( constraction::date_genkakakutei ) を入れておくだけで十分なのでは。
ただ、フィールドに入れてしまう(編集すると、アクセス権が... で拒否されるが)ので、それも制限したいのならば、
If ( Get ( レコードアクセス )  = 1  )
    フィールドへ移動[]
)
をOnObjectEnterで起動させればいいでしょう。

Last edited by Shin (2022-03-21 11:02:12)

Offline

#3 2022-03-22 11:27:22

ブランコ
Member

Re: ドロップダウンカレンダーの出るタイミング

nyoro wrote:

その時に、フラグをたてるための date_genkakakutei という日付フィールドに、Onobjectenter のスクリプトトリガで、

If(Get(アカウントアクセス権セット名)   =   "eigyo" and IsEmpty ( constraction::date_genkakakutei ) = 0)
カスタムダイアログ表示("あなたの権限ではこのフィールドは変更できません。")
フィールドへ移動[]
全スクリプト終了
else
フィールドへ移動[date_genkakakutei ]
end if

としたのですが、設定してあったドロップダウンカレンダーが開かない状態で停止します。

elseの記述が悪さをしているように思われます。

else
フィールドへ移動[date_genkakakutei ]

ここに分岐した場合、onObjectEnterでスクリプトが再発火してしまうので、無限ループになってしまうのだと思います。
else以下の記述を削除すれば特別な動作はしなくなりますので、目的の動作が達成出来ると思います。

Last edited by ブランコ (2022-03-22 11:27:58)

Offline

#4 2022-03-22 11:47:21

himadanee
Guest

Re: ドロップダウンカレンダーの出るタイミング

実は私もそんなようなことではないかと思って、(Shinさんの回答が出る前に)条件をフィールドが空かどうかだけに単純化してテストしてみたのですが、デバッガで見る限りフィールドへ移動で再度トリガされてる様子はありませんでした。
スクリプト実行は既にフィールドに入った後なので、再トリガはされないのでは。

しかし、この条件ではカレンダーが消える現象も出ません。
デバッガで続行しようとするとドロップダウンカレンダーを表示しているウィンドウがアクティブでなくなるせいでカレンダーが消えてしまって、現象が発生しそうな原因はつかめませんでした。

フィールドへ入ったときに実行されるスクリプトなので、
フィールドへ移動[date_genkakakutei ]
が不要ということは確かでしょう。これの前にこのフィールドから出る動作(レコード確定など)がスクリプトにあると、再トリガの問題が起こりそうです。

#5 2022-03-27 06:49:38

nyoro
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.004 seconds, 9 queries executed - Memory usage: 511.84 KiB (Peak: 516.38 KiB) ]