みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
過去レスでも解決できず質問させてください。
血液検査結果の値を入力したときに、正常領域の低値より低い場合には青、高値より高い場合には赤で表示させたいです。
白血球の値のところで、Self≥"動物種血液検査正常値DB::白血球数の正常高値" これを赤 で設定、と その逆で青を作成しましたが、
どんな値をうってみても赤でしか表示されなくなりました。ものによってはどれをうっても青です。
計算式が間違っているのかなと思っているのですが、なにを選んでいいやらわかりません。
あと、検査結果を打ち込む値が25個ほどあるので、いちいち条件を設定するのも面倒に思えます。
スクリプトボタンで一度に設定する方法はあるのでしょうか?
よろしくお願いいたします。
>血液検査結果の値を入力したときに、正常領域の低値より低い場合には青、高値より高い場合には赤で表示させたいです。
入力が数字ならば、
計算式
Case(IsEmpty(動物種血液検査正常値DB::白血球数の正常高値);0;GetAsNumber(動物種血液検査正常値DB::白血球数の正常高値) > 20)
数字が20以上の時…
となると思います。
>あと、検査結果を打ち込む値が25個ほどあるので、いちいち条件を設定するのも面倒に思えます。
スクリプトボタンで一度に設定する方法はあるのでしょうか?
これはもしかして動物種によって値が変わるということでしょうか。
それならば動物種によってレイアウトを分けて、そのレイアウト毎に条件付き書式を設定する方法がありますね。
お返事ありがとうございます。
犬、猫、ウサギなど動物種ごとに一つのレイアウトで正常値が変更されるように表示させるものを作成しました。
ですので、例えば犬正常値6000-17000 として今回の結果が500なら青、30000なら赤という風にしたいのですが、正常値は一つで定型でなく動物種ごとに変わります。
レイアウトを動物種ごとに正常値のみ変更させることで1つのレイアウトですませるようにしています。
よろしくお願いいたします。
Self≥"動物種血液検査正常値DB::白血球数の正常高値"
" ダブルクォーテーション は、要りませんが...書き間違い?
Offline
Self>動物種血液検査正常値DB::白血球数の正常高値 にしてみても 10であろうが20000であろうが正常値の幅の数値であろうが、赤表示になります。
> 動物種血液検査正常値DB::白血球数の正常高値
他のテーブルの値を参照するのですから、両テーブル間でリレーションが必要でしょう。
リレーションは、、
テーブル構成の説明が足りません。。
> 検査結果を打ち込む値が25個ほどあるので
参照するフィールドもそれぞれ異なるでしょうから、それごとに設定するしかないのでは。
Offline
フィールド”正常値”を作成し、正常値を入力
計算式
Case(IsEmpty(動物種血液検査正常値DB::白血球数の正常高値);0;GetAsNumber(動物種血液検査正常値DB::白血球数の正常高値) >GetAsNumber(動物種血液検査正常値DB::正常値) )
以上の式ですと、白血球数>正常値の時…
となりますね。
あとはスプリクトで動物種毎に正常値を切り替えてやればできるかな。
度々ですみません。リレーションは組めています。犬にすると犬が表示され猫を選択すれば猫が表示されるようルックアップしてあります。
正常値の低値と高値の2個のフィールドを作成しています。
レイアウトを複製して値に数字を打ち込めは解決するのかもしれないのですが、せっかくルックアップなので計算式が組めればと思っています。
abanku様が書いてくれた式のCase(IsEmpty(動物種血液検査正常値DB::白血球数の正常高値);0;GetAsNumber(動物種血液検査正常値DB::白血球数の正常高値) >GetAsNumber(動物種血液検査正常値DB::正常値) ) 最後の>GetAsNumber(動物種血液検査正常値DB::正常値) は高値の3回記載ですか、それとも白血球測定結果ですか?
高値にすると赤になりませんでした。式の意味が分からないままですみません。
リレーションができているのなら参照に問題は無いですね。
> 例えば犬正常値6000-17000
動物種血液検査正常値DB::白血球数の値が、
6000-17000
この様になっているのでしょうか?
とすると、もっと面倒なことに。。
Offline
私のイメージではこんな感じかと思いました。
関数に関して「関数・スクリプト サンプル活用辞典」より引用して解説します。
case(条件1;結果1{;条件2;結果2;デフォルト値…})
説明
計算式で指定した条件を基に、結果を返します。「条件1」が真の場合は「結果1」を、偽の場合は「条件2」が真であれば「結果2」を返し、全ての条件が偽の場合はデフォルト値を返します。デフォルト値は省略可能で、何も設定されていない場合は値を返しません。
なお{}内の引数は省略したり、条件と結果を増やすことも可能です。
(例)case(性別=”男性”;1;性別=”女性”;2;0)
「性別」フィールドの値が「男性」の場合→1
「性別」フィールドの値が「女性」の場合→2
「性別」フィールドの値が「男性」「女性」以外の場合→0
IsEmpty(フィールド)
説明
計算式で指定したフィールドにデータが入力されていない場合は「真(1)」を、データが入力されている場合は「偽(0)」を返します。
(例)IsEmpty(入力)
「入力」フィールドにデータが入力されていない場合→1
「入力」フィールドにデータが入力されている場合→0
Get As Number(テキスト)
説明
テキストを数値データに変換します。テキストの中の半角数字、全角数字部分だけ取り出され、数値として返されます。
(例)Get As Number(〒123ー4567)→1234567
条件付書式で直接計算するのではなく、一旦計算フィールドで結果を出してみてはどうでしょう。
■検査結果を入力するテーブルに追加する計算フィールド
フィールド名:白血球状態
計算式:
Case(isEmpty(白血球);""
;白血球>=動物種血液検査正常値DB::白血球数の正常高値;1
;白血球<=動物種血液検査正常値DB::白血球数の正常低値;-1
;0)
■レイアウトの条件付書式
条件1:白血球状態=1
書式1:赤
条件2:白血球状態=-1
書式2:青
計算フィールドになっていれば確認も容易でしょうし。
Offline
皆様素人相手にいくつも案を提供していただき本当にありがとうございます。
ようやくcaseの関数を理解できました。単純に白血球数結果>正常値の高値だけでなんとかなるのかと思って打ち込んでもあるものは赤、あるものは青になるばかりで頭を悩ませていました。
次つぎに問題にぶつかりながらですが、おかげさまで少しずつ出来ています。成功次第解決ボタンを押します。
本当にお世話になりました。今後もよろしくお願い致します。
重大な問題、ミス?に気づきました。みなさんに教えてもらった通りに作成したのに色がまちまちに出ました。abankuさんの通りにコピペして作動させてもおかしいのです。
もしかしてと思ったのはポータルを作成し今回検査結果と前回検査結果をならべて表示しています。ポータルの枠を透明にしてエクセルで作ったかのような外枠に納めて表にして印刷しようとしています。
ポータルからフィールドを外にだして数値を打ち込むとキチンと色が表示されました。ポータル内にフィールドをもどすと入れるとでたらめになります。
これにはいい解決策がありますでしょうか?
いたらぬ点が多くてすみません。
まず、現状を整理します。
やりたいことは、
血液検査結果の値を入力したときに、正常領域の低値より低い場合には青、高値より高い場合には赤で表示させたい。
現状は、
フィールドの条件付き書式に計算式を打ち込むとキチンと色が表示された。
ポータルの枠を透明にしてエクセルで作ったかのような外枠に納めて表にして印刷しようとしている→デタラメになる。
私の疑問点
>ポータルの枠を透明にしてエクセルで作ったかのような外枠に納めて表にして印刷しようとしている。
これってもしかしてポータルの設定を行わずにポータルの上にフィールを置いてリレーションなどを組んでいます?
でもフィールドに条件付き書式の設定を行っているからデタラメにならないはず…
2021.02.15に三毛猫でポータルの使い方を質問し、shin様にご回答いただいたつながりで作成している状況です。
途中までですがもしよろしければお手間をおかけして申し訳ないのですが、説明が至らないため実際のものを見てください。
血液検査登録画面レイアウトで打ち込み画面を作成しており、予定では印刷ボタンで エクセル表のように印刷するつもりで表の中に縦長一列のポータルを入れています。
枠内に収まり作動しているのを確認してポータルの枠を透明にしています。表の条件付き書式はちゃんと式ができていませんが、登録画面の白血球のみお二人に教えていただいた
計算式でポータル外はキチンと作動します。白血球結果のフラグフィールドを作成してポータルではやはり数字の変化がみられずポータルのなかに入れたときのみエラーのように
動いていることがわかります。よろしくお願いいたします。
ファイルメーカー19を使用しています。作成したのは評価版でシングルライセンスを購入しました。
サンプルを拝見させていただきました。
やりたいことはペット患者さんの血液検査の結果を入力して、数値に色をつけて見やすくしてカラー印刷したいと言うことですね。
血液検査メニューとペットマスタに重複フィールドがあり、結論から言うと構造に問題があるようです。このまま開発を進めても非常に使いづらいものになると思います。
A4用紙に印刷するのかは分かりませんが、用紙サイズ、文字サイズ、フィールドサイズ、あらゆる要素が印刷範囲を崩してしまっています。
苦労して作成した検査表レイアウトはそのまま使えるので、一から作り直す必要はありませんが、構造を見直す必要があると思います。
Offline
ウィンさんコメントありがとうございます。
自分で作って自分で使おうと作り始めてみたものの、何が正解なのかはよく分かりません。
前回、前々回の日付でルックアップさせるのか。。。
エクセルの手書きだった表を下に線を引いて表を作成し、収まるように無理やりフィールドを押し込みました。エクセルの作成済みのテンプレートに吐き出すことが出来れは表は完成するのかもとも思ったのですがその方法もわからず、csvに出してまたやり直してと手間がかかりそうでした。
重複を確認してみます。素人のため、もし、はなからアイデアが悪いようでしたらよいアドバイスをいただけたら大変助かります。
よろしくお願い致します。
ファイルメーカーでの開発アプローチは人それぞれです。どのアプローチで行くかは好みによります。
ファイルメーカーはエクセルとの親和性も高いので、なかなか脱却できず、双方中途半端な連携を持った使い方をする人が多いと思います。
シングルライセンスを購入してまでファイルメーカーを気に入ったのであれば、Excelとはサヨナラしましょ(Excelの知識はFMでも役に立ちます)
常識を逸脱した構造・デザイン・要求をしない限り、貴方が思い描いているものは全てファイルメーカーで実現可能です。何なら何でもっと早くに始めなかったのだろうと思うことでしょう。
サンプルを見直してみます。
Offline
このサンプルは開発途中のオリジナルから切り出したものですか?それとも完全なオリジナルファイルですか?
正直言って基本構造がヤバいです。言い方悪いですが理想と現実が乖離しています。
条件付き書式についてはmicさんのやり方が容易で楽ですね。再現できましたよ。
http://frds.html.xdomain.jp/2021-03-13.png
http://frds.html.xdomain.jp/2021-03-13-2.png
Last edited by ウィン (2021-03-13 19:03:17)
Offline
本当にお手数おかけしてすみません。そしてありがとうございます。
言いたくないくらいですが、お恥ずかしながらオリジナルファイルです涙。
youtubeや本で独学して、エクセルの表を写真でjpegにして上から線を引けばよいのか!と見たことを真似ながら、とにかく項目をどんどん作りました。テキスト名とか本当に必要なフィールドのみに削ぎ落とすほうがいいのだろうと思いながら足りないのは良くないと多くなりました。デフォルトで最初からあるフィールドも何に使うのかさっぱりわからないところです。
本当は、検査機械から自動で数値を取り込むところまで出来れは手打ちのミスも無く夢のようと思っています。
実際のところ、シンプルじゃないとは思うもののえーこれってやばいのか!と問題点がわかっていません。そこがまたやばいのでしょうねᕙ(⇀‸↼‶)ᕗ
貴方のサイトの問い合わせをさせて頂きました。後ほどご覧ください。
フィールド数は多いものの大変シンプルですよ。ですが基本データとなり得る顧客情報のフィールドがグローバルフィールドであったり、マスターデータとなり得るテーブルが2つあったり、顧客情報との動物種と連携させず、結果履歴DBとリレーションしていたりと合理性に欠けるものになっています。
検査機械との連動はいいじゃないですか〜
検査機械はどのような形式で出力されてきますか?遠心分離機の横にアイパッドほどの画面のついているものですか?
検査機械からの出力ファイル次第では自動化の可能性も高いですね。
血液検査メニューレイアウトの用途はわかりませんが、お客様データはペットマスタテーブルを使えば良いと思います。テーブルを切り分けておく必要はないと思われます。
動物種フィールドには値一覧などで各種動物種が選択出来るようにしておきましょう。
検査報告書レイアウト内の枠組みは複数必要ありません。しっかりとした印刷プロセスを考えれば一括印刷が可能です。
クリニックのカルテシステムをファイルメーカーで行いたいのであれば、ある程度までの基本構造は専門家にお願いして、カスタムはご自身でおこなうと言う形を取った方が良いかもしれません。
全て手掛けたいのであれば、テーブルオカレンスの概念、リレーションシップ、各種関数を駆使して、失敗を繰り返しながらでも挑戦し続けて行く必要があります。
Last edited by ウィン (2021-03-13 22:46:09)
Offline
実は、十年前に顧客管理や会計、処方箋などのソフトをファイルメーカーで作成しました。その時にプロの会社に依頼しお金を払って指導していただきました。その方が、早くに亡くなったために継続して進化させることが出来ずズルズルしています。
カルテにペットマスタが入っているので取り込んで使おうと思っています。コンセントは〇I〇Iで、それを取り込んでフィールドにいれる方法とかプロにお願いしないと無理なところもあるのかなと思っていますが、何とかできる所までやって見たいと思っています。
自分でやろうとしたのもお願いした業者がペットとなると後回しにされ続け3年たっても完成させてくれず。。自分でやることに決めました。
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 582.35 KiB (Peak: 619.26 KiB) ]