みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になっております。FMP11 Mac 使用です。
親テーブルからスクリプトで子テーブルのレコードを作って、リレーションのキーとなるフィールドに値を自動入力したいのですが、うまくいきません。
弊社では、ある調査を承っています。調査はケースによりA-Fまで6種類あり、案件ごとに様々な組み合わせの調査をします。
まず調査依頼ごとに親テーブルにレコードを作成し、調査番号を割り当て、基本的な依頼情報を入力します。
A-Fはそれぞれ独自のテーブルがあり、必要に応じて調査内容を記録するレコードを作成します。
いま思えばA-Fも親テーブルで処理してしまえばよかったのでしょうが、ゴチャゴチャしそうなので別テーブルにしたことによりかえって構造が複雑になってしまいました…。
いまやりたいのは、親テーブルにて、必要な調査(A-F)にチェックを入れ、チェックのある調査のみ各子テーブルでレコードを作成し、そこに調査番号を自動入力したいのです。調査番号はリレーションのキーになっています。
ポータル構造ならばポータルレコード作成すればキーが自動で入力されますが、ポータルでない場合はどうしたら良いでしょうか?
以下のスクリプトを作ってみたのですが、キーの入力(フィールド設定)部分がうまくいきません。
If [PatternCount (調査::種類 ; "A") ≥ 1]
レイアウト切り替え[「A」(A)]
新規レコード/検索条件
フィールド設定 [A::調査番号; 調査::調査番号]
レイアウト切り替え [元のレイアウト]
End If
(↑これをB-Fについても繰り返し記述)
新規レコードは作成されますが、調査番号が自動入力されません。どのようにすればよいかアドバイスいただけると幸いです。よろしくお願い致します。
Offline
親テーブルの調査番号を変数に設定してから子テーブルにレコードを作成し、
フィールド設定で子テーブル側に設定すれば良いでしょう。
Offline
@Mozさま
早速のご回答ありがとうございます。
すみません、変数に設定するというのはスクリプト「変数を設定」して、トリガをかけておくということでしょうか?
関係あるかわかりませんが、親の調査番号フィールドは計算フィールドです。
Offline
"トリガをかけておく"というのがよく分かりませんが、[変数を設定]をスクリプトステップを利用して
変数に調査番号を設定しておき、子テーブルで作成したレコードのキーフィールドに設定すれば良いでしょう。
親テーブルの調査番号フィールドが計算でも非保存でなければ問題ないでしょう。
※子テーブルにレコードを作ったあとで調査番号が変わるようだと問題アリですが......
[このリレーションを使用して、このテーブルでのレコード作成を許可]のオプションが設定されている場合
子テーブルにレコードがない状態でフィールド設定を行うと子テーブルにレコードが作成され、キーフィールドには親テーブルのキーが入ります。
構造に問題があることを認識しているなら見直しを検討されても良いでしょうね。
Last edited by Moz (2015-01-07 23:37:31)
Offline
@Mozさま
ありがとうございます、できました!
スクリプトステップの中で変数設定するということだったんですね。
構造はいずれ気合を入れて作り直した方がいいと考えています。とりあえず時間ができるまでは手動で番号をコピペと思っていましたが、お陰様で問題がひとつ解決しました。ありがとうございました。
Offline
Pages: 1
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 509.38 KiB (Peak: 516.34 KiB) ]