みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
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
SpO2日常点検で
グローバルフィールドを作り、「4B」と入力し
新たなリレーション
SpO2日常点検 SpO2モニター使用状況
シリアル番号 = 日常点検シリアル番号
and
グローバルフィールド「4B」 = 病棟
これでCountすれば求められますね。
他の病棟も同様に考えればいいでしょう。
老婆心ですが、、
同じテーブル間でリレーションを増やす場合、
リレーションシップグラフで、
参照する側のテーブルはデフォルトを、
関連側のテーブルはコピーを使います。
逆にすると面倒なことになります。
Offline
List ( リレーション::病棟 ) で、ValueCount () で、"4B" を数える、ではダメでしょうかね。
Offline
ご返答ありがとうございます。
まず、チポさんの方法でやってみました。
テーブル構成を変更しました。
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
> SpO2アクティブ病棟 テキスト グローバル
> 4B グローバル
私の提案は「4B」に関してはグローバルフィールドは一つのみ必要です。
そのグローバルフィールドに
4B
と入力し、前記のリレーションを定義します。
Offline
SpO2日常点検 テーブルで、点検日 で自己リレーションを張ります。そのリレーションで計算します。3B 1B を数えれば、そちらも同じ方法です。
Offline
関数は 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
Shinさん
自己リレーションではなく、
今のリレーションでいいでしょう。
Sp02日常点検テーブルで
ValueCountでは面倒なので
PatternCount ( List ( Sp02モニター使用状況::病棟 ) ; “4B” )
でいいでしょう。
例えば
14B
のような、他を内包する値がある場合は、もう一工夫必要になりますね。
Offline
ああ、書き間違いました ^^ 。
敢えて書くと、FilterValue() してから、ValueCount() ですね。
Offline
チポさん、Shinさんご意見ありがとうございます。
こちらでやってみたのですが、どうもうまくいきません。
サンプルをアップしていただくことは可能でしょうか?
Offline
このシリアル番号は、1日1番号なんですか?
使用状況にもシリアルがあって、こちらも自動入力されているので、動きがわからないです。
Offline
私は、ここではファイルのアップダウンは出来ないのです。
そんなに難しいことではないですから、
何をして何が出来ないか
書かれれば解決すると思いますよ。
Shinさん
書かれたリレーションは
> SpO2日常点検 SpO2モニター使用状況
> シリアル番号 = 日常点検シリアル番号
ですから、
SpO2モニター使用状況::シリアル番号
は、ここでは考えなくてもよろしいかと。。
Offline
そういうことですか。
なら、単純に List( SpO2モニター使用状況2::病棟 ) を取るだけでいいはずですね。
Offline
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 575.13 KiB (Peak: 592.03 KiB) ]