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

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

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

You are not logged in.

Announcement

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


#1 2020-01-23 23:38:34

睡魔と格闘中
Guest

日付フィールドを反映されるスクリプトについて

はじめまして。
FM18でイベントの管理を行っています
イベント開催中に期間が延長する事もあり現在は直接入力していますがスクリプトでコピペし簡略化を図ろうとしましたがロジックが崩壊しましたのでご相談させて下さい。

タスク管理テーブル
①自:期間
②至:期間

契約テーブル
③自:当初期間
④至:当初期間

変更契約テーブル
⑤至:変更期間
※全て日付フィールドでドロップカレンダーです。
※番号は説明の便宜上表示しています。

入力手順は①→⑤の順です
試みたスクリプトは
If [Get(スクリプト引数) = "当初期間"]

変数を設定[$kikan ; 値:①]
変数を設定[$kikan2 ; 値:②]
フィールド設定[③ ; kikan]
フィールド設定[④ ; kikan2]

Else If [Get(スクリプト引数) = "変更期間"]

変数を設定[$kikan ; 値:⑤]
フィールド設定[② ; kikan]

End If
です。

日付フィールド①と②にOnObjectModifyで引数は"当初期間"、⑤に同じトリガで"変更期間"としました

この場合、期間延長があれば(⑤に入力すれば)②に値が反映され、④にも反映されてしまいますよね??

どうすれば良いでしょうか?
アドバイスをお願いします

#2 2020-01-24 01:46:34

koeda
Member

Re: 日付フィールドを反映されるスクリプトについて

ロジックは崩壊していないと思いますよ。
⑤を手動で更新→②をスクリプトで更新→④をスクリプトで更新という連鎖を心配されているのだと思いますが、
②の更新スクリプトを実行しても、赤字の④の更新スクリプトは実行されません。

なぜなら、ヘルプにあるように

[フィールド設定]、[フィールドを名前で設定]、および [Web ビューアの設定] スクリプトステップなど、
フィールドを直接変更できるスクリプトステップでは、OnObjectModify スクリプトトリガは実行されません

https://fmhelp.filemaker.com/help/18/fm … ggers.html

つまり、⑤を 手動で更新したとき、⑤のOnObjectModifyイベントによってスクリプトが実行され②に値が反映されますが、
②のOnObjectModifyイベントは発生しない→スクリプトは実行されないので④に値が反映されることはありません。

Last edited by koeda (2020-01-24 12:14:55)

Offline

#3 2020-01-24 03:03:53

睡魔と格闘中
Guest

Re: 日付フィールドを反映されるスクリプトについて

お返事ありがとうございます


実際にやってみたら仰る通り④は反映されませんでした!
念のため引数"当初期間"を"自"と"至"で分割し、ドロップカレンダーにしているので誤入力予防に④の値がある時はスクリプトを終了するように致しました。

トリガを実行しないヘルプは知らなかったので勉強になりました!

ようやく安心して床に就けます。
本当にありがとうございました!

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.011 seconds, 10 queries executed - Memory usage: 505.96 KiB (Peak: 510.87 KiB) ]