Within an expression or condition a set of operators can be used. These are as follows:
|
Expression evaluation is left to right within brackets, so use brackets liberally whenever any doubt exists as to the order in which the expression will be evaluated.
The liberal use of brackets is a good programming practice as well. It makes clear your intent to the RDML compiler, but also more importantly, to anyone maintaining the application in the future.
Expression components are checked for type and length compatibility. The syntax of the expression or condition is also checked to ensure that it is correct.
Since all conditions and expressions specified under LANSA are "quoted strings" you should also read 14.1.6 Quotes and Quoted Strings.
Some examples of conditions and expressions are:
IF COND('#A < 10')
or IF COND('#A *LT 10')
CHANGE FIELD(#A) TO(10)
or CHANGE #A (10)
or CHANGE #A 10
IF COND('#A < ((#B + 10.62) / 2)')
or IF ('#A < ((#B + 10.62) / 2)')
or IF '#A < ((#B + 10.62) / 2)'
CHANGE FIELD(#A) TO('(#B + 10.62) / 2')
or CHANGE #A ('(#B + 10.62) / 2')
or CHANGE #A '(#B + 10.62) / 2'
GROUP_BY NAME(#PRODUCT) FIELDS(#PRODNO #DESC #PRICE
#QOH #TAX)
BEGIN_LOOP
DOUNTIL COND('#IO$STS = OK')
REQUEST FIELD(#PRODNO)
FETCH FIELDS(#PRODUCT) FROM_FILE(PROMST)
WITH_KEY(#PRODNO)
ENDUNTIL
DISPLAY FIELDS(#PRODUCT)
END_LOOP
Due to translation table issues between IBM i and PC platforms (ASCII/EBCDIC), using 5250 terminals or 5250 emulation mode terminals users should be very careful when using the ^= Compare not equal expression, which can be presented as ^= or ¢= or ¬= depending on the terminal/keyboard used during edit. Use the *NE expression instead.