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

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

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

You are not logged in.

Announcement

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


#1 2018-02-02 05:47:28

pyape
Member

Excelのインポートで1対多

Excelから2つのデータ群をインポートするときに、1対多の関係でインポートしたいです
まず、1群を追加したあと、その中の、あるレコードを親として表示しているポータルのなかに
2群インポートする、というようなことはできますか?
Excelの時点で、ファイルメーカーのシリアル値などを入力すればできるのかもしれませんが、
さすがに面倒というか、非現実的な気がしますし、間違いにより、リレーションがおかしくなりそうです

さすがに2段階にわけないとできないような気がするのですが、よいアイデアはありますか?

Offline

#2 2018-02-02 09:23:36

Shin
Member

Re: Excelのインポートで1対多

テーブルを2個作ります。1群を入れるテーブルにはシリアル番号を自動で赤テイするフィールドを作り、2群のテーブルには数値フィールドをつくり、それらをリレーションしておきます。
1群をインポートしたあと、レコードを特定し、そのシリアル番号を変数に保存、2群をインポートしたら、数値フィールドを変数(1群のシリアル番号)で全置換します。

Offline

#3 2018-02-02 18:38:57

pyape
Member

Re: Excelのインポートで1対多

1群(日付データなど基礎情報がある)を伝票として2群が詳細になるようにして
一日を、1伝票としてインポートしたいときなどは、なかなか大変そうですね

Offline

#4 2018-02-02 23:57:57

Shin
Member

Re: Excelのインポートで1対多

明細側でもっているデータによっては、もっと簡単に設定できます。

Offline

#5 2018-02-03 01:31:21

pyape
Member

Re: Excelのインポートで1対多

一つ目のExcelファイルには

日付 商品名 納期
1/1  AAA  2/1
1/2  AAA  2/2
1/3  AAA  2/3
※商品名などはコードですが、質問文をわかりやすくするために
文字列にしています。今のところインポートで追加する商品名はひとつだけです

といった形式で入っていて、二つ目には

日付 個数
1/1  100
1/1  200
1/1  100
1/2  400

と入っています。これを、インポートして、
日付 商品名 を親の伝票テーブル、二つ目のExcelファイルの内、
同じ日付のものを子テーブルに追加したいです

【伝票】  ←1対多になる→ 【詳細】
日付 商品名 納期       個数
1/1  AAA  2/1         100
                              200
                             100

Last edited by pyape (2018-02-03 01:31:50)

Offline

#6 2018-02-03 08:50:21

Shin
Member

Re: Excelのインポートで1対多

同じ日付でいいのでしたら、単に両方をそれぞれのテーブルにインポートして、日付でリレーションしておくだけです。
それをポータルで表示させればいいですね。

Offline

#7 2018-02-03 16:59:26

pyape
Member

Re: Excelのインポートで1対多

インポートするだけならそれでも問題ないのかもしれませんが
ファイルメーカー上のレイアウトで
伝票番号でリレーションして1対多で入力することもあります

日付でリレーションすると日付を主キーとすることになるんですよね?

Offline

#8 2018-02-03 17:19:40

Shin
Member

Re: Excelのインポートで1対多

条件の後出しは困ります、根本から話が変わりますよ。
日付と伝票番号が 1:1 ならば、日付がリレーションのキーでも何の問題もありません。

Offline

#9 2018-02-03 17:34:16

pyape
Member

Re: Excelのインポートで1対多

わかりにくくてすみません
根本としては

Excelから2つのデータ群をインポートするときに、1対多の関係でインポートしたいです
まず、1群を追加したあと、その中の、あるレコードを親として表示しているポータルのなかに
2群インポートする、というようなことはできますか?

です
1群が伝票テーブル(親)、2群が詳細テーブル(子)
一般的にみなさんがされているような形(親と子を伝票番号でリレーションしてポータルで入力)で入力したのと
同じ結果になるようにインポート(日付を元に親子関係をつくる)したい、
という意味で書いていましたが、伝わりにくくてご迷惑をおかけしました

Offline

#10 2018-02-03 17:54:45

Shin
Member

Re: Excelのインポートで1対多

独立して作成されている2個の伝票データを統合したい、ということでしょうか。
Excel からインポートされるデータは日付のみで紐付いていて、伝票番号はFMでもつけない、という事ですか。
FM で入力されているデータにも日付は付いているはずですので、その条件ならば、紐付ける事は非常に難しいです。
また、リレーションのキーが複数になると、同じポータルでの表示はちょっと無理でしょう。別レイアウトにするか、ポータルを2個並べてどちらかに表示させる、という事になります。または、Virtual list の考え方を持って来れば、どちらも表示できますが、明細の追加が面倒ですね。

Last edited by Shin (2018-02-03 18:02:52)

Offline

#11 2018-02-03 18:46:57

pyape
Member

Re: Excelのインポートで1対多

文字ではうまく説明する能力がないみたいなので、画像を作成しました
お手数ですが、リンク先の画像をみてください

https://i.imgur.com/ZBbCn6Q.png

Offline

#12 2018-02-03 23:30:59

Shin
Member

Re: Excelのインポートで1対多

画像を見るとインポートされたレコードに、新しく伝票IDというフィールドが追加されていますが、また運用条件が変わるのですか。その番号は必須ですか?自動採番が必要ですか?手入力の時の伝票番号との関連性は?

ちょっと別の処理を行い、インポートと手入力を両立する事ができます。
Excel からのインポートは、テーブル_e へインポートしてください。インポート時には、自動入力をオンにしてください。
https://www.dropbox.com/s/103fryn787b3m … 7.zip?dl=0

Last edited by Shin (2018-02-04 18:18:30)

Offline

#13 2018-02-08 15:06:38

pyape
Member

Re: Excelのインポートで1対多

ありがとうございました

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 575.02 KiB (Peak: 591.92 KiB) ]