初心者のFileMaker pro Q&A

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

1.ファイルメーカーで解らない事があればここで質問して下さい。

何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

ログインしていません。

アナウンス


#1 2014-10-08 16:11:26

はじめ21
ゲストユーザー

[解決] Evaluate 関数を教えてください。

お世話になります。
Evaluate 関数で
IF関数かCase関数などの条件分岐関数と組み合わせで止まっています。
Evaluate ("Case(A=1);YES" ; [区分])というもので
""で条件式をつけてもうまくいきません。
ファイルメーカー12とWin7を使っています。

#2 2014-10-08 16:19:02

tim
ゲストユーザー

Re: [解決] Evaluate 関数を教えてください。

//Evaluate ("
Case(A=1);YES
//" ; [区分])
これで計算できないとおかしい。カッコの位置が違う。

#3 2014-10-08 16:34:00

Shin
メンバー

Re: [解決] Evaluate 関数を教えてください。

Evaluate ("Case(A=1;YES)" ; [区分])
にしたらどうでしょう。

オフライン

#4 2014-10-08 18:05:18

Hiro
メンバー

Re: [解決] Evaluate 関数を教えてください。

Evaluate ("Case(A=1;\"YES\")" ; [区分])   かな?

オフライン

#5 2014-10-08 20:11:31

はじめ21
ゲストユーザー

Re: [解決] Evaluate 関数を教えてください。

Hiro様の御教示頂いた式でできました。ありがとうございます。

tim様、Shin様、私の質問の説明不足で申し訳ございませんでした。

#6 2019-10-04 12:47:10

Valon
メンバー

Re: [解決] Evaluate 関数を教えてください。

お世話になっております。
こちらのトピックにつきまして追加で質問失礼します。
FM18 Windows10です。

Evaluateの中にCaseを使用できることは分かりました。
Evaluate ( "Case ( A = 1 ; \"YES\" ; B = 2 ; \"NO\" ; \"ERROR\" )" ; [ 監視フィールドA ; 監視フィールドB ] ) 
区分に監視フィールドを入れても常時判断してくれません。
(監視フィールドAと計算式中のAは同じフィールドです。)

別テーブルおよび外部データベースでも反応するのでしょうか。
また、監視フィールドが計算フィールドでその計算式を外部データベースから引用しているデータでも反応するのでしょうか。

フィールドタイプ:テキスト
入力値の自動化に記載。既存値を置き換え、常に評価する
としています。

素直に計算フィールドを使うべきでしょうか。


もう一点、Evaluateヘルプ内に
「サーバーサイドスクリプトで評価された場合、ローカライズされた関数名を認識しません。」とありますがどういった意味でしょうか。


よろしくお願いいたします。

オフライン

#7 2019-10-04 13:10:13

himaganee
ゲストユーザー

Re: [解決] Evaluate 関数を教えてください。

計算値の自動入力なら、同じレコード内のフィールドが変更されないと計算されないでしょう。非保存の計算フィールドは対象外です。

「ローカライズされた関数名」とは、各言語のUIに合わせた(ドイツ語ならドイツ語の)関数名のことです。日本語UIでは関数名は英語のままなので、関係ありません。しかし、Get関数のフラグなどは、やはり日本語だとだめで英語のを使う必要があります。

#8 2019-10-04 13:25:08

Valon
メンバー

Re: [解決] Evaluate 関数を教えてください。

himaganee様
ありがとうございます。

同じレコード内→同じテーブル内ですか?

ローカライズされた関数名につきましては承知いたしました。
Get関数を使う際は注意いたします。

よろしくお願いいたします。

オフライン

#9 2019-10-04 13:40:51

Shin
メンバー

Re: [解決] Evaluate 関数を教えてください。

> 同じレコード内→同じテーブル内ですか?
そのレコードが直接参照できるレコードですので、同じレコード内です。
同じテーブル内の更新を検出する方法は、ちょっと難しいかも。


> Get関数のフラグなどは、やはり日本語だとだめで英語のを使う必要があります。
そうなんですが、英語の関数フラグ、どこで入手するといいのでしょうね。いつも、英語版のヘルプを出してきて調べるんですよ。(メチャ面倒)

編集者 Shin (2019-10-04 13:46:56)

オフライン

#10 2019-10-04 13:42:02

himaganee
ゲストユーザー

Re: [解決] Evaluate 関数を教えてください。

テーブルというより、レコードです。関連レコードの値を変更しても自動計算されないので。「関連テーブルは別のテーブル(オカレンス)だ」という用法なら、テーブルといってもいいですが。
リレーションを使わずに他のレコードの値を参照する計算式としては、GetNthRecord()やExecuteSQL()を使ってるとして、他のレコードの値の変更時に再計算されるということもないでしょう。

Get以外でも、「太字」とかの定数も「ローカライズ」されてるので、だめですね。

#11 2019-10-04 16:25:41

Valon
メンバー

Re: [解決] Evaluate 関数を教えてください。

お二方 ありがとうございます。

遠いデータ(リレーションの先の先の関連など)の更新に合わせてテキストフィールドの値の更新することは
難しそうです。

計算フィールドをを多用しているので無駄がないか色々と考えてみます。

いつもご丁寧にありがとうございます。
またよろしくお願いいたします。

オフライン

#12 2019-10-04 16:43:52

Shin
メンバー

Re: [解決] Evaluate 関数を教えてください。

> 遠いデータ(リレーションの先の先の関連など)の更新に合わせてテキストフィールドの値の更新することは難しそうです。
そのために、非保存の計算フィールドがあるのですが。

オフライン

クィック投稿

メッセージを書いて送信してください。
登録の確認

実在の人物による登録であることを確認します。

Board footer