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

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

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

You are not logged in.

Announcement

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


#1 2019-10-14 17:53:01

y_y
Guest

エクセルのフィルタのような機能の実装について

予約枠作成依頼の管理をファイルメーカーで構築しようとしており、申請用レイアウトとその一覧を管理するレイアウトを作成したのですが、
一覧のレイアウト上で過去の申請の検索用にグローバルフィールドを追加し、検索可能にしたいと考えています。

以下のテーブルとリレーションを組み、試しに動的値一覧をポップアップメニューで設定しました。
①施設テーブル:施設コード、施設名(病院、クリニック、部門)
②診療科テーブル:診療科コード、診療科名、施設コード(例:内科、クリニック内科、放射線科)
③グループテーブル:グループコード、診療科コード、グループ名(例:CT、MRI
④予約項目テーブル:予約項目コード、診療科コード、グループコード、予約項目名(A医師、B医師、CT1、CT2、MRI1、MRI2)

設定した動的値一覧だと上位階層にあたる値が決まらないと選択しが出ないため、
例えば、③だけ値を選択して検索がしたいのにわざわざ①、②を選択しないといけなくなり、少し非効率と感じます。
また、グループに所属しない予約項目もあります。(テーブル④でグループコードが000のレコードがあるが、テーブル③に000のレコードがない)
可能であれば、エクセルのフィルタのように表示されているレコードからフィールド値を取得し、その値から絞り込んでいけるようにしたいと考えています。

動的値一覧の作り方次第で可能なのか、関数、スクリプト等で可能なのでしょうか。

#2 2019-10-14 22:32:18

Hiro
Member

Re: エクセルのフィルタのような機能の実装について

①~③は統合1テーブルで良いのでは?
②のレコードデータが固有で、①と③はその関連重複データです。

Offline

#3 2019-10-15 11:20:18

Shin
Member

Re: エクセルのフィルタのような機能の実装について

んッ、検査予約を受ける側ですよね。
①施設テーブル、②診療科テーブルで、予約申込側のデータで
③グループテーブル、④予約項目テーブル は、検査予定データで、
その間にはゆるい関係しか無いのでは。
また、検査グループが膨大にあって、依頼元によって特定の検査しかしない、という状況でなければ、グループテーブルには診療科コードは不要では。

Offline

#4 2019-10-15 16:23:46

y_y
Guest

Re: エクセルのフィルタのような機能の実装について

テーブル①は自身で作成
テーブル②、③は電子カルテシステムのマスタからインポートしたもの
テーブル④は電子カルテシステムのマスタの外部データソース

整理したところ、テーブル②で施設区分(本院、クリニック、老健施設)のフィールドと、
科区分(医科、歯科、検査科)のフィールドがあり、
本院かつ医科または歯科:病院
クリニックかつ医科または歯科:クリニック
検査科:部門
といった形で計算フィールドで作成していましたので①は不要でした。

わかりにくい説明をしてしまい申し訳ありませんでしたが、
予約を受けるのではなく、
A医師は火曜日、水曜日の午前中に30分毎に2人
B医師は月曜日の午後に30分毎に3人
CTは毎日、終日30分毎に1人のみ
予約の入力ができるように設定してほしいという依頼を入力させるのが目的です。

#5 2019-10-15 16:53:15

Shin
Member

Re: エクセルのフィルタのような機能の実装について

A医師は火曜日、水曜日に6個のボタン
B医師は月曜日の午後に12個のボタン
CTは毎日、16個のボタン
をならべたレイアウトを作り、日付を別にグローバルフィールドなどで持たせておくだけでいいのでは。
それぞれのボタンから、日付、時刻、種別を引数にしてスクリプトへ渡します。あとは、予約一覧でデータを設定します。

ボタンを並べるのが面倒でしょうし、既存の予約を表示する必要もあるでしょうから、繰り返しフィールドを使って、OnObjectEnter トリガーをボタン代わりにするのが楽かもしれません。

Offline

#6 2019-10-16 15:08:41

y_y
Guest

Re: エクセルのフィルタのような機能の実装について

Shin様

以下のような形で時間、曜日、人数を入力(□に数字を入力)させるレイアウトを作成済みです。
施設   
診療科 
グループ
予約項目
適用開始日
   月 火 水・・・
8:30 □ □ □
9:00 □ □ □
9:30 □ □ □



上記のレイアウトにあわせて概略(施設、診療科、グループ、予約項目)を抜粋してリスト形式で一覧を表示させるレイアウトも作成済みです。

その上で、やりたいことは施設、診療科、グループ、予約項目で絞り込み、申請があるかまたは過去の申請内容がどんなものだったかを、
依頼をする側、受ける側問わず検索をかけれるようにするのが目的です。


Hiro様

FikeMaker歴が浅いため、統合テーブルというものがよくわかっていません。
単純にテーブル②に対してテーブル③でもっているグループコード、グループ名のフィールドを追加することを言われているのでしょうか。
認識が間違っていなければ、テーブル③は25レコードしかないためその方針で行きたいと思います。

#7 2019-10-17 10:22:26

Shin
Member

Re: エクセルのフィルタのような機能の実装について

全く別の目的を示されたのでよくわかりませんが。

> 予約の入力ができるように設定してほしいという依頼を入力させるのが目的です。
#6で示された表組みの中で入力させたい、ということですか。
表組みをするためには、予約の枠組みを作るためのマスターが必要です。それをクロス集計の手法で表組みすればいいです。
さらに、予約のテーブルから予約状況を拾い出して、上にかぶせて表示させればいいですね。
表組みをクリックさせて、それを逆引きして予約マスターの情報を取得すれば、予約レコードを編集できます。


>施設、診療科、グループ、予約項目で絞り込み、申請があるかまたは過去の申請内容がどんなものだったかを、
依頼をする側、受ける側問わず検索をかけれるようにするのが目的です。
1予約1レコードにすれば簡単に集計できるので、別問題です。

Last edited by Shin (2019-10-17 10:25:41)

Offline

#8 2019-10-18 16:43:13

y_y
Guest

Re: エクセルのフィルタのような機能の実装について

目的はタイトル、#1の通りです。
#4、#6は#3の返信を見て誤解を与えている可能性を感じたことによる補足の説明です。
ここについてはご配慮していただく必要はありません。

申請No.  施設    診療科     グループ    予約項目
1     病院    内科              A医師
2     クリニック クリニック内科         B医師
3    部門    放射線科    CT       CT1
4    部門    中央検査    心電図     ホルター心電図

というようなリスト形式のレイアウトから、
施設、診療科、グループ、予約項目をそれぞれ値一覧から選択し、条件に合うレコードを抽出ささせる
試しに設定した動的値一覧では、グループで抽出するためには、施設、診療科の値が決定していないと選択肢が出ず、
グループからまたは、診療科から選択したい場合は可能かどうか

#1で上記の例を記述しておくべきでした。すいません。

#9 2019-10-18 22:01:39

Shin
Member

Re: エクセルのフィルタのような機能の実装について

そのようなマスターのリストでは、すべての項目に何らかのデータを入れておくべきです。(ダミー的なデータであっても)
ですから、
申請No.    施設        診療科    グループ    予約項目
    1    病院        内科        医師        A医師
    2    クリ        クリ内科    医師        B医師
    3    部門        放射線科    CT        CT1
    4    部門        中央検査    心電図    ホルター心電図
というグループを作っておくか、
申請No.    施設        診療科    グループ    予約項目
    1    病院        内科        A医師    A医師
    2    クリ        クリ内科    B医師    B医師
    3    部門        放射線科    CT        CT1
    4    部門        中央検査    心電図    ホルター心電図
というダミーのグループを作ってみるといいのでは。

または、診療科・グループを1個のものとしてみる、という方法もあるのでは。この形でのサンプル
https://www.dropbox.com/s/2r2tfk07e1qm6 … 2.zip?dl=0

Last edited by Shin (2019-10-28 16:45:41)

Offline

#10 2019-10-25 15:39:53

y_y
Guest

Re: エクセルのフィルタのような機能の実装について

Shin様

イメージとしては後者でご提示いただきましたサンプルの値一覧に近いのですが、
診療科とグループを一括りにすると、部門を選択すると40件以上が候補になってしまうため、
見やすさを考慮すると一括りにすべきではないと判断しました。
施設→診療科→グループまでの動的値一覧は意図通り動くのですが、
リレーションの組み方がいまいちわかっておらず、
予約項目がグループで絞られずに診療科で絞られた状態になったり、定義済みの値なしとなってしまいます。

#11 2019-10-25 17:26:47

Shin
Member

Re: エクセルのフィルタのような機能の実装について

階層数を揃えないと、機構的に無理です。
#9の上側のイメージで実装されればいかがですか。
または、医師の予約と、検査の予約は、別の仕組みで階層化するとか。

Offline

#12 2019-10-26 16:23:00

y_y
Guest

Re: エクセルのフィルタのような機能の実装について

グループコードを持たない診療科に「000」のダミーのグループコードを計算フィールドで無理やり割り当て、
診療科とグループによって、予約項目を決定と考えたのですがそれも無理ということでしょうか

#13 2019-10-26 16:27:12

Shin
Member

Re: エクセルのフィルタのような機能の実装について

それは、医師というグループを作る事と同じことでは。

選択肢が1個だけの場合は、それを強制的に設定してしまい、次のフィールドへ移る、という動きを実装するのが、ユーザーには優しいと思います。

Last edited by Shin (2019-10-27 11:54:02)

Offline

#14 2019-10-28 12:42:57

y_y
Guest

Re: エクセルのフィルタのような機能の実装について

例に出さなかったので悪いのですが、医師以外に部門でもグループを持たない診療科があるため、医師予約、部門予約を別で構築しても解決しません。
>選択肢が1個だけの場合は、それを強制的に設定してしまい、次のフィールドへ移る、という動きを実装するのが、ユーザーには優しいと思います。
やりたいのはやまやまですが知識がありません

#15 2019-10-28 15:25:13

Shin
Member

Re: エクセルのフィルタのような機能の実装について

では、グループがあるものとないもので、仕組みを変えればいいでしょう。グループのフィールドを隠すだけですから簡単です。
https://www.dropbox.com/s/2r2tfk07e1qm6 … 2.zip?dl=0
同じフィールドを2個かぶせて、異なる設定になっています。前のフィールドから、条件によってそれぞれのフィールドに飛ぶようになっています。

Last edited by Shin (2019-10-30 08:46:16)

Offline

#16 2019-10-30 14:03:03

y_y
Guest

Re: エクセルのフィルタのような機能の実装について

とても参考になる値一覧、スクリプトのご提示ありがとうございました。
今回の件だけでなく、今後の開発にも有効に活用させていただくことになるかと思います

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 7 queries executed - Memory usage: 562.69 KiB (Peak: 583.59 KiB) ]