FileMakerPro8で計算フィールドの文字色を変更する方法は?

このQ&Aのポイント
  • FileMakerPro8で「住民検診」のデータを入力するレイアウトを作成しています。検査結果が基準値内なら青色の文字で表示し、基準値を超えた場合は赤色の文字で表示したいと思っています。フィールドのタイプが「数字」ならうまくいくのですが、計算フィールドだけがうまくできません。
  • BMI値は身長と体重から計算されるため、計算フィールドになります。計算式はRound(体重 / ((身長 / 100) * (身長 / 100)); 1)です。BMI値フィールドの文字色を変更するためのスクリプトを作成しましたが、実行すると「このフィールドは変更禁止なので、この操作は実行できません」というメッセージが表示されます。
  • 初心者の方にとっては理解しにくいかもしれませんが、このような事象はデータベースの仕様によるものです。回避する方法としては、計算フィールドではなく、テキストフィールドを利用することが挙げられます。計算フィールドに代わり、テキストフィールドを作成し、スクリプトで条件に応じてテキストフィールドの文字色を変更するように設定することで目的を達成することができます。
回答を見る
  • ベストアンサー

ファイルメーカー:計算フィールドの文字の色をスクリプトで変更しようとすると、変更禁止のメッセージがでる。

 FileMakerPro8で、「住民検診」のデータを入力するレイアウトを作っています。検査結果が基準値内なら、青色の文字で、基準値を超えた場合は、赤色の文字で表示したいと思っています。各フィールドのタイプが「数字」ならうまくいくのですが、一箇所だけ「計算フィールド」があり、そこだけがうまくいきません。  BMI値は、身長と体重から算出するので、どうしても計算フィールドになります。計算式は、 Round (体重 / ((身長 / 100) * (身長 / 100)) ; 1 )です。  BMI値フィールドの文字の色を変更するため、「BMIチェック」というスクリプト IF (住民検診::BMI ≥ 18.5 and 住民検診::BMI < 25) フィールド設定(住民検診::BMI TextColor ( 住民検診::BMI ; RGB ( 0 ; 51 ; 153 ) ) ELSE フィールド設定(住民検診::BMI TextColor ( 住民検診::BMI ; RGB ( 255 ; 0 ; 51 ) ) を作成したのですが、スクリプトを実行すると「このフィールドは変更禁止なので、この操作は実行できません」というメッセージが出てうまくいきません。  このような事象が仕様によるものだということは、なんとなくわかるのですが、データベースは初心者でよくわかりません。このような事象を回避する方法がありましたら教えて下さい。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

5.5しか使ってませんが、 if(Round(体重/((身長/100)*(身長/100));1) >18.5 and Round(体重/((身長/100)*(身長/100));1) <25 ;    TextColor(Round(体重/((身長/100)*(身長/100));1);rgb(0;51;153));    TextColor(Round(体重/((身長/100)*(身長/100));1);rgb(255;0;51))   ) みたいになるんじゃないですかね。ま、私なら、「BMI表示用」って テキストフィールド作って、そっちをいじりますけどね。

ojiyan
質問者

お礼

回答ありがとうございます。TextColor(Round(体重/((身長...) の箇所が思いつきませんでした。100%の回答をいただきありがとうございました。うまく表示できました。回答の最後にありますように、「BMI表示用」というフィールドを作り、そっちをいじります。フィールドが一つ増えるけど処理がすっきりしますね。

その他の回答 (2)

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.3

>どのような計算式を書けば可能なのでしょうか? FM6にはTextColor関数が無いので8の試用版(Mac)をダウンロードしてみました。 6とはかなり違うので戸惑っています。 No.2の方の式のようなものになると思いますが、TextColorは引数も戻り値もテキス トとなっているのですね。でも数字でも計算するようですね。

ojiyan
質問者

補足

回答ありがとうございます。ご指摘のように、引数や戻り値が「テキスト」にも関わらず、フィールドタイプが「数字」でも、文字の色が計算どおりに変わってくれます。  私も最初はそれが原因だと思いましたが、実際には出来てしまいます。

  • chieffish
  • ベストアンサー率44% (1149/2554)
回答No.1

FM8は注文中なので良く解っていませんが スクリプトにしないで計算式にするというのはダメなのですか?

ojiyan
質問者

補足

 回答ありがとうございます。BMIの計算をして、その計算結果の条件によって文字の色を変えるという計算式が思いつかなかったので、スクリプトを使おうと考えました。どのような計算式を書けば可能なのでしょうか?もし良ければ教えてください。

関連するQ&A

  • ファイルメーカーでフィールドの背景色をスクリプトなどで指定できますか?

    宜しくお願いします。 Aフィールドの内容によって、Bフィールドの背景色を変更したいのです。 Bフィールドの文字色の変更はtextcolor関数とRGB関数で出来るのですが、テキストボックス自体の背景色を同じように変更する方法は用意されているのでしょうか?

  • ファイルメーカーPro7の関数でテキストの色を変えるには?

    レコードが特定の条件を満たした場合に限り、 テキストフィールドの文字列を色付きで表示させる方法はありますか? 具体的には性別(テキスト)による姓名(テキスト)の色分けを試みた場合に、 下記のような関数を記述しても思ったような結果が得られません…。 If(Exact(性別;"Male");TextColor(姓名;RGB(0;0;255));TextColor(姓名;RGB(255;0;0))) ファイルメーカーに詳しい方がおられたら、 是非ご教授をお願いいたします。m(_ _)m

  • ファイルメーカー・スクリプトの作成法を教えて下さい。

     ニュース・ダイジェストを編集する操作を一括処理するため、以下のような手順でファイルメーカーのスクリプト作成を試みましたが、うまく行きません。 1)スクリプト・メニューで『ScriptMaker(S)』を選択。 2)『作成』を指定。 3)『スクリプト名』を『ダイジェスト』と記入。 4)検索実行[記憶する]。  (レコード番号フィールドで特殊文字『*』を検索し、全カードを選択) 5)レコードのソート[記憶する]。  (国地域/日付/フィールド番号の順にソート、何れも昇順。) 6)『フィールド内容のエクスポート』で『日付』を指定。 7)再度『フィールド内容のエクスポート』で『見出し』を指定。 8)さらに『フィールド内容のエクスポート』で『前書き』を指定。 9)『スクリプトを完全アクセス権で実行』をクリックし、『OK』。 10)『スクリプトに表示させる』をクリックし、『実行』。 11)ソート画面がポップアップするため、『OK』をクリック。  以上のスクリプトにより『ダイジェスト.tab』と言うファイルが作成されましたが、ワードで中身を見ると、15本の記事中の最初の1本の『前書き』のみでした。  しかし手動で以上の操作を行うと、15本の記事の『日付』/『見出し』/『前書き』を含んだ『ダイジェスト.tab』が作成されます。  スクリプトの作成手順の誤りを教えて下さい。また、手動で 『フィールド内容のエクスポート』を実行する際には『出力ファイルの文字セット』を『日本語(Shift-JIS)』に設定しますが、この設定をスクリプトに組み込む方法も教えていただければ幸いです。よろしくお願いします。

  • BMIの数値って全然アテにならないのでは?

    BMIの数値って全然アテにならないのでは? ※BMI=体重 ÷ 身長(m)の2乗 22前後が標準体重とされる。18.5以下が痩せ。25以上が肥満。 が基本です。 私は身長163cmで体重52kg(体脂肪8%)の標準体型ですが 理想体重は58kgと出ました。私が体脂肪15%の時ですら55kgです。 正直、163cmの身長で58kgってどんだけデブなんだよって思ったぐらいです。 実際に私と同じぐらいの身長で59kgの人いますが、デブです。お腹とかポッチャリしてます BMIの計算方法を考えた人ってデブ専の人なんじゃないでしょうか? 体重と体脂肪率をこまめに見てた方がよっぽど参考になると思うんですが・・・ そりゃ基準ってあるだろうけど、BMIの基準数値の体重って高すぎじゃないですかね?

  • プログラミングのC言語について質問です。

    プログラミングのC言語について質問です。 身長をS(cm)T(kg)に入力して、身体比bmiをしたの式で計算し、体型を判定して身長、体重、及び体型を出力するプログラムを作成せよ。ただし、入力データは4種類あるので{データの入力、計算、判定、出力}を繰り返し命令によって、4回繰り返すようにする。 身長比 (body mass index) : bmi = 体重÷身長の二乗×10000 <体型判定基準> bmi<19ならば「痩せ型」 bmi>24ならば「肥満型」 19≦bmi≦24ならば「標準型」 <出力形式> 身長は 173.5cm 体重は 63.5kg 身長比(bmi)はXXX.Xで、標準型の体型です。 ifを使ってやるのですが、書き方が分からないので分かる方よろしくお願いします。

  • C言語について

    今、大学の授業でやさしいC第3版という本をつかってC言語の勉強していてわからない問題が出てきたので質問させてください。 問題9 Char型の変数ChとInt型の変数nを宣言し アルファベットの大文字1文字と 整数1つを入力させて 次の2つの事を実行する実行ファイルを作成せよ。 1.その文字を表示する。 2.文字コードを使ってその文字をn文字シフト させた文字を表示する。 Q: Zを1文字シフトさせた時Aが出力されるようにするには どうしたらよいか?アスキーコード表をにらんで考えよ。 問題10 キーボードから身長と体重を入力させて BMIを計算して表示する実行ファイルを 作成せよ。 BMI(Body Mass Index)とは 身長と体重から求める体格指数の1つで 身長 H (m)、体重 W (kg) の時 BMI=W/H2 で求められる。 これはまだ最初の方で第3章から第5章までのところをやっています。

  • ファイルメーカーPro6 全レコードでのスクリプト実行

    お客様のデータ管理をファイルメーカにて行っています。 基本ファイルAと対応履歴の内容ファイルBとがあり、Aにポータルを作成し、顧客ごとの訪問履歴の管理を行っています。 今、このAファイルに新しく、訪問回数をポータル内のレコードの数にて確認するためのレイアウトを作成しました。 複数顧客の状況を一目で確認できるように、リスト形式にて表示させているのですが、どうしてもポータル内のレコード数を計算させるために、顧客ごとにボタン押下にてスクリプトを実行させなければなりません。 顧客数が多いため、はっきり言って現在の状態では活用することが出来ません。 全レコードのスクリプトを一度に作動・計算させる方法はありますでしょうか? もしくは、別の対処方法があるようでしたらご教示いただけたらと思っております。 ちなみに現在は、履歴入力用(ポータルの在る)レイアウト(1)と訪問回数確認用のレイアウト(2)をスクリプトにて、(2)→(1)(ポータル数計算)→(2)と移動させています。 また、ポータル内の最終レコード内にある、日付フィールドの日付(最終対応日)のみを(2)のレイアウトに反映できれば、と思っていますが、どうしても初めのレコードの日付が反映されてしまいます。 あわせて、宜しくお願い致します。

  • BMIについて

    身長162センチ、体重50キロ、妊婦です。 身長・体重から計算する肥満度の判定方法のBMI指数だと19くらいです。 ですが、体重計で量るBMIでは28もあり、肥満になります。 やはり体重計のBMIが正しいのでしょうか? 痩せ型ですが、最近妊娠5ヶ月で最近つわりが終わったのもありすごい食べています。(甘いものなども) でも体重は増えてません。 肥満ということになるのでしょうか?

  • 妊娠中の体重管理はBMI基準?

    検診に行くと、体重測定が必ずあり、体重管理されますが、 最初、何キロまで増やしていいか、というのをBMI基準で指導されました。 私は数年、スポーツで筋トレなどをしており、多分筋肉の方が比重が重いので、体重自体は軽い・・・というものではないと思うのですが、体脂肪率で「細め」と出ていても、BMIでは標準になります。 見た目や健康状態も、体重を構成しているもので変わると思うので、アテにならないように思うのですが、何故産婦人科ではBMIが基準なんでしょうか。

  • 身長148センチで34キロになるのは可能ですか?

    身長-110×0.9が理想体重だと教えてもらいました。それに合わせると私の理想体重は34キロになるのですが。私は今38キロなのであと4キロが遠いです。すでに諦めモードです。 BMIだとやせ型だと思うのですが、「BMIは健康が基準だから、あんまり当てにならないよ」と言われてしまいました。