みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
Win 7&FM8.5です。
ポータルの一般的な使い方として、参照フィールドにキーを入力すると該
当するデータが表示されますが、繰り返しフィールドのようにデータを入
力するだけにしたいのですが可能でしょうか?
具体的に言いますと、「商品」テーブルと「カラー」テーブルがあり、1
商品(1レコード)につき複数のカラー(数レコード)が存在します。「商品」
レコード上に「カラー」ポータルを配置しています。
作業としては、「商品」レコードを新規で作った後、「カラー」レコード
に「レッド」と「イエロー」と入力して行きます。この作業をする際、
「カラー」ポータルに「レッド」と入力すると自動で「商品」テーブルの
キー入力されるようにしたいのです。
すなわち、参照フィールドにキーを入力すると自動でポータルの値が表示
されるのではなく、ポータルに値を入力とそのレコードのキーを自動で取
得するようにしたいのです。
分かりにくい説明で申し訳ないですが、宜しくお願いします。
質問の意味が理解でできていませんが
ポータルを表示しているテーブルで照合フィールドを入力後
ポータルに入力すると、関連テーブルの関連フィールドには
照合キーが勝手に入りますよね。
こういうことでは無い?
Offline
旅人さん、返信ありがとうございます!!
説明が分かりにくく申し訳ないです。
一言で申しますと、照合フィールドに入力する値を自動入力したいのです。
ポータルに値を入力した時点で照合キーが自動で入力され、照合キーを意識しないようにしたいという意味です。
要は、繰り返しフィールドのような使い方をポータルで行いたいと思っています。
リレーション設定でポータル内側に「レコードの作成を許可」するとポータルに値を入力できますが
メイン側の「参照フィールドにキーを入力すると自動でポータルの値が表示」するのはポータルの基本ですから、しないようにはできませんよ。
saverさん、返信ありがとうございます。
しないようするというのは、あくまでも意識しないという意味です。
裏で勝手に行って出来るのが一番良いですね。
言い方を変えれば、照合フィールドを自動で入力し、見えない(意識しない)のがベストです。
「レコードの作成を許可」するとポータルに値を入力できる
「参照フィールドにキーを入力すると自動でポータルの値が表示」
この大前提を踏まえて、ポータルに値を入力した時点でレコードが生成され、参照フィールドのキーを自動入力したいのです。
レコードの作成を許可にしてポータル内にキーフィールドを配置しなければいいだけでは?
Offline
Mozさん、返信ありがとうございます。
ハイ、キーフィールドを設置せずに裏で自動入力されているのが理想なんですが、その方法が分からないのです。
レイアウトモードでポータル内のキーフィールドを選択して Delete キー押すだけでは?
見た目のバランス崩れるので他のフィールドの大きさ調整等必要だと思いますが。
Offline
画面内に関連テーブルのキーフィールドを表示したくない
ということなのかな?でしたら画面から消すだけですけど。
いまだに希望が良く分かっていない・・・
Offline
Mozさん、返信ありがとうございます。
キーフィールドを消すことが目的ではないんです。
キーフィールドにキーを入力すると自動でポータルの値が表示されるので
はなく、ポータルに値を入力とキーフィールドにキーを自動で入力される
ようにしたいのです。
すなわち、通常の動きとは真逆の動きをさせていのです。
私もよく分かっていませんが。。
ポータルを置いているテーブル(参照する側のテーブル)
の照合フィールドの入力は必須ですよ。
また、
不等号の照合だと、ポータルに入力して新規レコード作成は出来ません。
でなければ、
ポータルの最終行の参照フィールドに入力することで、
照合フィールドに自動入力された新規レコードが出来ます。
Offline
旅人さん、返信ありがとうございます。
本当にややこしくて申し訳ないです。
画面内に関連テーブルのキーフィールドを表示させたくないのはもちろん
なんですが、そのキーフィールドへの値の入力を自動にしたいのです。
ポータルに値を入力、すなわちレコードを追加すると、キーフィールドが
見えない場所で自動入力されるようにしたいんです。
すなわち、ポータルを繰り返しフィールドのような感覚で扱いたいのです。
ただ、ポータルは繰り返しフィールドと違いリレーションが必須となるの
で、キーフィールドというモノが必要になりますが、それを意識せずにポー
タルに値を入力したいのです。
もうひとつ有った。
関連側の照合フィールドが計算フィールドでもダメです。
Offline
リレーションシップ定義で "レコードの作成を許可" を指定されたTOへは、
もう一方のTOから「キーではないフィールドへの入力で」レコードが作成されます。
つまり作成許可の設定を行った時点で、恐らく希望の状態になっています。
当然ですが、リレーションシップ条件は「=」「<=」「>=」のいずれかのみで、
!= や X を含む場合は作成自体が許可できません。
「<=」「>=」らは、作成を許可に於いては「=」と等価です。
親テーブルのキーが空欄でなければ、
レコードの作成を許可で「=」のリレーションでポータルに次々値を入れていけばキーフィールドは勝手に入力されますよね?
親テーブルのキーフィールドが空ではリレーション成立しないので
親テーブルのキーフィールドの入力すら嫌だというならシリアル値にでもしたらどうでしょう?
Last edited by Moz (2014-09-08 18:05:18)
Offline
チポさん
返信ありがとうごじあます。
ハイ、それは重々承知しております。
ですので、意識しないように、すなわち見えないようにしたいのです。
不等号照合ではないので問題ないですね。
また、計算フィールドではなく、シリアルがベストです。
hondaさん
返信ありがとうございます。
私もそう思ってやってみたのですが、以下のようなメッセージが出てきます。
「フィールド名」は、値を必要とするように定義されていますが、このレイアウトでは利用できません。このフィールドに値を割り当てるために、他のレイアウトを使用して下さい。
何か、抜本的に間違っていますか?!
Mozさん
返信ありがとうございます。
そう思ってやっているのですが、何故か以下のようなメッセージが・・・。
「フィールド名」は、値を必要とするように定義されていますが、このレイアウトでは利用できません。このフィールドに値を割り当てるために、他のレイアウトを使用して下さい。
フィールド名には、キーフィールド名が入ります。
リレーションの結び方に問題があるのですかね?!
皆さん、大変お世話になりました。
私自身のミスにようやく気付きました。
エラー表示が出るという事をお伝えしておりましたが、単純にリレーショ
ンの結び方を間違っていたようです。
まだまだ、その段階で躓いておりましたので、皆さんにチンプンカンプン
ナ質問をしてしまいました。
hondaさんやMozさんがおっしゃっていた通り、ポータルに値を入れると、
勝手にキーフィールドに入力されており、全く意識する事はなかったです。
旅人さん、saverさん、チポさん、そしてhondaさんとMozさん。
お忙しい中、チエを絞って頂きまして心から感謝致します。
ありがとうございます!!
ものすごく難しく考えすぎているのでは。
こんな動きが欲しいのでは。
https://dl.dropboxusercontent.com/u/926 … 63.fp7.zip
ごく基本的にリレーションを張って、関連レコードの作成を許可して、ポータルで表示しているだけです。
Offline
Pages: 1
[ Generated in 0.009 seconds, 7 queries executed - Memory usage: 564.62 KiB (Peak: 585.52 KiB) ]