.NODE

Case()

Category: Logical

Syntax: Case ( test1; result1 {; test2; result2; defaultResult...} )

Parameters:

test(n)An expression that yields a Boolean result.

result(n)The value to return if corresponding test is true.

defaultResultThe value to return if all tests are false. Parameters in curly braces { } are optional and may be repeated as needed, separated by a semicolon.

Data type returned: Text, Number, Date, Time, Timestamp, Container

Description:

The Case function returns one of several possible results based on a series of tests.

Each test expression is evaluated in order, and when the first true expression (one that resolves to a Boolean 1) is found, the value specified in the result for that expression is returned. The function stops evaluating as soon as it finds a true test.

The default result at the end of the parameter list is optional. If none of the tests evaluate to True, the function returns the value specified for defaultResult. If no default result is specified, the Case function returns an "empty" result. If you believe that one of the tests in the Case should always be true, we recommend using an explicit default case, possibly with a value of "default" or "error" to assist in error trapping.

Consider using hard returns in long Case() statements to make them more readable, and indent lines with tabs, as shown previously. (Note that this example makes repeated calls to Get(SystemLanguage); in practice it might be better to use Let() to make a single call to Get(SystemLanguage) so that it needs to be evaluated only once.)

In the last example, while all three tests resolve to true, only the first line is executed and its result returned. Using the Case() function, with its "short-circuiting" feature, can help with performance tuning.

Examples:

Function

Results

Case ( IsEmpty (Contact_Name ); 1 )

Returns 1 if the Contact_Name field is empty.

 

Note that a default value is not required, making the usage of Case() shorter than If().

 Case (
 Get(SystemLanguage) = "English"; "Welcome";
 Get(SystemLanguage) = "French"; "Bienvenue";
 Get(SystemLanguage) = "Italian"; "Benvenuto";
 Get(SystemLanguage) = "German"; "Willkommen";
 Get(SystemLanguage) = "Swedish"; "Välkommen";
 Get(SystemLanguage) = "Spanish "; "Bienvenido",;
 Get(SystemLanguage) = "Dutch"; "Welkom";
 Get(SystemLanguage) = "Japanese"; "Irashaimasu" ;
 "Sorry... not sure of your language." // default value
 )

Returns a welcoming message in the language determined by the Get (SystemLanguage) function.

 Case (
 SalesTotal < 10; .1;
 SalesTotal < 50; .2;
 SalesTotal < 100; .3;
 .35
 )

Returns .1 when the value in the SalesTotal field is 5, and returns .2 when the value in the SalesTotal field is 12.


: FileMaker Specifications

FileMaker 8 Product Line

Specifications and Storage Limits

Field Types and Import/Export Formats

: Calculation Functions

Working with Calculations Primer

Calculation Signatures

Calculation Functions

: Custom Functions

Custom Functions Primer

Useful Custom Functions

: Script Steps

Scripting Primer

Script Step Reference

: Quick Reference

FileMaker Error Codes

FileMaker Keyboard Shortcuts

FileMaker Network Ports

FileMaker Server Command Line Reference

FileMaker XML Reference

: Other Resources

Where to Go for More Information

show all menu





FileMaker 8 Functions and Scripts Desk Reference
FileMaker 8 Functions and Scripts Desk Reference
ISBN: 0789735113
EAN: 2147483647
Year: 2004
Pages: 352
Similar book on Amazon

Flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net