みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
1点、分からないことがあるので教えてください。
以前、以下のトピックスで教えてもらいました。
フィールドの色を条件付き書式で変える条件が分からない
https://fm-aid.com/bbs2/viewtopic.php?pid=47893
ありがとうございます。
訓練スタッフ間の、同一患者の訓練時間が重なったら色をつけたいです。
以前相談した訓練患者名[10]を以下のようなフィールドに分解しています。
予定テーブル
・PT繰り返し[8]
・OT繰り返し[7]
・ST繰り返し[3]
・時間
レコード数が20あり、
8:40から20分きざみで時間が配置されています。
やりたいのは、PT、OT、STの訓練時間が重なっている患者レコードがあったら
レコードの色を変えたいです。
例)
PTのAという患者を8:40から実施
STはAという患者を9:20から実施
上記のように20分または40分の間隔で同一患者のレコードがあった場合に色を変えたいです。
同一患者の訓練時間が60分あれば、色は変えなくていいです。
以上のように、PTとOT、ST間で同一患者の訓練レコードに色をつけて注意喚起したいです。
色々、やってみたのですが、うまくできないので教えてもらいたいです。
お願いします。
Offline
自己リレーションをはり、自フィールドを List() で取り出して、FilterValues() で絞り込んで、数を数えればいいのですが。
繰り返しフィールドを入力用として使っているので、今後も全ての処理が面倒になっています。それを使わなければ、もっと簡単ですし、処理もスッキリします。
Offline
自己リレーションをはり、自フィールドを List() で取り出して、FilterValues() で絞り込んで、数を数えればいいのですが。
繰り返しフィールドを入力用として使っているので、今後も全ての処理が面倒になっています。それを使わなければ、もっと簡単ですし、処理もスッキリします。
Shin様、ありがとうございます。
そうなんですか。
繰り返しを使用しない方がうまく運用できるのですね。
どうしましょう。
また1から作った方が簡単でしょうか。
Offline
今のように、予定の重複チェックのみを扱うのでしたら、今のままでも何とか作り込んでいけばいいでしょう。
ですが、将来的に、患者ごとの予定表、訓練士ごとの予定表などを作ることになった場合、かなり苦労する事になります。少なくとも元データは、1患者1事象を1レコードにしておいたほうが良いと思います。そこから、今の繰り返しフィールドのレイアウトにデータを反映させるように作っておけば、現在の資産も利用できます。
Offline
Shin様のアドバイスをいただき、繰り返しフィールドを1つのフィールドに分解して、
あたらしくフィールドを作りました。
・PT繰り返し[8]
↓
PT1
PT2
・・・
・・
PT8
・OT繰り返し[7]
↓
OT1
OT2
・・
・
OT7
・ST繰り返し[3]
↓
ST1
ST2
ST3
このフィールド定義で、
このトピックスの目的である、患者の訓練時間のかぶりを条件付き書式で教えてくれるにはどうしたらいいでしょうか?
教えて頂けますか?
Offline
前回#47893回答 の考え方を拡張すれば、現状のDB構造でも生けますよ。
今回は、範囲時間帯同士で重複照合する自己リレーションを利用した作例サンプルです。
●サンプル「繰り返し間の時間重複チェック.fmp12」→ https://yahoo.jp/box/dSZLtq
Last edited by Hiro (2018-06-04 16:14:52)
Offline
いやいや、多数のフィールドに分けるのではなく、別テーブルに、1回の事象(訓練1回、入浴1回ごと)ごとのレコードを作り、それを一覧表のように見せるのです。
今の重複チェックのレベルだけでしたら、今のままで運用できますよ。
将来の拡張をどこまで考えておられるか、によって、考えましょう
もし、患者ごとの施術一覧表や、療法士ごとの施術一覧を作りたくなったら、今の構造では非常に苦しいです。
Last edited by Shin (2018-06-04 17:46:48)
Offline
なるほどですね。
アドバイスを頂き、HIro様、shin様、本当にありがとうございます。
今のところ、予定テーブルに繰り返しフィールドを使って入力したデータを以下のチェックにかけます。
・訓練時間の重複(PT・OT・ST)
・入浴時間の重複
これが完了したら、
1日の患者毎の訓練時間がそろうので、
1日毎の入院患者を一覧にして、
その日毎に患者毎の訓練時間を一覧でリスト表示して印刷をしたいのです。
例) <6/5の予定一覧>
患者A PT 9:40~ OT 13:40~ ST 15:40~
患者B PT 8:40~ OT14:40~
患者C PT14:00~ OT 9:00~ ST 10:00~
・・・・
・・・
・・
こんな感じです。
もし、患者ごとの施術一覧表や、療法士ごとの施術一覧を作りたくなったら、今の構造では非常に苦しいです。
そう考えると、入力用のフィールドは繰り返しフィールドを使わないような運用を考えた方がよさそうということでしょうか?
Offline
今の構造で、患者さんA の瀬術一覧を出す方法を考えて見てください。相当難しいですよ。
Offline
Shin様、深夜遅くに回答をいただきありがとうございます。
たしかに、その日の患者一覧を抽出する方法は私には技術不足もあり検討がつきません。
以下のトピックスを参考に一度作ってみたいと思います。
https://fm-aid.com/bbs2/viewtopic.php?id=7992
Offline
Shin様、お世話になります。
午前中、色々と試行錯誤してやってみましたが、
うまくできません。
Shin様に教えて頂いた、「患者ごとの施術一覧表や、療法士ごとの施術一覧を作りたくなったら今の構造では非常に苦しいです。」
というように、今後、まさに患者の訓練時間の一覧などを作成したいです。
これを実現するためのDB構築に関して、どのようにすればいいのかヒントを頂けないでしょうか?
トピックス違いになってきてしまい申し訳ありません。
Offline
Hiroさんのサンプルで、繰り返しフィールドを 7992 のスレッドのサンプルのような計算式に変更するだけです。
Offline
ドラッグ&ドロップに対応させた予定表です。
https://www.dropbox.com/s/tbfdudns4wm6t … 7.zip?dl=0
患者ごとや療法仕毎の一覧表は、予定テーブルで集計すると簡単に作れます。
Offline
shin様、こんなにすばらしいサンプルを作って頂き、本当にありがとうございます。
本当に素晴らしいですね。
サンプルのまま今、使っているファイルにインポートしてみたのですが、
うまく動きません。
具体的には、予約一覧のレイアウトで、
objレコード(業務レコード)をクリックしても、カーソルがレコード内に入らず、
テキストの入力ができません。
1から全てのデータをそのままインポートして、
テーブル間でリレーションをして、スクリプトもそのままコピーしました。
全て、サンプルのままだと思うのですが、
なぜかこのような現象が起きます。
フィールドの定義やスクリプト、スクリプトトリガも本当にサンプルと同じです。
なぜでしょうか?
スクリプトの理解もこれから動きを見ながら、学ぶつもりですが、
インポートすることで何か不具合が起きるのでしょうか?
Offline
Shin様、もう1度初めから確認したいと思います。
いろいろ、聞いてしまい申し訳ありませんでした。
このトピックスは1度終了させていただきます。
本当にありがとうございました。
Offline
今使っているファイルの構造を、こちらに持ってきたほうが簡単だと思います。
スクリプトは全部で30行ほどですが、最小の動きで抑えるために、高度な動きになっています。フィールドやレイアウトにも、普通では考えられないような動きがあります、
ぜひ、スクリプトデバッガーを使って、1ステップずつ動きを確認して見てください。adv 版をお持ちでなくても、FM17 の試用版で、デバッガーが動きます。
Offline
[ Generated in 0.012 seconds, 9 queries executed - Memory usage: 601.27 KiB (Peak: 618.18 KiB) ]