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

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

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

You are not logged in.

Announcement

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


#1 2019-11-27 07:03:14

Koto
Member

転記する場合のスクリプトの分岐について

宜しくお願いします
FMP18

テーブルαのポップオーバーボタン内にテーブルβの期限日、期限時刻フィールドを配置し、カレンダーテーブル(テーブルγ)に転記しようとしておりますが
頭の中がこんがらがってしまい皆様のお知恵をお借りしたく投稿させてください


テーブルα
ID
フラグA、フラグB、フラグC、フラグD、フラグE、フラグF

テーブルβ
期限日A、時刻A
期限日B、時刻B
期限日C、時刻C
期限日D、時刻D
期限日E、時刻E
期限日F、時刻F
※期限日はドロップダウンカレンダー、時刻は直接入力
※時刻は空欄の場合もあります

テーブルγ
外部キー
日付、時刻、用件

変数を設定[$id ; テーブルID]
レイアウト切り替え[テーブルγ ; なし]
新規レコード
フィールド設定[テーブルγ::外部キー ; $id]
If[Get(スクリプト引数) = "A"]
 フィールド設定[テーブルα::フラグA ; 1]
 フィールド設定[テーブルγ::用件 ; "A" ]
 変数を設定[$date ; 値 : テーブルβ::期限日A]
 変数を設定[$time ; 値 : テーブルβ::時刻A]
Else If[Get(スクリプト引数) = "B"]
 フィールド設定[テーブルα::フラグB ; 1]
 フィールド設定[テーブルγ::用件 ; "B" ]
 変数を設定[$date ; 値 : テーブルβ::期限日B]
 変数を設定[$time ; 値 : テーブルβ::時刻B]
Else If[Get(スクリプト引数) = "C"]
 フィールド設定[テーブルα::フラグC ; 1]
 フィールド設定[テーブルγ::用件 ; "C" ]
 変数を設定[$date ; 値 : テーブルβ::期限日C]
 変数を設定[$time ; 値 : テーブルβ::時刻BC]
Else If[Get(スクリプト引数) = "D"]
・
・
同じ様にE、FがElse Ifで続きます
・
・
End If
フィールド設定[テーブルγ::日付 ; $date]
フィールド設定[テーブルγ::時刻 ; $time ]
関連レコードへ移動[関連レコードのみを表示 ; テーブル:テーブルα]
オブジェクトへ移動[オブジェクト名: "提出期限日"]   ←ポップオーバーボタンの名前です

現在は転記用のボタンを配置しており転記しておりますが入力時にトリガで転記したいと思い、
ポープオーバーボタン内の期限日、時刻フィールドにトリガを仕込もうと考えておりますが、
期限日(ドロップカレンダー)、時刻(直接入力)にトリガを仕込んで順に入力した場合、
今のステップでは同じ内容のレコードが出来る(期限日のみ、期限日・時刻の両方)ので判別が必要かと思いますが、判別の計算式がわかりません。。



どうかお知恵をお貸し頂けますでしょうか
宜しくお願いします

Offline

#2 2019-11-27 08:48:39

Shin
Member

Re: 転記する場合のスクリプトの分岐について

動きがよくわかりませんが、入力済みの情報をポップオーバーに表示して、それを加工した上で新しいレコードを作りたい、という事でしょうか。
おそらく、トリガーを変更すればいいのでは。OnObjectExit あたりにしてみるとか。

Offline

#3 2019-11-27 09:33:32

チポ
Member

Re: 転記する場合のスクリプトの分岐について

私もよく理解していませんが、
期限日、時刻両方に同じスクリプトを当てているからでは?

期限日には、
時刻の入力を促すようなスクリプトにすればいいのでは。

Offline

#4 2019-11-27 11:48:47

Shin
Member

Re: 転記する場合のスクリプトの分岐について

具体的な業務を知りたいのですが。想像するに、
テーブルβは、あらかじめA~Fに対しての期限日時が設定されている、
テーブルαに新規レコードを作り、そこに用件を設定し、その用件に相当する日時と合わせて、テーブルγへ設定する、という動きでしょうか。

構造を含めて、かなり簡略化できると思います。
まず、テーブルαは不要でしょう。
テーブルβは、用件(フラグ)、期限日、期限時刻 の3フィールドを持たせておき、6レコード作成します。
フラグは、テーブルβの用件を使った値一覧にしておけば十分です。

テーブルγとテーブルβの用件をリレーションし、期限日時はテーブルβからルックアップします。
これで、テーブルγに新規レコードを作成、用件を値一覧で設定、だけで同じ動きになるはずです。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 509.27 KiB (Peak: 516.16 KiB) ]