みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
[Aテーブル(外部参照)]を関連付けた[Aレイアウト]があります。
Aテーブルに計算フィールドを追加したいのですが、
分け合ってAテーブル自体にフィールドを増やしたく有りません。
Aテーブル
flg1|id|種類 |金額
1 |00|りんご|100
1 |01|りんご|200
1 |02|みかん|50
1 |03|すいか|1000
Bテーブル
flg1|備考
1 |(計算)
Bテーブルの備考(計算フィールド)
if(Aテーブル::金額 >= 1000;"高";"安")
イメージとしては、
Aテーブル
flg1|id|種類 |金額|備考
1 |00|りんご|100 |安
1 |01|りんご|200 |安
1 |02|みかん|50 |安
1 |03|すいか|1000|高
です。
Aテーブル::flg1とBテーブル::flg1をリレーションの"="で繋いでも出来ませんでした。
Last edited by めい吉 (2019-08-28 16:24:53)
Offline
Aテーブルの主キーはidですか?
Bテーブルにidを追加し、idでリレーションをつなげばうまくいくと思います。
それともflg1の合計金額で判定したいのかな?
もしそうであれば計算フィールドでsumを使えばできます。
Aテーブルのidは主キーです。
Aテーブルのレコード数は変動する為、Bテーブルにidを追加してもうまくリレーションが繋がりません。
Bテーブルは1レコードのみで、複数レコードあるAテーブルで[Aテーブル::金額]毎の計算結果の[Bテーブル::備考]を表示したいです。
Offline
Aテーブルの各レコード毎に「金額」の値に基づいた計算結果を「備考」として表示したいってことですよね?
メイさんが提案されているようにAテーブルとBテーブルをAテーブルの「id」でリレーションするのが早いでしょう。
AテーブルとBテーブルのレコード数は同じになり、1対1のリレーションになるということです。
例示されているようにAテーブルのレコード毎に備考を表示したいならばBテーブルは1レコードのみというのは難しいでしょう。
「何を基準にAテーブルの各レコードの金額を取得するのか」と考えれば答えは簡単です。
Aテーブルに備考フィールドを追加すればいいだけの話ですが何故ダメなのでしょう?
Last edited by Moz (2019-08-28 17:29:26)
Offline
めい吉さんご自身が例示されているように、
Aテーブルに4行あれば、Bテーブルも4行分の備考を
データとして生成する必要があるのでは?
Aテーブルにレコード追加した時に、Bテーブルに同じidのレコードを追加し、
AとBが常に同じレコード数になるような仕掛けが必要ですね。例えば…
Aテーブル作成時→[Aレイアウト]のOnRecordCommitイベントでBテーブルにIDをセット
Aテーブル削除時→リレーションの定義でBテーブルも削除する
でうまく行きませんか?
Last edited by koeda (2019-08-28 18:19:36)
Offline
金額フィールドをテキストにしてもいいのなら、
入力値の自動化・既存値置き換えで
「安」「高」を加える様にしたらいかがでしょう。。
無理無理ですね;;;
フィールド一つ増やすのがなぜいけないのでしょう?
Offline
Aテーブル::金額 >= 1000 という条件だけでいいのですか。
表示だけでいいのでしたら、レイアウトに、高 安、というオブジェクトを配置し、その条件で隠せばいいだけでは。
Offline
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 513.26 KiB (Peak: 517.8 KiB) ]