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

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

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

You are not logged in.

Announcement

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


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

はじめ21
Guest

Evaluate 関数を教えてください。

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

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

tim
Guest

Re: Evaluate 関数を教えてください。

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

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

Shin
Member

Re: Evaluate 関数を教えてください。

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

Offline

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

Hiro
Member

Re: Evaluate 関数を教えてください。

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

Offline

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

はじめ21
Guest

Re: Evaluate 関数を教えてください。

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

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

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

Valon
Member

Re: Evaluate 関数を教えてください。

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

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

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

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

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


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


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

Offline

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

himaganee
Guest

Re: Evaluate 関数を教えてください。

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

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

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

Valon
Member

Re: Evaluate 関数を教えてください。

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

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

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

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

Offline

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

Shin
Member

Re: Evaluate 関数を教えてください。

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


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

Last edited by Shin (2019-10-04 13:46:56)

Offline

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

himaganee
Guest

Re: Evaluate 関数を教えてください。

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

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

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

Valon
Member

Re: Evaluate 関数を教えてください。

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

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

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

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

Offline

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

Shin
Member

Re: Evaluate 関数を教えてください。

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

Offline

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

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.009 seconds, 10 queries executed - Memory usage: 521.77 KiB (Peak: 526.3 KiB) ]