Enables conditional execution of commands.
|expression||A logical expression (using conditional or Boolean operators).|
|commands1||Commands that are executed if expression is logically true.|
|commands2||Commands that are executed if expression is logically false.|
A CASE command must always have a corresponding ENDCASE. Any number of WHEN clauses can appear between CASE and ENDCASE.
The WHEN phrases between CASE and ENDCASE are evaluated in order. Execution control transfers to the commands associated with the first WHEN clause whose expression is determined to be logically true. If none of the WHEN phrases contain an expression that evaluates to “true”, the commands associated with OTHERWISE (if used) are executed. Execution then resumes at the first command following ENDCASE.
If a WHEN expression includes fields from the current set, then the expression uses the values found in the current member of the current set.
If a BYE, RETURN, STOP, or TRANSFORM command exits a procedure in the middle of a CASE structure, the “open” CASE command is automatically closed. Also, if the end of the current procedure is reached before a necessary ENDCASE is encountered, the “open” CASE command is closed.
If the ENDCASE is missing, all subsequent commands in the current procedure are treated as part of the CASE structure.
If the value for salary is neither less than 20,000, nor between 20,00 and 30,000, the first and second set of commands are skipped, and the third set of commands executed.
when salary < 20000
… first set of commands …
when Salary between 20000 and 20000
… second set of commands …
… third set of commands …
The following program fragment illustrates how WHEN conditions in a CASE command can handle an application user’s choice of accelerator keys in an application. Depending on the key pressed by the application user, a particular procedure is executed.
form display input
when Event.EventName = “F3”
when Event.EventName = “F1”
when Event.EventName = “F2”
when Event.EventName = “F4”