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

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

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

You are not logged in.

Announcement

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


#1 2016-04-01 21:15:49

CUB
Guest

ポータル行を同じテーブル内にコピーするには

こんばんわ。OSX 10.11 & FMPADV14でパンの宅配の注文受付システムを構築中です。

構造は、よくあるタイプの「注文テーブル(親)」、「注文明細テーブル(子)」です。

基本的に毎朝お客様より御注文を頂戴するごとにデータを入力するのですが、お客様によっては明日から1週間毎日宅配して欲しい旨の御注文があります。
その場合、御注文内容が全く同じと仮定して、同じ内容の注文データを7個作りたいと思っています。

親データはレコードの複製でやるとしても、子データ(明細行)も一緒にコピーするにはどうしたらよいのでしょうか?

色々と探してみたのですが、違うテーブルにポータル丸ごとコピーのやり方は見つけたのですが、同じテーブル内でのコピーはやり方が分かりませんでした。

今、考えている要件としては、
1. まず通常通りの注文データを作成
2. その入力画面上にあるボタンを押すと、
3. 開始日と終了日の入力ダイアログを表示し、
4. その日数分の注文データを作成する

以上のことを実現したいのですが、皆様からのアドバイス、よろしくお願い致します。

#2 2016-04-02 10:46:21

チポ
Member

Re: ポータル行を同じテーブル内にコピーするには

「だるま落とし」と呼ばれる方法をShinさんが考案しています。
これをキーワードでここを検索するとでてきますよ。

Offline

#3 2016-04-02 13:50:27

CUB
Guest

Re: ポータル行を同じテーブル内にコピーするには

ありがとうございます!早速アタックしてみます!

#4 2016-04-03 01:24:33

Shin
Member

Re: ポータル行を同じテーブル内にコピーするには

明細が1行だけでしたら、注文テーブルでレコードを作ってしまい、それを明細側にインポートし、明細行データを全置換してしまった方が簡単かも。
複数行の場合は、伝票側に繰り返し計算グローバルフィールドを作り、明細データをそこに展開しておく。伝票側で日付を設定したレコードを作り、明細側へ繰り返しを分けてインポート、という方法がとれるかも。

変数を設定 [ $item; 値:List ( 伝票明細::商品 ) ] 
変数を設定 [ $qty; 値:List ( 伝票明細::数量 ) ] 
新規ウインドウ [ ] 
レコード/検索条件複製 
フィールド設定 [ 伝票::日付; 伝票::g_日付 ]
全レコードを表示 
レコードを対象外に 
対象外のみを表示 
Loop
 Exit Loop If [ 伝票::日付 ≥ 伝票::g_日付[2] ] 
 レコード/検索条件複製 
 フィールド設定 [ 伝票::日付; 伝票::日付 + 1 ]
End Loop 
レイアウト切り替え [ 「伝票明細」 (伝票明細) ]
レコードのインポート [ ソース: 「file:joy-h4402.fp7」; ターゲット: 「伝票明細」; 方法: 追加; ... ][ ダイアログなし ]
ウインドウを閉じる [ 現在のウインドウ ]

https://www.dropbox.com/s/ono8encrlup1w … 7.zip?dl=0
明細データを持たせるグローバルフィールドでのデータの展開方法が面白いですよ。変数に持たせた改行区切りの文字列を、繰り返し毎に展開させています。

Last edited by Shin (2016-04-03 15:16:03)

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 508.76 KiB (Peak: 514.7 KiB) ]