みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
初心者です。いろいろ調べましたがわからず、ご教授ください。
よろしくお願いします。
win7 filemaker16使用しています。
テーブルがA,B,Cと3つあります。
AとBはリレーションを組んでいます。
BとCもポータル表示をするためリレーションを組んでいます(BテーブルにはポータルでCのデータが表示されるよう)。
訳があり、Bテーブルに表示されているポータル内に設置されている一つのフィールド(Cテーブルのフィールド)を上の行から順番にAテーブルの一つのレコードに貼り付けたいと考えております。
Bテーブルの1行目にデータがあれば、AテーブルのフィールドA
Bテーブルの2行目にデータがあれば、Aテーブルの上記と同じレコードのフィールドB
Bテーブルの3行目にデータがあれば、Aテーブルの上記と同じレコードのフィールドC
こういった具合にポータル20行ほどのデータを上から順番にAテーブルの同一レコード内(別フィールド)に貼り付けるにはどうすればよろしいでしょうか。
どうぞよろしくお願いいたします。
Offline
AとB、BとCのリレーションによると思いますが、それが一意のものでしたら、GetNthRecord() を使った計算フィールドにしたら良いでしょう。そうでなければ、その計算を使ったスクリプトでフィールド設定すれば良いです。
Offline
Shinさん早速のお返事ありがとうございました。
テーブルAとテーブルCには、リレーションを組んでいませんが、こちらも設定した方がよろしいでしょうか?
教えていただいたことを自分なりにやってみたのですが、フィールド設定をしたターゲットフィールドが下記スクリプトを設定すると『?』が表示されます。
どこが間違っていますでしょうか。
1.フィールド設定[A::A];GetNthRecord ( C::D ; Get ( レコード番号 ) )
2.フィールド設定[A::B];GetNthRecord ( C::D ; Get ( レコード番号 )+1 )
3.フィールド設定[A::C];GetNthRecord ( C::D ; Get ( レコード番号 )+1 )
4.フィールド設定[A::D];GetNthRecord ( C::D ; Get ( レコード番号 )+1 )
・
・
・
20.フィールド設定[A::T];GetNthRecord ( C::D ; Get ( レコード番号 )+1 )
よろしくお願いします。
Offline
そもそもの考え方があっていない様な気がして、詳細を記載させていただきます。Bテーブルのポータル内には、プロジェクトチームを管理するテーブルが用意されており、ポータルにはチームに参加する従業員が表示される様になっています。プロジェクトチームに参加する従業員が増えるたびに、Bのポータル行が増え、Cテーブルのフィールドも追加されて行きます。
今回したいのは、このプロジェクトチーム名と従業員の名前等をリスト表示させる印刷画面を作りたいのですが、ポータル設定だとリスト表示ができないため、ポータルには表示された20名の従業員を、テーブルAのフィールドA、フィールドB…フィールドTと20個作り、フィールド設定か何かでデータを貼り付けたいと思っております。
何か良い手立てはないものでしょうか。
よろしくお願いします。
Offline
その作り方ですと、チームのメンバー数が変わるたびに作り直しですね。そのような構造そのものが正しく無いです。
各テーブルの内容が分かりませんが、構成を変えた方が良いのでは。
> ポータル設定だとリスト表示ができないため
リスト表示も出来なくも無いですが、それより、ポータル先に、関連レコードへ移動、で表示させれば、リスト表示は容易でしょう。これに、チーム名などを表示させれば十分だと思います。
最終的に何をしたいのかわかりませんが、プロジェクトテーブルと従業員マスターテーブルを作り、チーム構成テーブルにプロジェクト管理番号と従業員番号を格納するだけで良いと思います。
Offline
[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 557.95 KiB (Peak: 582.02 KiB) ]