AnsweredAssumed Answered

関連テーブルにレコードを追加できない

Question asked by chinatsu on Dec 24, 2018
Latest reply on Jan 7, 2019 by sago350@未来Switch

いつもお世話になっています。

 

FileMaker Pro 16 ヘルプ

こちらに「関連レコードにレコードを追加する」という項目があり

・関連フィールドをポータルに配置していない場合は、フィールドにデータを入力して、レコード外の場所をクリック、または別のレコードの選択などによってレコードを確定します。

と書かれています。そこで試したところ、レコードが無ければ作成されるのですが、同じレコードを上書きしてしまって(?)新規レコードは追加されません。

 

テスト環境:

ファイルA「顧客マスタ」(レイアウト:住所録、見積書)

顧客ID

会社

氏名

 

ファイルB「見積書」(レイアウト:見積書)

顧客ID

見積番号

顧客名

(品名、数量...)

 

があります。

顧客IDをリレーション1対多で行っています。

多である見積書テーブルには「このリレーションを使用して、このテーブルでのレコードの作成を許可」にチェックを入れました。

 

(レイアウト:)住所録には顧客マスタの全フィールドと、見積書の見積番号フィールドを配置しました。

そして見積作成ボタンを配置しスクリプトを組みます。

 

希望する動作

住所録のレイアウト上で何も入力されていない見積番号フィールドに見積番号を入力

見積作成ボタンをクリックしたら関連テーブルの見積書に顧客IDや顧客名がフィールドに設定される

関連レコードへ移動でファイルA見積書レイアウトから同じ顧客IDの一番新しく作られた見積書レコードを表示する

 

「見積書作成ボタン」スクリプト

If(IsEmpty[見積書::見積番号])

 (見積番号フィールドには何も入力されていないのでレコードは追加しない。無処理)

Else

    フィールド設定[見積書::顧客ID; 住所録::顧客ID]

    フィールド設定[見積書::顧客名; 住所録::会社&住所録::氏名]

     #↑編集出来るようにわざと顧客名フィールドを作っています。

     レコード/検索確定条件確定

     #↑ここで新規レコードが作成されていると考えていました。が、違う?

     関連レコードへ移動[関連レコードのみを表示;  テーブル:「住所録」; 使用するレイアウト:「見積書」(住所録)]

EndIf

 

実行結果は

見積書.fmp12にデータは無事格納されているが、前に同じ顧客で別の見積番号にしたものが無くなっています。(上書きされている?)

一つの顧客で一つの見積しか作れないスクリプトになっていると判断しました。

また、見積番号を入力後レコードの外をクリックしたら見積番号が変わっていました。(仕様なのでしょうがない?)

何がいけないのでしょうか?

 

初心者な質問で申し訳ありません。

 

ご回答よろしくお願いいたします。

Outcomes