1 2 前へ 次へ 28 返信 最新の回答 日時: Oct 27, 2016 9:06 PM ユーザー:glass

    顧客カードに関連する家族を表示させたい

    glass

      pro advanced12  win8.0
      顧客管理システムを作っています。

      顧客レイアウト表示のときに、
      それぞれの顧客カードに、関連する家族の顧客コードと家族コードと名前を表示させたい(ポータル?)。
      まず何をすればよいのかご教授よろしくお願いします。

       

      内容
      下記のテーブルとフィールド、レイアウトがあります。

      テーブル名:顧客
      フィールド名:顧客コード 名前 郵便番号 住所 家族コード
      レイアウト名:顧客レイアウト(フィールド全表示)

       

      例えば、家族3名のお客さまがいます。
      それぞれ顧客コードは違いますが、家族コードがあり001-1 001-2 001-3と割り振っています。
      他の家族は、002-1 002-2 002-3となります。

      顧客コード 名前 家族コード

      1001 田中太郎  001-1
      1025 田中花子  001-2
      1200 田中奈々子 001-3

        • 1. Re: 顧客カードに関連する家族を表示させたい
          shin

          家族コード 001-1 を、本来の家族コード 001 とその枝番 1 に分けて、別々のフィールドに格納しておきます。今の家族コードとして使用する時には、 家族コード & "-" & 枝番 で結合させれば良いでしょう。

          家族コードで自己リレーションを張り、ポータルで表示させれば、家族が表示されます。自分自身も含まれますので、ポータルフィルターでコントロールすれば良いでしょう。

           

          ですが、私が作るとすると、世帯、というテーブルを作り、郵便番号 住所 家族コード など共通項目を保存します。その家族コードを使って、その構成員を、家族 というテーブルに格納する様にするでしょう。

          • 2. Re: 顧客カードに関連する家族を表示させたい
            glass

            お世話になります。ありがとうございます。

            家族コードはそのままでいきたいのですが無理でしょうか。

            テーブル名:顧客 フィールド名:顧客コード 名前 郵便番号 住所 家族コード

            新たに家族リストテーブルをつくり、フィールド名 家族コード 顧客コード 名前。

            家族コードでリレーションしました。

            これですと、家族テーブルの家族リストに001-1と入力すると顧客コード、名前が表示されます。

            ちょっとおもっているのと違います。

             

            元の顧客レイアウトに格納(ポータル)して自動に表示させたいのです。

            ちょっとしたことが理解できなくて申し訳ありません。

            例題があると理解できると思うのですが、素人で申し訳ありません。

            • 3. Re: 顧客カードに関連する家族を表示させたい
              hajime

              枝番つきの家族コードをそのまま利用したいということですと、その家族コードからハイフンよりも前の値を切り出した計算フィールドを設け、その計算フィールドでリレーションさせるとポータルに希望通り表示出来ると思いますよ。

               

              切り出し用計算フィールドの計算式はこんな感じです。

              Left(家族コード;Position(家族コード;"-";1;1)-1)

              • 4. Re: 顧客カードに関連する家族を表示させたい
                shin

                GetValue ( Substitute ( 家族コード ; "-" ; ¶ ) ; 1 )

                としても求められます。

                最後を 2 に変更すると、枝番が求められます。

                 

                コード体系は、何を中心に考えるか、ですが、世帯、という概念を入れる必要がありと思いますので、世帯を区分するコードが必要になります。そのコードがリレーションの重要なキーになるのですから、各レコードはそのキーを持っている必要があります。さらに、そのリレーションを使って関連レコードを作成できた方が便利でしょうから、そのフィールドは計算フィールドでは駄目でしょう。

                その意味で、私が提案している構造で作ると、今のコードはリレーションを通して直接作る事は出来ず、手入力になってしまい、さらに、リレーションキーにもなり得ないので、世帯テーブルのポータルから家族を入力する事は出来なくなります。

                変更される事をお勧めします。

                • 5. Re: 顧客カードに関連する家族を表示させたい
                  glass

                  お世話になります。ありがとうございます。

                  話を少しリセットします。自分自身理解ができていません。

                  まず、家族2というテーブルで、フィールトは、顧客コード 家族コード 名前をつくりました。

                  既存の顧客テーブと家族2テーブルを下記のようにリレーションしました。

                  顧客コード= 顧客コード

                  名前= 名前

                  そして、家族リストテーブルをつくりフィールドは顧客コード 家族コード 名前です。家族2の家族コードとリレーションしました。

                  それを既存の顧客テーブルにポータルで貼り付けました。計算式も入力しました。

                  そんなことをしなくても良いということですか? (何も表示されませんでした)

                   

                  Left(家族コード;Position(家族コード;"-";1;1)-1)の計算式は、はじめの3ケタをみて

                  関係するものをリスト化するものでしょうか。

                  いまひとつ理解ができなくて申し訳ありません。

                  • 6. Re: 顧客カードに関連する家族を表示させたい
                    hajime

                    glass による書き込み:

                     

                    お世話になります。ありがとうございます。

                    話を少しリセットします。自分自身理解ができていません。

                    まず、家族2というテーブルで、フィールトは、顧客コード 家族コード 名前をつくりました。

                    既存の顧客テーブと家族2テーブルを下記のようにリレーションしました。

                    顧客コード= 顧客コード

                    名前= 名前

                    そして、家族リストテーブルをつくりフィールドは顧客コード 家族コード 名前です。家族2の家族コードとリレーションしました。

                    それを既存の顧客テーブルにポータルで貼り付けました。計算式も入力しました。

                    そんなことをしなくても良いということですか? (何も表示されませんでした)

                    最初の質問内容に書かれていることからすると、顧客テーブルに家族のレコードも存在しているようですので、家族2というテーブルは不要だと思います。

                    顧客テーブルを元に自己リレーションで表現できます。

                     

                    Left(家族コード;Position(家族コード;"-";1;1)-1)の計算式は、はじめの3ケタをみて

                    関係するものをリスト化するものでしょうか。

                    いまひとつ理解ができなくて申し訳ありません。

                    桁数は変わる可能性があるので、この計算式だとハイフンの前までの文字列を切り出しています。

                    単純に3桁切り出すのであれば、Left(家族コード;3)と記述できますよ。

                     

                     

                    FileMakerだけで構成されたシステムとして考えた場合は、shinさんの書かれている通り枝番付きの家族コードではポータル行の追加で家族の追加が出来なくなってしまうので、あまり良い構成では無いと私も思います。

                     

                    家族コードをそのままにしたい理由にも寄るかと思いますが、あとから修正するのは大変になるので、今のうちに再検討してみるのが良いかと思います。

                    • 7. Re: 顧客カードに関連する家族を表示させたい
                      shin

                      運用を教えてください。

                      メインの顧客に対して、その家族情報は単なる情報だけでしょうか。それとも、その家族も顧客として考えているのでしょうか。

                      もし、メインの顧客がその家族から移動した場合、家族情報はどうするのでしょうか。全て消去、それともその一人をメインの顧客に変更(この場合、全情報の再入力が必要になりますね)

                      • 8. Re: 顧客カードに関連する家族を表示させたい
                        glass

                        お世話になります。

                        そんなに家族数はないので、shinさんのおっしゃるように

                        家族コード 001 とその枝番 1 に分けてする方法を検討したいと思います。

                        でも、まだどのようにすればよいのか理解できていませんので、今晩じっくり考えたいとおもいます。

                        ご親切にありがとうございます。

                        • 9. Re: 顧客カードに関連する家族を表示させたい
                          glass

                          おせわになります。

                          商品を購入された方、個々に顧客情報が入力されています。購入した人だけ入力されています。

                          下記の場合は、それぞれの顧客コードで管理されて購入された商品の情報が入力されています。

                          1001 田中太郎 001-1

                          1025 田中花子 001-2
                          1200 田中奈々子 001-3

                          現在は、ご来店されたときに、名前で検索して、例えば家族コード001-1や010-2など表示されていたら

                          家族の購入があると理解し、それから001でもう一度検索して、顧客カード番号を確認して

                          どんなものをご購入されたか内容をみています。

                          パソコンの情報をみたり、別に紙の顧客カードをみて確認しています。時間がかかっています。

                           

                          例えば、田中太郎さんで検索して、そのカードに家族の顧客カード番号、名前が表示するようにしたいと考えています。

                          田中花子さんで検索しても、他の二人が表示され、田中奈々子も同じく他の二人が表示されるようにしたいと考えています。

                           

                          個々に顧客カードがあるので、消去はあまりないと思います。

                          消去して大丈夫と思うのですが、不具合がおこるのでしょうか。

                          長くなりまししたがこんな感じです。よろしくお願いいたします。

                          • 10. Re: 顧客カードに関連する家族を表示させたい
                            shin

                            顧客カードの消去その物は、無しにしておいても良いかと思いますが、その世帯のメインになっている方(枝番が1の人)が結婚等で世帯から離れる、という事は十分考えられると思います。その際に、残りの人はどうなるのでしょう。上で提示されている構造ですと、残りの人を引きつれて別世帯が足されていくか,世帯代表の無い家族レコードが出来てしまいますね。

                             

                            世帯、というテーブルを中心にして作ると、このような事ができる、というサンプルです。

                            グローバルフィールドから張るリレーションを足しておいて,それで顧客毎の情報を表示する様に作ってあります。このために、逆に構造がシンプルになりました。

                            Dropbox - community166779.fmp12.zip

                            (サンプルにしては、作り込みすぎたかも)

                            • 11. Re: 顧客カードに関連する家族を表示させたい
                              glass

                              お世話になります。

                              短時間の間に、こんなにすごいサンプルにびっくりしています。

                              家族コードの枝番は手入力にしたり、あとアレンジしたいと思います。

                               

                              サンプルで、顧客レイアウトで世帯レイアウトへとぶボタンをつくりました。

                              ただ、前回の家族コード主番を記憶しているのか、今表示されている家族コード主番へ

                              とばなく、スクリプト??でそのコードへとぶように考え中です。

                               

                              まだ、どのような構造で動いているの解読中で、自分にあうように

                              変更していきたいと思っています。ありがとうございます。

                              • 12. Re: 顧客カードに関連する家族を表示させたい
                                hajime

                                要望内容に対して、あまり構造変更せずに実現する場合のサンプルを作成してみましたので、よろしければ参考になさって下さい。

                                 

                                引っ越した場合に、家族全員の住所も合わせて更新するなどを実現したい場合は、世帯で管理するのが良いでしょうね。

                                • 13. Re: 顧客カードに関連する家族を表示させたい
                                  shin

                                  > 顧客レイアウトで世帯レイアウトへとぶボタン

                                  顧客一覧で、顧客の行をクリックすれば、その世帯レイアウトへ移動し、その顧客の個人データが表示される様に組み込みました。(公開ファイルの更新を忘れていました)

                                   

                                  枝版に付いては、顧客コードの順で枝番が振られる様になっていますが、例えば、主顧客、などのフィールドを含めた採番も可能です。リレーションの設定とソート順を変えるだけですので、試してみてください。

                                  • 14. Re: 顧客カードに関連する家族を表示させたい
                                    glass

                                    お世話になります。

                                    構造を変更せずにシンプルでいいですね。

                                    世帯で管理がするのが良いのかなあと迷います。

                                    ありがとうございます。

                                    1 2 前へ 次へ