Evaluate
式を計算として評価します。
構文
Evaluate (式 {; [フィールド 1 ; フィールド 2 ; ...]})
引数
式
- テキスト式またはテキストフィールド
フィールド
- この関数が依存するフィールドの一覧。これらのフィールドが変更されると、計算式によって結果が更新されます。
中カッコ { } 内の引数はオプションです。オプションのフィールドリストは、角カッコ ([ ]) で囲まれています。
戻り値のデータタイプ
テキスト、数字、日付、時刻、タイムスタンプ、オブジェクト
起点バージョン
7.0
説明
オプションのフィールド
引数には、この計算が依存するフィールドの一覧を指定します。必要なフィールドの一覧が記述されていない場合、依存するフィールドを変更しても計算結果は更新されません。
メモ
- サーバーサイドスクリプトに Evaluate 関数が含まれる場合、Evaluate の計算では英語の関数名を使用してください。Evaluate 関数は、サーバーサイドスクリプトで評価された場合、ローカライズされた関数名を認識しません。FileMaker Server および FileMaker Cloud でのスクリプトの実行を参照してください。
例 1
テキストフィールドの値が「2 + 2」の場合、Evaluate (テキストフィールド)
は「4」を返します。
テキストフィールドの値が「2 + 2」の場合、Evaluate ("テキストフィールド")
は「2 + 2」を返します。
テキストフィールドの値が「2 + 2」の場合、Evaluate (GetField ("テキストフィールド"))
は「4」を返します。
テキストフィールドの値が「.08 * 金額」、「金額」フィールドの値が「10.00」の場合、Evaluate (テキストフィールド ; [金額])
は「.80」を返します。
例 2
「税率の計算」フィールドの値が「小計 * 税率」で、「小計」フィールドに「10.00」が含まれる数字フィールドの場合、Evaluate ("Let (税率 = .05 ; "& 税率の計算 &")")
は、「.50」を返します。
例 3
次の例では、変数「a
」のみにアクセスし、Evaluate
、Let
、および Get (スクリプト引数)
関数を使用して、指定した引数を渡す方法を示します (この例では、「6」が返されます):
スクリプト引数 = "a = 5 ; b = 10"
Evaluate ("Let ([" & Get (スクリプト引数) & "] ; a + 1)")
例 4
次の例は、「a
」および「b
」の両方の変数にアクセスして、指定された引数を渡す方法を示します。最初の引数が簡単な分、2 番目の引数はより複雑になります (この例では、「6, 12」が返されます):
スクリプト引数 = "a = 5 ; b = 10"
Evaluate ("Let ([" & Get (スクリプト引数) & "] ; a + 1 & \", \" & b + 2)")
例 5
次の例は、Let
関数の 2 番目の構文をチェックできるようにしつつ、指定した引数を渡す方法を示します (この例では、「6, 12」が返されます)。
スクリプト引数 = "a = 5 ; b = 10"
Let ([a = Evaluate ("Let ([" & Get (スクリプト引数) & "] ; a)"),
b = Evaluate ("Let ([" & Get (スクリプト引数) & "] ; b)")] ; a + 1 & ", " & b + 2)
例 6
Evaluate 関数は、式 (計算式として評価されるフィールド値を含む) を評価します。また、フィールドの依存関係を指定して、同じレコードの他のフィールドでの変更に基づいて、評価関数を使用する計算を開始することもできます。この関数は、ユーザ定義の式を評価します。たとえば、次のように、州税を計算する式を「合計」フィールド内に作成することができます:
Evaluate (州税の計算式) + 輸送費
「州税の計算式」フィールドには、次のテキストが含まれています:
小計 * 1.0875
「小計」フィールドには、税金および輸送費を加える前の小計が含まれています。
Evaluate 関数には、オプションとして 2 番目の引数があり、ここに計算の基準となるフィールドを指定します。依存するフィールドの内容が変更されると、FileMaker Pro で計算式が再評価されます。次の例では、「小計」が変更されると、「合計」が再計算されます:
Evaluate (州税の計算式 ; 小計) + 輸送費
依存する引数は、他の場合にも役立つことがあります。例:
Evaluate ("Get (タイムスタンプ)" ; [フィールド B ; フィールド C])
フィールド B またはフィールド C が変更されるたびに、計算フィールドにタイムスタンプを保存します。