在新语法中,可以使用COND、SWITCH来根据逻辑表达式或情况的不同确定指定变量的结果。
语法格式:
...COND dtype | # ( WHEN log_exp1 THEN result1
[ WHEN log_exp2 THEN result2 ]
....
[ ELSE resultn ] ) ...
...SWITCH dtype | # ( operand
WHEN const1 THEN result1
[ WHEN const2 THEN result2 ]
....
[ ELSE resultn ] ) ...
[ ] 里可填,THEN后面都是返回的结果。在SWITCH中 operand 是一个变量类似case operand: when...
例一:
[plain] view plain copy DATA(time) = COND string( WHEN sy-timlo < '120000' THEN |{ sy-timlo TIME = ISO } AM| WHEN sy-timlo > '120000' THEN |{ CONV t( sy-timlo - 12 * 3600 ) TIME = ISO } PM| WHEN sy-timlo = '120000' THEN |High noon| * ELSE ). WRITE: time. sy = '120000' 就是时间12点。 程序就是根据sy-timlo是否超过12点 然后设置不同的格式赋值给time。
例二:
[plain] view plain copy DATA(a) = 11. DATA(text) = SWITCH #( a WHEN '11' THEN '11yyagd' WHEN '12' THEN '12dkdkkd' * ELSE ). WRITE: text. 这段代码就是根据变量a的值,赋不同的值给text。