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

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

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

You are not logged in.

Announcement

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


#1 2018-03-05 16:14:47

morotomi
Member

filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

filemaker12 計算フィールドへポータルの該当レコード数を表示する方法を教えて下さい。

テーブル構成は以下になります。

   SpO2日常点検
シリアル番号     数字 番号自動入力
点検日        日付
曜日         計算 = Left( DayName(点検日);1)
SpO2点検者                テキスト
SpO2備考       テキスト
SpO2_4B使用台数       計算
SpO2_3B使用台数   計算
SpO2_1B使用台数       計算
SpO2_合計使用台数     計算 = SpO2_4B使用中台数 + SpO2_3B使用台数 + SpO2_1B使用台数
ステータス      テキスト
SpO2アクティブ病棟  テキスト   グローバル

          SpO2モニター使用状況
シリアル番号     数字 番号自動入力
日常点検シリアル番号 数字
病棟         テキスト "4B"、"3B"、”1B"
部屋番号       数字
患者名        テキスト
機器番号       テキスト

リレーションシップ
SpO2日常点検   SpO2モニター使用状況
シリアル番号 = 日常点検シリアル番号


SpO2日常点検::点検日           2018/01/12
SpO2モニター使用状況::病棟   "4B"
の件数をSpO2_4B使用台数へ 計算式を入れたいのですが、どのように入れればいいかわかりません。

どなたか方法を教えて下さい。
よろしくお願いいたします。

Offline

#2 2018-03-05 17:03:42

チポ
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

SpO2日常点検で
グローバルフィールドを作り、「4B」と入力し
新たなリレーション
  SpO2日常点検   SpO2モニター使用状況
  シリアル番号 = 日常点検シリアル番号
  and
  グローバルフィールド「4B」 = 病棟
これでCountすれば求められますね。

他の病棟も同様に考えればいいでしょう。


老婆心ですが、、
同じテーブル間でリレーションを増やす場合、
リレーションシップグラフで、
参照する側のテーブルはデフォルトを、
関連側のテーブルはコピーを使います。

逆にすると面倒なことになります。

Offline

#3 2018-03-05 17:12:39

Shin
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

List ( リレーション::病棟 ) で、ValueCount () で、"4B" を数える、ではダメでしょうかね。

Offline

#4 2018-03-05 19:22:21

morotomi
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

ご返答ありがとうございます。
まず、チポさんの方法でやってみました。

テーブル構成を変更しました。

   SpO2日常点検
シリアル番号     数字 番号自動入力
点検日        日付
曜日         計算 = Left( DayName(点検日);1)
SpO2点検者                テキスト
SpO2備考       テキスト
SpO2_4B使用台数       計算 Count(SpO2モニター使用状況 2::病棟)
SpO2_3B使用台数   計算
SpO2_1B使用台数       計算
SpO2_合計使用台数     計算 = SpO2_4B使用中台数 + SpO2_3B使用台数 + SpO2_1B使用台数
ステータス      テキスト
SpO2アクティブ病棟  テキスト   グローバル
4B                グローバル

          SpO2モニター使用状況2
シリアル番号     数字 番号自動入力
日常点検シリアル番号 数字
病棟         テキスト "4B"、"3B"、”1B"
部屋番号       数字
患者名        テキスト
機器番号       テキスト

リレーションシップ
SpO2日常点検   SpO2モニター使用状況2
シリアル番号 = 日常点検シリアル番号
AND 4B = 病棟

SpO2_4B使用台数       計算 Count(SpO2モニター使用状況 2::病棟)

結果は空白でした。

その後、Shinさんの方法でやってみました。
ValueCount (If(SpO2モニター使用状況::病棟 = "4B"; List(SpO2モニター使用状況::病棟) ))

結果は0でした。

方法が間違っているのでしょうか?

Offline

#5 2018-03-06 09:20:44

チポ
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

> SpO2アクティブ病棟  テキスト   グローバル
> 4B                グローバル

私の提案は「4B」に関してはグローバルフィールドは一つのみ必要です。

そのグローバルフィールドに
  4B
と入力し、前記のリレーションを定義します。

Offline

#6 2018-03-06 10:17:09

Shin
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

SpO2日常点検 テーブルで、点検日 で自己リレーションを張ります。そのリレーションで計算します。3B 1B を数えれば、そちらも同じ方法です。

Offline

#7 2018-03-06 10:56:59

Moz
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

関数は ValueCount ではなく PatternCount だと思いますよ。
ValueCount は特定の文字列を数える目的では使えません。

ValueCount
http://www.filemaker.com/help/12/fmp/jp … 33.92.html

PatternCount
http://www.filemaker.com/help/12/fmp/jp … 33.77.html

Offline

#8 2018-03-06 11:20:06

チポ
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

Shinさん
自己リレーションではなく、
今のリレーションでいいでしょう。

Sp02日常点検テーブルで
ValueCountでは面倒なので
  PatternCount ( List ( Sp02モニター使用状況::病棟 ) ; “4B” )
でいいでしょう。

例えば
  14B
のような、他を内包する値がある場合は、もう一工夫必要になりますね。

Offline

#9 2018-03-06 11:42:26

Shin
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

ああ、書き間違いました ^^ 。
敢えて書くと、FilterValue() してから、ValueCount() ですね。

Offline

#10 2018-03-06 11:47:11

morotomi
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

チポさん、Shinさんご意見ありがとうございます。

こちらでやってみたのですが、どうもうまくいきません。
サンプルをアップしていただくことは可能でしょうか?

Offline

#11 2018-03-06 13:30:56

Shin
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

このシリアル番号は、1日1番号なんですか?
使用状況にもシリアルがあって、こちらも自動入力されているので、動きがわからないです。

Offline

#12 2018-03-06 15:41:18

チポ
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

私は、ここではファイルのアップダウンは出来ないのです。

そんなに難しいことではないですから、
何をして何が出来ないか
書かれれば解決すると思いますよ。


Shinさん
書かれたリレーションは

> SpO2日常点検   SpO2モニター使用状況
> シリアル番号 = 日常点検シリアル番号

ですから、
SpO2モニター使用状況::シリアル番号
は、ここでは考えなくてもよろしいかと。。

Offline

#13 2018-03-06 16:18:40

Shin
Member

Re: filemaker12 計算フィールドへポータルの該当レコード数を表示する方法

そういうことですか。
なら、単純に List( SpO2モニター使用状況2::病棟 ) を取るだけでいいはずですね。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 9 queries executed - Memory usage: 575.95 KiB (Peak: 592.85 KiB) ]