みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
FMPro13 Mac
商品マスタの中に区分、会社名、商品、金額という4つのフィールドがあります。
区分というフィールドには数字が入りますが、同じ種類の商品に同じ番号を振るので、重複します。
この中で、区分を一つ目のポータルに表示させ、
会社名、商品、金額を二つ目のポータルに表示させたいと思っています。
動きや表示内容としては、一つ目のポータルには区分の数字を重複しないように表示させ、その数字をクリックすると、
二つ目のポータルに、その区分の数字が登録されている会社名、商品、金額を表示させたいです。
分かりにくい質問で申し訳ありません。宜しくお願いします。
区分は、ポータルにせずに値一覧で、ドロップダウンリストかラジオボタンで入力させれば如何でしょう。
その値一覧に、商品マスターの区分を使えば、重複は表示される事は有りません。
そのフィールドと商品マスターをリレーションすれば、ポータルとして該当レコードが表示されます。
Offline
Shin様
ご回答ありがとうございます。ポータルを使わなくてもできるんですね。
>そのフィールドと商品マスターをリレーションすれば、ポータルとして該当レコードが表示されます。
これは自己リレーションをすればよいのでしょうか。
つなぐフィールドはどのフィールドでも大丈夫でしょうか。
また、リレーションは=で繋ぎますか?
よろしくお願いします。
新たにご相談なのですが、よろしくお願いします。
他のレイアウトなどの兼ね合いで、フィールドを一部移すことになってしまいました。
区分、商品名→商品マスタ
会社名、金額→契約マスタ
リレーションは教えて頂いたやり方(多分合っていると思います)
>そのフィールドと商品マスターをリレーションすれば、ポータルとして該当レコードが表示されます。
で、区分と区分を自己リレーションして、ポータル設定を商品マスタにしました。
うまく表示されるようになったのですが、契約マスタに会社名と金額を移した後、
その会社名と金額フィールドの部分がポータルに表示されなくなってしまいました。
契約マスタと商品マスタのリレーション方法を教えて頂けないでしょうか。
よろしくお願いします。
すみません、できました!!
お忙しいところご回答ありがとうございました。
先日ご質問させて頂き、一度完成したのですが、最初の区分をプルダウンではなくポータルにして欲しいとの改善案が出されてしまいました。
プルダウンのように選んでから下に開くのではなく、元から一覧が出ている状態が良いとのことです。
何かアドバイスございましたらお願いします。
商品マスタの区分で自己リレーションして、
IDやシリアル番号などユニークなフィールドを作ります。
計算フィールド
商品マスタ::ユニーク = 商品マスタ 自己リレーション::ユニーク
とすると、同じ区分のレコードの内一つだけに 1 が入力されます。
これをポータルフィルタの条件にすればいいでしょう。
Offline
チポ様
>計算フィールド
商品マスタ::ユニーク = 商品マスタ 自己リレーション::ユニーク
というのは、そのユニークなフィールドを計算フィールドにして上記の式を入れるということでしょうか。
ポータルの条件というのはポータルのフィルタでしょうか?そこに入れるのは
商品マスタ::ユニーク = 1
で間違いないでしょうか。
ユニークなフィールドとは別の計算フィールドです。
その計算フィールドの計算式を
商品マスタ::ユニーク = 商品マスタ 自己リレーション::ユニーク
とします。
ポータルを表示するリレーションは
適当なフィールドで「X(デカルト積)」の照合として、
そのポータルフィルタの条件式を
商品マスタ::上記の計算フィールド = 1
とします。
Offline
ああ、
計算フィールド不要で、
フィルタの条件式を
商品マスタ::ユニーク = 商品マスタ 自己リレーション::ユニーク
とすればいいんですね。
Offline
チポ様
商品マスタの区分で自己リレーションしてリレーションを×にする。
ユニークなフィールドを作る。数字にしてユニークな値にチェックを入れる。
計算フィールドを作る。商品マスタ::ユニーク = 商品マスタ 自己リレーション::ユニーク
商品マスタ 自己リレーションでポータルを作る。同テーブルの区分フィールドを配置する。
ポータルフィルタの条件式を、商品マスタ::計算フィールド = 1
上記で間違っているところはありますでしょうか。
ポータルが真っ白で何も表示されません。
宜しくお願いします。
>計算フィールド不要で、フィルタの条件式を
商品マスタ::ユニーク = 商品マスタ 自己リレーション::ユニーク
こちらでできました!ありがとうございます。
重複しないようにするには、ポータルの条件を増やせば良いのでしょうか?
商品マスタの区分で自己リレーションしてリレーションを×にする
違います。
このリレーションは「=」でつなぎます。
ポータルを表示するリレーションは「X」でつなぎます。
Offline
ポータルを表示するリレーション というのはどこから設定するのですか?
ポータル設定にはリレーションを組めそうな項目がないのですが…
データベース管理のリレーションを見てもポータルと絡みそうなものが見あたりません…
リレーションの設定はリレーションシップグラフのみです。
にもさんの最初の質問の
ポータルを表示しているレイアウトのテーブルと商品マスタとをリレーションします。
商品マスタのテーブルなら自己リレーションになりますね。
Offline
商品マスタのレイアウトを使用しているので、商品マスタを自己リレーションすることになると思うのですが、
そうすると商品マスタが3つになりますが、間違いないでしょうか。これを適当に×にすれば良いのですね。
重複しないものが全て表示されるのであれば、300行程一覧が出るのですが、今のところ2行しか表示されません。。。
リレーションシップグラフでのテーブル名は大きな意味を持っていますので、
「適当」ではダメですよ。
照合する側はデフォルトのテーブル「商品マスタ」一つにして、
リレーションごとにそのテーブルをコピーして、それとデフォルトをつなげます。
区分のリレーション
商品マスタ::区分 = 商品マスタ 2::区分
ポータル1のリレーション
商品マスタ::商品 x 商品マスタ 3::商品
適当なフィールドでいいのですが、区別しやすいようにしました。
ポータル2のリレーション
商品マスタ::区分照合用 = 商品マスタ 4::区分
↑
ポータル1で選択した区分を入力
配置するレイアウトは商品マスタテーブル
それぞれのポータルとそのフィールドは
それぞれのリレーションの照合先のテーブルです。
これが分りやすい方法でしょう。
Offline
教えて頂いたリレーションを組み、さらに、ポータル1のポータル設定には
商品マスタ::ユニーク=商品マスタ3::ユニーク を入力するんですよね。
それでもやっぱり2行しか表示されません…
ちなみに契約マスタはどことどのように繋げれば良いですか?
ポータル1のポータル設定には
商品マスタ::ユニーク=商品マスタ3::ユニーク
ポータルフィルタの条件式ですね、
商品マスタ::ユニーク=商品マスタ2::ユニーク
テーブルを間違えないように。
契約マスタが有ったんですね、まったく頭から飛んでいました。
質問です。
商品マスタテーブルは商品がユニークですよね。
契約マスタは、1契約ごとに1レコードですよね。
って書いて読み直してみましたが、、
他のレイアウトなどの兼ね合いで、フィールドを一部移すことになってしまいました。
区分、商品名→商品マスタ
会社名、金額→契約マスタ
これがまったく理解できません。
これでは、
この二つのテーブルをつなげるフィールドが無いですよね。
Offline
ポータルフィルタの条件式直しました。ありがとうございます。
ご質問についてなのですが、職種が特殊なので分かりやすく質問する為に、近しい表現を使って、契約マスタ、商品マスタとしています。
商品マスタは商品がユニークですが、契約マスタは1契約ごとにというよりは、今回のレイアウトを含め、
他のレイアウトを作るために必要なフィールドをまとめているテーブルといった感じです。
商品ID、区分、商品名→商品マスタ
商品ID、会社名、金額→契約マスタ
両マスタには実際もっとたくさんのフィールドがあります。
繋げられそうなフィールドだと、商品IDがありました。
すみません、どうしても出来ないのでひとつずつ解決出来たらなと思うのですが…
まずポータル1で、商品マスタの区分フィールドを重複しないように表示したいです。
これだけでもなかなかうまく表示されないので教えて頂けますか?
では、ポータル1だけに絞りましょう。
やることは今まで書いた通りです。
落ち着いて読み返してみてください。
レイアウトのテーブル、
そこに配置したポータルとそのポータルに配置したフィールドのテーブル
それらが正確か確認です。
確認のために
計算フィールド
商品マスタ::ユニーク = 商品マスタ 自己リレーション::ユニーク
このフィールドを作って、レイアウトに配置してみたらいかがでしょう。
同じ区分の内一つだけに1、他は0が入力されているか確認します。
もう一つ、
ポータル1のフィルタを設定しないで、
全てのレコードが表示されているか確認してください。
Offline
レイアウトのテーブルは商品マスタ
区分で自己リレーションしてできたものが商品マスタ2
ポータル・ポータルの中に配置した区分フィールドは商品マスタ3(商品マスタと商品マスタ3は×のリレーション)
です。間違いないでしょうか?
計算フィールドを配置し表形式で見てみたところ、全て空白になっていました。
ポータル1はフィルタを設定しないと全てのレコードが表示されますが、フィルタを入れると一件も表示されなくなります。
長々とお付き合い頂き感謝致します。よろしくお願いします。
ユニークフィールドに入力が無いのでは。
レコードIDとか、レコード番号とか、シリアル番号
いずれでもいいですからユニークな値を入力しないと。
Offline
入力されてなかったです。
すでに800くらいレコード数があるのですが、どのようにユニークな値を入れれば良いのでしょうか?
普通に連番でいれたいのですが、自動化にしても次に出来るレコードに対しての自動化になってしまうので数字が入りません…
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 581.2 KiB (Peak: 617.73 KiB) ]