Event statement conditions
specify one or more conditions that must be true for a DEFINE EVENT
statement to execute. An event statement condition must be preceded
by a slash (/).
Event statement conditions
have the following form:
define-event-statement </ event-statement-condition(s)>;
- define-event-statement
-
specifies a DEFINE
EVENT statement.
- event-statement-condition
-
specifies a condition
to evaluate.
event-statement-condition is
one of the following:
- ANY (variable-1,<..., variable-n>)
-
checks a list of comma-delimited
variables for values. If any of the variables has a value, then the
condition is true.
Example:put 'One of our variables has a value!'
nl/if any(background, foreground, cellpadding, cellspacing);
- BREAKIF event
-
stops an event that
is executing. The current statement is executed and the event ends.
Tip:Using the BREAKIF condition is more efficient than using
a PUT event statement and a BREAK event statement with an IF condition
together. For example, the following statements are equivalent:
put 'Foreground has a value!' /breakif exists(foreground);
put 'Foreground has a value!' /if exists(foreground);
break /if exists(foreground);
- CMP (“string”, variable | variable-list)
-
compares, for equality,
a string to a variable or list of variables.
Example: put 'The foreground is blue!' nl/if cmp('blue',foreground);
- CONTAINS (argument-1, argument-2)
-
searches the first
argument for the second argument.
Example:set $myvariable 'some random text';
put 'myvariable contains 'ran' nl/if contains($myvariable, 'ran');
- EXIST | EXISTS (variable | variable-list)
-
determines whether
a variable or a list of variables has values. If all of the variables
have values, then the condition is true. If a variable has an empty
string of length 0, then the variable has no value and the condition
is false.
Tip:Use the MISSING event variable with the EXIST condition
to determine whether a value is missing.
Example:put 'All of our variables have a value!'
nl/if exists(background, foreground, cellpadding, cellspacing);
- IF | WHEN | WHERE (<value><'string'><variable>)
-
tests for existence
or equality. IF, WHEN, and WHERE are optional and interchangeable.
An IF, a WHEN, or a WHERE condition compares values and strings, or
checks variables for values.
Restriction:When you specify an IF condition with a single, user-defined
variable, then the variable is evaluated to determine whether it has
a value, according to the variable's type. A string variable type
uses the length to determine existence, a numeric variable type uses
value, and a dictionary array variable type uses the key (if there
is a key specified, then the test is true).
Example:All of the following are equivalent:
put 'Foreground has a value!' nl/if (foreground);
put 'Foreground has a value!' nl/if exists(foreground);
put 'Foreground has a value!' nl/when exists(foreground);
put 'Foreground has a value!' nl/exists(foreground);
put 'Foreground has a value!' nl/where existsforeground);
- NOT | ! | ^ <'string'><variable>
-
negates a condition.
You can use the keyword NOT or the characters '!' or '^'.
Restriction:The character '!' works only as the first character in
a condition. The standard WHERE processing syntax is required for
subsequent characters.
Example:put 'The foreground is not red!' nl/if not cmp('red', foreground);
put 'The foreground is not red or blue' /if !cmp('red', foreground)
and ^cmp('blue', foreground);
put 'The foreground is not red or blue' /if ^cmp('red', foreground)
and ^cmp('blue', foreground);
- WHILE condition-expression
-
indicates that the
corresponding statement block should loop until the WHILE value becomes
false.
Restriction:The WHILE condition can be used only with the DO statement.
Example:eval $count 0;
do /while $count < 10;
eval $i $count+1;
continue /if $count eq 5;
stop /if $count eq 8;
put 'Count is ' $i nl;
else;
put 'Count was never less than 10' nl;
done;