Loading
Filed Under: Easytrieve
CASE WHEN statement in Easytrieve
Just like “EVALUATE WHEN” in Cobol, “Switch Case” in C, Easytrieve has got its equivalent “CASE WHEN” statement.
And, the when statement is not only capable of validating one particular value, it can also validate a range of values.
See the below sample Easytrieve program, which is self explanatory.
CASE WS-NUM WHEN 1 DISPLAY 'ONE' WHEN 2 DISPLAY 'TWO' WHEN 3 THRU 99 DISPLAY '3 TO 99' OTHERWISE DISPLAY 'NOT IN RANGE' END-CASE
A complete program will look like,
----+----1----+----2----+----3----+----4----+----5----+----6----+----7-- LIST ON FILE FILE1 WS-DAY W 2 N JOB INPUT NULL WS-MONTH = 5 CASE WS-MONTH WHEN 1 DISPLAY 'SUNDAY' WHEN 2 DISPLAY 'MONDAY' WHEN 3 DISPLAY 'TUESDAY' WHEN 4 DISPLAY 'WEDNESDAY' WHEN 5 DISPLAY 'THURSDAY' WHEN 6 DISPLAY 'FRIDAY' WHEN 7 DISPLAY 'SATURDAY' OTHERWISE DISPLAY 'INVALID' END-CASE STOP
Related Posts
- Easytrieve – check if value IS NUMERIC in an alpha variable
- Easytrieve program to parse a string
- simple and nested IF-ELSE-ENDIF statement in Easytrieve
- Comments in Easytrieve (start with *)
- Easytrieve Error messages A0** and B0**
- SYSDATE and SYSTIME in Easytrieve
- JOB statement with START and FINISH procs in Easytrieve
- PROC (perform paragraph) in Easytrieve
- GOTO statement in Easytrieve
- SORT in Easytrieve
blog comments powered by Disqus
There's 1 Comment So Far
June 22nd, 2012 at 12:30 pm
Do we have equivalent of EVALUATE TRUE?
I have multiple varied conditions to be checked. Picking the examples from above something like follows:
EVALUATE TRUE
when iteration-nbr = 1
read record read into file-rec1
when ws-month=Jan and iteration=3
do process1
when ws-month = dec
do-process-end
END-EVALUATE
Share your thoughts, leave a comment!