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

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

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

You are not logged in.

Announcement

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


#1 2014-01-21 20:11:47

Samu
Member

ドロップダウンリストの値一覧の値追加について

こんばんは。FMP12Adです。
薬名のリストを作っています。「A」テーブルのフィールドに薬名のフィールド「a」を作り、ドロップダウン形式で選択もしくは追記できるようにしています。「a」の値一覧は「B」テーブルの「b」フィールドを用意しました。「a」のドロップダウンの値一覧に「b」を指定しています。

例えば、「a」の一覧にない薬名がある場合はそのままaフィールドにテキストを入力し、フィールドから移動したときに「b」に入力したテキストのレコードを追加して値一覧を更新することはスクリプトで出来ますでしょうか?もしくは「a」の内容を「b」で検索して見つからないときは「B』のレコードに追加することは可能でしょうか?

Offline

#2 2014-01-21 21:30:53

Shin
Member

Re: ドロップダウンリストの値一覧の値追加について

逆に、フィールドbにあるものは、必ずフィールドaにありますか。

Offline

#3 2014-01-21 22:57:07

Hiro
Member

Re: ドロップダウンリストの値一覧の値追加について

「A::a」と「B::b」とで[=]リレーション、と同時にテーブルBへのレコード追加の許可も設定しておきます。

「A::a」フィールドExitした時のトリガスクリプト、

  ・If [関連レコード「B::b」が「無」なら]
  ・ フィールド設定 [B::b; 値:A::a]
  ・End If

で、新規薬名ならテーブルBに新規レコードを自動追加します。
これを受けて、値一覧の内容も自動更新されます。

Offline

#4 2014-01-22 10:17:07

Samu
Member

Re: ドロップダウンリストの値一覧の値追加について

>>#2
ありがとうございます。bにあるものはaにあるかと思います。

>>#3
なるほどそのようにすればいいのですね。

ということは、実はaフィールドはAテーブルのレコードの加減で同じ仕様のフィールドが14個あるので、「B::b』とのリレーション、トリガスクリプトをAテーブルのそれぞれのフィールドに設定してやればいいですね。
あ、ということはスクリプトはそれごとにいりますかね?

Offline

#5 2014-01-22 10:34:14

tuner
Guest

Re: ドロップダウンリストの値一覧の値追加について

フィールド設定 [A::グローバルフィールド; 値:Get ( アクティブフィールド内容 )]
としてグローバルをリレーションに使うと、1つで済むかな?

#6 2014-01-22 13:07:39

Hiro
Member

Re: ドロップダウンリストの値一覧の値追加について

ExecuteSQL関数でリレーションの代替ができるので、式を汎用を考慮して抽象化すれば1本の計算式で代替できます。
同じようにトリガスクリプトも汎用スクリプトを組めば1本のスクリプトで済みます。

Offline

#7 2014-01-22 13:10:46

Samu
Member

Re: ドロップダウンリストの値一覧の値追加について

>>#5
ありがとうございます。なるほど、試してみます。

Offline

#8 2014-01-23 14:40:51

Samu
Member

Re: ドロップダウンリストの値一覧の値追加について

>>#6
ありがとうございます。ExecuteSQL関数がまだよくわかってないのでとりあえず、tunerさんの方法を試してみようと思います。

Offline

#9 2014-01-23 14:59:57

Samu
Member

Re: ドロップダウンリストの値一覧の値追加について

すいません。一つ教えてください。
スクリプトを作っているのですが、「If [関連レコード「B::b」が「無」なら]」このスクリプトステップの作成方法がいまいち分かっていません。

計算式にどのように入力すればいいのでしょう?

Offline

#10 2014-01-23 15:08:52

Hiro
Member

Re: ドロップダウンリストの値一覧の値追加について

Samu wrote:

「If [関連レコード「B::b」が「無」なら]」このスクリプトステップの作成方法がいまいち分かっていません。
計算式にどのように入力すればいいのでしょう?

Count(B::b)=0  とか

Offline

#11 2014-01-23 15:09:15

tuner
Guest

Re: ドロップダウンリストの値一覧の値追加について

If [Count(B::b)=0]
とか
If [not IsValid(B::b)]

無条件にフィールド設定しても、同じ値で書き換えるだけなので、あんまり問題ないかも。

#12 2014-01-23 22:36:40

Samu
Member

Re: ドロップダウンリストの値一覧の値追加について

皆さんありがとうございます。
無事できました。
参考のため僕の書いたスクリプトトリガ記載しておきます。
1.Aテーブルにグローバルフィールドを作りBテーブルのbフィールドとリレーション
-スクリプト-
フィールド設定[A::グローバルフィールド;値:Get(アクティブフィールド内容)]
if[Count(B::b)=0]
    フィールド設定[B::b;値:A::グローバルフィールド]
    レコード確定
end if

でできました。一応Bテーブルのソート方法なども考えていかないといけませんが使用環境がMacとWin両方で使用するため、ふりがなでもIMEとことえりの問題があるので何か別の方法で実現しようかと思案中です。

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, 7 queries executed - Memory usage: 521.72 KiB (Peak: 526.26 KiB) ]