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

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

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

You are not logged in.

Announcement

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


#1 2018-10-25 23:45:56

sawako
Member

リレーションした食品データを使ってカロリー計算をしたい

FluxBB bbcode test
FluxBB bbcode test

体重と食事を管理する「ダイエット」テーブルを作っています(上の画像)。
このテーブルに「食べ物データ」(下の画像)テーブルをリレーションして
食品名と分量を入力していくと、その日のカロリーが自動で集計されるようにしたいです。

上の下半分が集計用なのですが、最初の1段目は「食べ物データ」の内容が表示されるのですが、
2段目から計算してくれません。
(1段目をブロッコリーにしてグラム数を入れるとうまくいきますが、2段目をゆでたまごにすると0kalになります)

この表は
左から
食品名  個数かグラムか選択   分量(個もしくはg)  カロリー
として繰り返しを15回ずつ30回にしています。
赤く囲ったところに総カロリーを
Sum(食品カロリー)
としています。

どこを訂正すればうまくいくでしょうか。
どうかご教示ください。
※「ダイエット」テーブルの食品名と「食べ物データ」の名称をリレーションしています。
最初は「食べ物データ」で計算したものを転記していましたが、手間を省きたいです。

Offline

#2 2018-10-26 08:51:49

Shin
Member

Re: リレーションした食品データを使ってカロリー計算をしたい

画像を見ることができませんので、推定ですが。

おそらく、繰り返しフィールドを使っているのでしょう。その元データも、繰り返しフィールドにして置くことが必要です。
レイアウトを見せてもらうより、フィールド定義とリレーション定義を見せてもらう方が早いです。

Last edited by Shin (2018-10-26 17:10:19)

Offline

#3 2018-10-26 23:20:43

sawako
Member

Re: リレーションした食品データを使ってカロリー計算をしたい

ダイエットテーブル
ダイエットフィールド
食べ物データテーブル
食べ物データフィールド
リレーション

Shin様
前回は大変お世話になり、また今回もありがとうございます!
画像と定義をリンクで再度上げてみました。(いらない情報も入っていると思いますが)
繰り返しフィールドを食べ物データの方にも作るということでしょうか?
情報の過不足があればお教えください。
どうぞよろしくお願いいたします。

Offline

#4 2018-10-29 13:01:11

Hiro
Member

Re: リレーションした食品データを使ってカロリー計算をしたい

ダイエット::テーブルの食品カロリー[30]計算フィールドの式を
Lookup式に変更して試して?
   Case( 個数重量選択="個"
      ; 分量*Lookup(食べ物データ::単体カロリー配列; "")
      ; 分量*Lookup(食べ物データ::カロリー@グラム配列; "")
   )

ここで、
式中の 単体カロリー配列 と カロリー@グラム配列 は、
新規の繰り返し[30]計算フィールドで、それぞれ式は、
   単体カロリー[1] と カロリー@グラム[1]
とします。

なお、
ダイエット::の単位名[30]はダブル表示で敢えて不要です。
また、
食べ物データ::テーブルの固定基礎データ項目以外の
一過性の変動項目フィールドも不要です。

Last edited by Hiro (2018-10-29 14:43:37)

Offline

#5 2018-10-29 17:45:46

Shin
Member

Re: リレーションした食品データを使ってカロリー計算をしたい

ダイエットテーブル側に、単位カロリーを自動入力でルックアップする繰り返しフィールドを作り、カロリーは、そのフィールドから計算させるといいでしょう。

Offline

#6 2018-10-29 18:32:44

Hiro
Member

Re: リレーションした食品データを使ってカロリー計算をしたい

諸々設定が面倒なら、ExecuteSQL計算式 単独一本で解決することもできます。
(リレーションを含め他一切の設定などが不要です)

●「食品カロリー」繰り返し[30]計算フィールドの式:(動作検証はしてません)
ExecuteSQL(
   "
      SELECT ? * """ & Case( 個数重量選択="個"; "単体カロリー"; "カロリー@グラム") & """
      FROM ""食べ物データ""
      WHERE ""名称""=?
   "
   ; ""
   ; ""
   ; 分量
   ; 食品名
)

Offline

#7 2018-10-30 12:32:24

sawako
Member

Re: リレーションした食品データを使ってカロリー計算をしたい

Shin様
Hiro様

ご返信ありがとうございます!
ルックアップ……また新しい言葉を知りました。
ご指示通り頑張ってみます。
ありがとうございます。
また経過を報告させていただきます。

Offline

#8 2018-10-30 23:01:51

sawako
Member

Re: リレーションした食品データを使ってカロリー計算をしたい

Shin様
Hiro様

できました!
いただいた式をアレンジして
他の栄養素も計算できるようになりました。
理想のものになりました。
感謝いたします。
またバージョンアップをする時は
どうぞよろしくお願いいたします。

Offline

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: 563.11 KiB (Peak: 582.34 KiB) ]