みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
連続の投稿になります。お許しください。
ポータルの作成についての初歩的な質問です。これも類似の質問、スレは既出かと思いますが、どうかご教授のほどお願いします。
わかりやすいように現在レイアウトしている事例を具体的に書かせていただきます。医療関係者で、データ整理のため、患者リストを作っています。
メインのテーブルに「初発症状」フィールド、別のテーブルにも「初発症状」フィールドを作成し、「患者ID」でリレーションシップを作りました。メインのテーブルに基づくレイアウトに、ポータルを作成し、ポータル内に複数の「初発症状」を表示させるために3つの行を置きました。ここまでは、皆さんのご助力によりうまくいきました。
問題は次です。ポータル内の「初発症状」フィールドに「倦怠感」と入力すると、同じテーブルにある別の「倦怠感の有無」フィールドに、「あり」と自動入力させたいのですが、うまくいきません。おそらく関数(計算式)がよろしくないのだと思うのですが、
「Case (初発症状::初発症状="倦怠感";"あり" )」
ではよろしくないのでしょうか。
ご迷惑をおかけしますが、解決法をよろしくご教授ください。
「別のテーブル」が初発症状だとして、「同じテーブル」とは、どれのことですか?
何となく、ポータル内の3行のどれかにあれば、という判定をしたいんではないかと思うけど
ポータルに入力するように変えたのだから「メインのテーブルに「初発症状」フィールド」は不要だと思います。
複数の関連レコードを判定する。
ですから、、
List ( 初発症状::初発症状 )
でリストが得られます。
これを
PatternCount
で判定すればいいでしょう。
Offline
ご返答ありがとうございます。
>「別のテーブル」が初発症状だとして、「同じテーブル」とは、どれのことですか?
>何となく、ポータル内の3行のどれかにあれば、という判定をしたいんではないかと思うけど
--ご明察ありがとうございます。その通りです。
>ポータルに入力するように変えたのだから「メインのテーブルに「初発症状」フィールド」は不要だと思います。
--これもおっしゃるとおりですね。
チポさんご返答ありがとうございます。
Case (1 ≤ PatternCount (List(初発症状::初発症状);"倦怠感");"あり" )
との計算式で試してみたのですが、まだうまく行きません。引き続きご回答受け付けております。
計算値自動入力は、その式が設定されてるテーブル内の、計算式に含まれているフィールドが変更されたときしか計算されません。
上記の式は、別のテーブルのフィールドしかないので、ポータルに入力しただけでは再計算されないのでしょう。
ポータルか初発症状::初発症状フィールドなどのトリガでスクリプトで計算する
ポータル入力後にリレーションキーのフィールドを同じ値で書き換える
メイン側のどれかの(ポータルの後で必ず入力するような)フィールドを計算式に含める(そのフィールドに入力した時点で計算される)
計算タイプのフィールドに変える(計算結果が保存されず検索などに不適となる副作用あり)
など
初発症状テーブル側に、初発症状="倦怠感" という数値型の計算フィールドを置いておきます。それを合計する集計フィールドを作ります。
その集計フィールドを、患者側のテーブルに配置すればうまく反映されます。
ちなみに、計算フィールドを繰り返しフィールドにしておき、繰り返しそれぞれに別の計算式を適用しておけば、複数を一度にそれぞれ表示できます。
例えば、
Choose (
Get ( 計算式繰り返し位置番号 ) - 1 ;
初発症状[1] = "倦怠感" ;
初発症状[1] = "発熱" ;
初発症状[1] = "下痢" ;
初発症状[1] = "嘔吐"
)
Last edited by Shin (2021-04-14 09:25:18)
Offline
皆様、ご返答ありがとうございます。
初心者の私が、最も手が届くところとして、
「初発症状テーブル側に、初発症状="倦怠感" という数値型の計算フィールドを置」きました。
そしてその計算を
Case (1 ≤ PatternCount (List(初発症状::初発症状);"倦怠感");"あり" )
としました。
そして、メインのテーブルに基づくレイアウトに、初発症状テーブルにある上記のフィールドを置きました。
これで体裁的にはなんとかなりました。
集計フィールドなども本来は行いたいのですが、とりあえずのゴールが大量のデータを処理して、CSV方式やexcelファイルにまとめることだと思いますので、これは可能なようです。
今回はこれで解決とします。重ねてお礼申し上げます。みなさんありがとうございました。
前言撤回です。
まだもう少しうまく行っていません。上記の式ではポータルの2行目に該当文字列(Ex "倦怠感")が来たときに、計算できないようです。
ご提案いただいた式など、今少し検討してからのご返事とさせてください。
Case ( PatternCount (List(初発症状::初発症状);"倦怠感" ) ;"あり" )
で十分ですよ。
この式は、患者テーブル側におきます。
Offline
> 初発症状テーブル側に、初発症状="倦怠感" という数値型の計算フィールド
これは意味ないですよ。
私の提案は、
メインテーブルの計算フィールドの計算式ですよ。
Offline
ありがとうございます。
皆さんのおかげでようやく解決しました。
患者テーブル側に置いた「倦怠感の有無」フィールドを計算フィールドにして、
そしてその計算を
Case (1 ≤ PatternCount (List(初発症状::初発症状);"倦怠感");"あり" )
としたところ、うまく行ったようです。
まだまだ先は長いですが、しばらくはなんとかなりそうです。
重ねておりがとうございました。今後とも宜しくお願い申し上げます。
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 525.44 KiB (Peak: 545.98 KiB) ]