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

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

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

You are not logged in.

Announcement

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


#1 2014-04-18 10:47:30

オレンジ
Guest

フィールド内容の渡し方(他テーブル・レイアウトへ)

拙い文章でわかりにくいかもしれませんが、お許し願います。

Windows7   FileMakerPro12  初心者です。

テーブルAでおもに作業します。
メインの人物とサブの人物の2名のフィールドがあります(もちろん他多数フィールドも)。
それぞれの個人情報はテーブルBからリレーション表示しています。
個人情報に変更があった場合、テーブルAで上書きするのではなく、関連レコードの表示でテーブルBにとび、なおかつ、
履歴を残すため、レコード複製したものに修正加えるようにします。

<現在考えている設定>
テーブルAの個人情報はフィールド入力できないようにする
テーブルBは自己リレーションさせ、ポータルを縦に表示4列用意して、1行ずつ表示、それぞれ最初の行を1-4に。
作成タイムスタンプの降順でソートし、最新のものがテーブルAに表示される。
連絡先が以前のものに戻ることが多々あるので、レコード複製は履歴からいちばん修正少なく済むものを自分で選び複製。

ここから本題の質問です。
新規登録の人物の場合は関連レコードがないので、画面が遷移しませんが、同じようにテーブルBに移動⇒情報入力したい。
移動した時点で、新規レコード作成され、その氏名フィールドにはテーブルAで入力した氏名がはいっているようにしたいです。

スクリプト内容は変数にテーブルA氏名を渡し、テーブルBでフィールド設定する方法です。
が、うまくいきません。
試しにテーブルAのフィールドに設定したところ、きちんと表示されました。
今設定しているスクリプトです。

エラー処理[オン]
変数を設定[$なまえ;値:A::氏名]
関連レコードへ移動[関連レコードだけを表示;テーブル:「B」;使用するレイアウト:「B」;新規ウインドウ]
If[Get(最終エラー)<> 0]
新規ウインドウ[]
レイアウト切り替え[「B(B)」]
新規レコード/検索条件
フィールド設定[B::氏名;$なまえ]
End If
エラー処理[オフ]

スクリプトのどこがよくないのか教えていただけると幸いです。
また、初心者なため、まず考え方の誤りのご指摘も出てくると思いますが、改善点と合わせてご教示いただけると助かります。

#2 2014-04-18 11:56:59

Layouter
Guest

Re: フィールド内容の渡し方(他テーブル・レイアウトへ)

なければ先に作ってから処理した方がシンプルでは。
リレーションでBに「レコード作成を許可」しておいて、
If[Count(B::氏名)=0]
フィールド設定[B::氏名;A::氏名]
レコード確定[ダイアログなし]
EndIf
関連レコードへ移動
~~~

#3 2014-04-18 12:58:30

オレンジ
Guest

Re: フィールド内容の渡し方(他テーブル・レイアウトへ)

Layouterさまありがとうございます。
ただし、うまくいきません。動きません。
If[Count(B::氏名)=0]はBテーブルにレコードがゼロという条件の気がしてしまうのですが。

#4 2014-04-18 13:42:17

Layouter
Guest

Re: フィールド内容の渡し方(他テーブル・レイアウトへ)

Aで実行するので、Bテーブルに関連レコードがゼロの意味です。

#5 2014-04-18 13:55:05

オレンジ
Guest

Re: フィールド内容の渡し方(他テーブル・レイアウトへ)

先に提案いただいたもの、ほかもいろいろ試しているのですが、どうしても実行されている感がありません。
とても基本的な部分が欠落していると思われますが、そこが見当つかず困っています。
また、フィールド設定はレイアウト(テーブル)が違ってもすんなりいくものなのでしょうか。

#6 2014-04-18 14:16:25

nshr
Guest

Re: フィールド内容の渡し方(他テーブル・レイアウトへ)

AとBのリレーションはどうなっていますか?
スクリプトはAのレイアウトで実行していますか?

#7 2014-04-18 14:21:58

オレンジ
Guest

Re: フィールド内容の渡し方(他テーブル・レイアウトへ)

AとBはそれぞれの氏名フィールドでリレーションしています。
本当は同姓同名対策もしたいのですが、まだそこは考えずリレーションにANDで加えていません。
スクリプトはAで実行しています。

#8 2014-04-18 14:44:59

チポ
Member

Re: フィールド内容の渡し方(他テーブル・レイアウトへ)

横から、、


ここで言う、
テーブルA,Bはテーブル定義のテーブル名ではなく、
リレーションシップグラフでのテーブル名です。

間違い有りませんか?

Offline

#9 2014-04-18 15:04:19

nshr
Guest

Re: フィールド内容の渡し方(他テーブル・レイアウトへ)

FM12でオレンジさんとLayouterさんのスプリクト試しましたが、両方動きましたよ。
チポさんの言われているようにテーブル名が違っているのかもしれませんね。
Bは自己リレーションしているとのことなので、少なくともBはグラフ内に2つあるようですし。

それでも動かないようならスプリクトを1ステップずつ試してみると何かわかるかも。

#10 2014-04-18 15:22:31

オレンジ
Guest

Re: フィールド内容の渡し方(他テーブル・レイアウトへ)

チポさま、nshrさま
はい、テーブル名が誤っておりました。きちんと動きました。ありがとうございました。

Layouterさま
教えていただいたスクリプト使用させていただきます。シンプルにいけて助かりました。

基礎レベルの低さが恥ずかしいです。ヘルプやテキストやここでもっと勉強していきたいと思います。

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 567.34 KiB (Peak: 583.22 KiB) ]