みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お久しぶりに投稿させて頂きます。
前回も記載しましたが、ファイルメーカスーパーリファレンスとネットを片手に
つまづく素人です。よろしくお願い致します。
私は医療人でして、
とある治療を行うのに、「治療日」というフィールドと「区分」というフィールード(これは、入院と外来をドロップダウンにしております)
そして、「最終治療日」というフィールドを設けてます
やりたいことは、外来で治療した最終日を「最終治療日」に反映させたいのです
色々調べてみてMAXという関数を使用したら最終治療日になったのですが、
治療日が入院時の日付になってしまいました
あくまで外来で治療した最終日ということにしたいのです
どのような計算式が良いのかご教授お願い致します。
色々調べたのですが、この場合はIfが良いのかと思ってますが
下地がない素人にて困っておりますのでどうかよろしくお願い致します。
「患者」で自己リレーションし、治療日の降順でソート指定します。
これで、
自己リレーション::治療日
が最終治療日です。
Offline
それだと「外来」かどうかが判断されてないです。
外来治療日フィールドを1つ追加するのが一番簡単かなあ?
Case ( 区分="外来" ; 治療日 )
それを代りに使って計算すれば
ああ、見落としました。。
グローバルフィールドを作り「外来」と入力、
このフィールドと区分の照合を加えればいいでしょう。
Offline
himadanee様、チポ様
ありがとうございました。
お二方の方法を試しましたが、結果は空欄であったり「?」となりました。
お恥ずかしい話ですが、よくわかっていないという前提で
具体的にどのようにすればよいか教えて下さい。
お忙しい申し訳ございませんがよろしくお願い致します。
グローバルフィールドを作り「外来」と入力
自己リレーション
元のテーブル 元のテーブル2
患者 = 患者
and
グローバルフィールド = 区分
リレーションの設定で、治療日の降順ソート指定
元のテーブルのレイアウトにフィールド
元のテーブル2 :: 治療日
を配置
これが最終治療日です
これは、同じ患者全てのレコードに同じ最終治療日が表示されます。
Offline
チポ様、ご教授ありがとうございました。
早速、やってみたのですが、日付は表示されるのですが、求めているものではありませんでした。で、おそらく、自分で作成していたフィールドが、何かしらバラバラの可能性もあると手直ししている最中に臨時の仕事が入りまして・・・
明日、再度やり直してみます。
やり方は理解できましたので、何とか大丈夫だと思います。連絡遅れてしまいますので、とりあえず報告までに!
チポ様連絡が遅くなりすいません。
教えて頂いたやり方を参考にしながらやりましたが、最新の外来日にはなりませんでした。
患者様の色んな情報がある画面を「A」というレイアウトとし、治療の詳細を入力するレイアウトを「B」にしております。
治療日や区分などは「B」に入力します。
Aのレイアウトにはタブを設け、そこに治療日に行ったことなど(Bのレイアウトに入力している内容)をポータルとし表示させております。
で、今回行ったことは
Bのレイアウトの元の「治療情報テーブル」を自己リレーションさせ、チポ様に言われた通りにやりました。
グローバルフィールドもBのレイアウトにおいて、そこに外来と入力しました。
Aのレイアウト上に「最終外来日」というフィールドを作り、計算で治療情報テーブル2::治療日としました。
全て関係する場所のソートは「降順」で指定しなおしました。
これを行った上で、仮の日付を数件入力していきました
入院の治療日の時には反映されず、外来の治療日にしたら反映されました。これで成功だと思ったのですが、
その後、外来での治療日を新しく入力していきましたが、外来で一番最初にきた日付がずっと残ってしまいます。
上記の中で私のやり方や方法が違うことなどありますでしょうか?
ちなみにですが、
グローバルフィールドの部分に外来と入力したら、新規レコードでもその部分に外来の表記が残ってました。
もしかしたら、これが悪いのかな?と素人ながら思っております。
大変申し訳ございませんが、どうかよろしくお願い致します。
> 全て関係する場所のソートは「降順」で指定しなおしました
レコードのソートでは有りません。
リレーションの設定でソート指定が有り、
照合順を指定できます。
リレーションシップグラフで、
二つのテーブルを結んでいる線の中央にある小さな四角をダブルクリックすると
リレーションシップ編集窓が表示されます。
その中の「レコードのソート」で指定します。
Offline
>グローバルフィールドの部分に外来と入力したら、新規レコードでもその部分に外来の表記が残ってました。
これは、正常です。全レコードで同じ値を共有するのが「グローバル」の意味です。
>その後、外来での治療日を新しく入力していきましたが、外来で一番最初にきた日付がずっと残ってしまいます。
これはチポさんの通りにリレーションを直せばいいと思いますが、
「新しく入力した」レコードの値は随時更新されるでしょうけど、過去の一度表示したレコードでは自動的に最新になるのか微妙。関連レコードを再取得する(ウィンドウ内容の再表示、あるいはレイアウトの切り替えとかウィンドウを閉じるとか?)まで更新されないかもしれない。共有ファイルかどうかでも違うかも。
チポ様
ありがとうございました。リレーション組んでいた時にその画面まであるのは知ってましたが
詳しくまでは見ておらず、ここのことだと言われて痛感しました。
レベルの低い質問で申し訳ありませんでした。
が、私にとっては非常に助かりました!!!
今、まだデータベース作成中にてなるべく自分でやりますが困ったら
また相談に乗って頂ければ幸いです。
本当にありがとうございました。
himadanee様
ありがとうございます。
私はファイルメーカを使うといっても、簡単なスクリプトを使用する程度の知識しかないものでして
今回も勉強になりました。
前回、自分でチポ様に状況報告してから色々ネットで検索してみましたが、
gフィールドはそういうものだとあとで知りましてお恥ずかしい限りです。
また困ったら相談させて頂きますのでどうかよろしくお願い致します。
ありがとうございました。
Pages: 1
[ Generated in 0.008 seconds, 7 queries executed - Memory usage: 543.21 KiB (Peak: 563.75 KiB) ]