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

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

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

You are not logged in.

Announcement

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


#1 2020-12-05 21:54:14

ピノ
Member

レコード内の判定について教えてください。

質問をお願いします。

テーブルが デフォルト用・予約入力用・クライアント用の3つのテーブルがあります。
予約入力用のレコードは、デフォルト用のレイアウトにポータルで表示し、そこから予約入力用に予約のレコードを追加してます。

予約入力とクライアント用の2つのテーブルにはそれぞれ電話番号のフィールドがあります。
予約入力用のポータルに予約を入力した際に、クライアントのテーブルのレコード内に予約入力用の電話番号フィールドに入力した電話番号
と同じものが無い場合、予約入力用のテーブルのレコードをクライアント用のテーブルにコピーしたいです。

このように、スクリプトを設定しましたが、うまく判定しません。
-----------------------------------------------------------------------------
If[PatternCount ( List ( クライアント用::電話番号 ) ; 予約入力用::電話番号 )]

※ここで、予約入力用に入力した電話番号がクライアント用の電話番号フィールドに合うレコードがない場合
予約入力用のレコードをクライアント用のレコードにコピーをしたいです。

End If

※電話番号が合うレコードが有ればコピーを飛ばし、予約の確定のみをしたいです。
------------------------------------------------------------------------------

この動作をしたい場合、どのようにすれば、判定できますか。

Offline

#2 2020-12-05 23:13:35

Shin
Member

Re: レコード内の判定について教えてください。

運用がわかりませんが、テーブルの設計から変更した方がいいかもしれません。
予約入力テーブルも、クライアントテーブルも、顧客データを持たせるものでしょう。同じデータを別に持たせるのは、無駄です。その無駄のために、コピーという作業が発生します。
電話番号が顧客にユニークだと仮定(この仮定は非常に重要です)して、電話番号が入力されれば、それをキーにしてクライアントテーブルを参照すればいいでしょう。追加の入力があれば、関連レコードへ入力してしまえばいいです。この動きで、コピーは不要になります。

Offline

#3 2020-12-06 10:12:59

ピノ
Member

Re: レコード内の判定について教えてください。

Shinさんアドバイス頂きありがとうございます!
初心者で説明が分かりにくく申し訳ありません。

現在、
クライアント用のテーブルに
[電話番号][名前][性別]があります。
予約入力用のテーブルに
[電話番号][名前][性別] [予約日][予約時間][予約品名]
がります。

予約入力用のテーブルとクライアント用のテーブルは、電話番号でリレーションしており、
[電話番号]を入力して、クライアント用に同じ電話番号があれば、名前と性別をルックアップさせて
いました。

アドバイスの内容ですと、予約用のポータルの中にクライアント用の電話番号のフィールドを置く
ようなイメージでしょうか。

クライアント用のレコード一つに対し、電話番号に紐ずけた予約入力用のレコードは、どんどん増やしていきたいd巣。

レコードのコピーを使用せず、クライアント用のレコードの電話番号と予約入力用のレコードの電話番号
に同じものが入力されるイメージができないのですが、詳しく教えていただけますでしょうか。

初心者の申し訳ございません。
仰せのとおり[電話番号]のフィールドはユニークなものとして考えておりました。

宜しくお願いいたします。

Offline

#4 2020-12-06 10:48:21

Shin
Member

Re: レコード内の判定について教えてください。

クライアント用のテーブルは、いわゆる顧客管理ですね。
どちらのテーブルにも、[名前][性別]があるのは無駄ですし、本来不要な手間が増えます。

予約入力用のテーブルから、クライアントテーブルに[電話番号]でリレーションをはってあるようですので、予約テーブルからは、[名前][性別] は、クライアントテーブルのフィールドを関連フィールドとして参照させるといいでしょう。
また、予約入力への入力は、クライアントテーブルのレイアウトにポータルを作り、その中で入力するのが簡単です。

また、最初の入力時には、電話番号を、グローバルフィールドなどに入力させ、クライアントテーブルの中を検索するような動きを作った方がいいでしょう。電話番号のグローバルフィールドからクライアントテーブルへリレーションをはり、関連レコードとして表示させると簡単です。

最後に、電話番号は、必ずしも一意ではありません。特に携帯電話番号は番号を変更する人が結構いらっしゃいますので、その時点での検索情報としてはいいでしょうが、顧客番号としては不適です。別に顧客番号を設定し、リレーションのキーとされることをお勧めします。

Last edited by Shin (2020-12-06 10:58:57)

Offline

#5 2020-12-06 13:14:44

ピノ
Member

Re: レコード内の判定について教えてください。

Shinさん ありがとうございます。
頂いたアドバイスを参考にやってみます。

1つ教えて頂きたいのですが、ファイルメーカーで使用する、関数というか計算式ですが、複雑なものや組み合わせて記述する場合、
FM関数辞書的なものはあるのですが、どのように学習するのでしょうか?
何かのプログラムと同じ等、よろしければご教示いただけますと幸いです。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.012 seconds, 10 queries executed - Memory usage: 514.84 KiB (Peak: 519.38 KiB) ]