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

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

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

You are not logged in.

Announcement

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


#1 2014-03-08 09:19:11

hiratomo
Member

検査オーダー画面作成について

よろしくお願いします。
環境はwin7、filemaker Pro11 です。
私は病院に勤めているのですが、血液検査のオーダーシステムを作成しようと思っています。
現在作成している画面は以下の通りです。
-----------------------------------------------------------------------------
患者ID  患者氏名 生年月日 性別

血液検査項目
γ-GTP , GOT , GPT , U1 , U2 , S1 , S・・・・・・・・・・・(50個ほどあります)
-----------------------------------------------------------------------------
チェックボックスを利用すれば楽なのですが、医師からの要望で、任意の項目名をクリックすると項目背景が黄色になり、
もう一度クリックすると背景が透明になるようにしたいと考えています。(複数選択可能)

他のかたの質問を参考にして条件付き書式で色がつくようにしました。
・着色スクリプト(項目数だけ作成)
If[$$色GOT = Get(スクリプト引数)]
  変数を設定[$$色GOT;値""]
Else
    変数を設定[$$色GOT;値;Getスクリプト引数)]
End If
ウィンドウ内容の再表示
・検査項目名のテキストをボタンにし、条件付き書式で[計算式が$$色GOT="黄"のとき塗りつぶし色を黄色に設定

このように作成し、ボタンを押すごとに色が変わるところまでは作成できたのですが、この設定ですと、新規レコードを作成すると
前のレコードで黄色がついた項目が黄色のままになってしまいます。

患者さんごとに検査項目が違うので、新規レコードを作成した場合はすべての項目が選択されていない状態にしたいです。
色々調べているのですが、中々うまくいきません。

今後、どのように設定すればよいのか教えていただけませんでしょうか。
変数と条件付き書式を使った方法のほかによい方法があれば教えていただければ幸いです。よろしくお願いします。

                                                    hiratomo

Offline

#2 2014-03-08 10:41:50

旅人
Member

Re: 検査オーダー画面作成について

クリックするのは(ボタンになっているのは)フィールドですか、フィールドラベルですか。

Offline

#3 2014-03-08 10:59:15

hiratomo
Member

Re: 検査オーダー画面作成について

旅人 wrote:

クリックするのは(ボタンになっているのは)フィールドですか、フィールドラベルですか。

ご返信ありがとうございます。
フィールドは作成しておらず、テキストツールで項目を入力したものをボタン設定でスクリプト実行にしております。
フィールドラベルというのがわからないのですが、どのようなものでしょうか。
質問に質問を返して申し訳ありません。

Offline

#4 2014-03-08 12:23:07

旅人
Member

Re: 検査オーダー画面作成について

条件付き書式とスクリプトバラメータを50個設定でもいいのですか。

Offline

#5 2014-03-08 12:50:11

hiratomo
Member

Re: 検査オーダー画面作成について

もっと簡単に設定できる方法があれば、そちらがありがたいです。
難しいようであれば、50個設定でも問題ありません。
よろしくお願いいたします。

Offline

#6 2014-03-08 12:53:45

Shin
Member

Re: 検査オーダー画面作成について

患者毎、日毎(検査毎)にデータを持たせないといけませんね。
将来的に、項目が変わることも考えて、項目名は、マスターテーブルに登録していくほうがいいのでしょうが、とりあえずは、値一覧「検査項目」で作っておきます。

次に、検査を保存するテーブルを作り、患者名、日付、検査項目を保存するフィールドを作ります。
さらに、検査を入力するための繰り返しフィールド(項目数だけ繰り替えし)を用意し、次の計算式を設定しておきます。

GetValue ( ValueListItems ( Get ( ファイル名 ) ; "検査項目" ) ; Get ( 計算式繰り返し位置番号 ) )

このフィールドには、そのレイアウト上で

ValueCount ( FilterValues ( 検査テーブル::検査項目 ; Self ) )

を条件とした、条件付き書式を設定し、

If [ ValueCount ( FilterValues ( 検査テーブル::検査項目 ; Get ( スクリプト引数 ) ) ) ]
 フィールド設定[ 検査テーブル::検査項目; Substitute ( ¶ & 検査テーブル::検査項目 & ¶ ; ¶ & Get ( スクリプト引数 ) & ¶ ; ¶ ) ]
else
 フィールド設定[ 検査テーブル::検査項目; List ( 検査テーブル::検査項目 ; Get ( スクリプト引数 ) ) ]
end if
レコード確定
ウィンドウの再表示[ キャッシュ結合結果を書き込む; キャッシュされた外部データ]
現在のスクリプトを終了[ 結果: 0 ]

のスクリプトを、onObjectEnter トリガーで、Get ( アクティブオブジェクト内容 ) をスクリプト引数として、起動します。

ちょっとややこしいですね。

https://dl.dropboxusercontent.com/u/926 … 17.fp7.zip
サンプルファイルでは、セット等の一括登録削除が可能です。

Last edited by Shin (2014-03-08 18:57:19)

Offline

#7 2014-03-08 14:09:41

旅人
Member

Re: 検査オーダー画面作成について

テキストオブジェクトと繰り返しの両方作ってみたサンプル。
繰り返しの方は繰り返しをバラす必要があるとき注意。

http://pupld.net/21/140308/dnvw8thya6/index.cgi
ボタン色.fp7

Offline

#8 2014-03-08 14:12:48

hiratomo
Member

Re: 検査オーダー画面作成について

shinさま

ご返信ありがとうございました、さっそく試してみます。

Offline

#9 2014-03-10 13:50:39

hiratomo
Member

Re: 検査オーダー画面作成について

shin様  旅人さま

お二人の作っていただいたサンプルを参考にして(ほぼ流用ですが…)、目的のシステムを作成することができました。

素人なりに、作っていただいたサンプルを理解しようとしてみました。
・クリックされた項目(ボタン)のスクリプトで、保存フィールドに項目がリストアップされる
・リストアップされた項目をcount関数で抽出し、該当する項目のみ条件付書式で色を変える

このように理解したのですが、あってますでしょうか?

私一人では間違いなく完成することはできませんでした、ありがとうございました。
また機会がありましたら、よろしくおねがいいたします。

Offline

#10 2014-03-10 14:31:03

Shin
Member

Re: 検査オーダー画面作成について

クリックした(オブジェクトをアクティブにした)というトリガーで、項目の内容をスクリプト引数にして、スクリプトを動かしています。その中で、項目名を追加しています。(チェックボックスのリストでチェックするのと同じ)
その内容と、各項目の内容を比較して、あれば条件付き書式を起動、
ですね。

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.008 seconds, 11 queries executed - Memory usage: 571.53 KiB (Peak: 588.44 KiB) ]