Search code examples
openedgeprogress-4gl

Can I use OR in a CASE statement?


Is there a way to use OR in a Case statement? In this example, if phoneType is one of several values, I want to call a function. Do I need to list every possible value with a separate WHEN statement?

    ```CASE ttPhoneData.phoneDescription:
            WHEN "Cell" OR "PASTORS PHONE" OR "Alternative" THEN
                RUN CreatePhone("Mobile", TRUE, ttPhoneData.phone).
            WHEN "Business" OR "ChurchPhone" OR "ChurchPhone2" THEN
                RUN CreatePhone("Work",TRUE,ttPhoneData.phone).
            WHEN "Home" THEN 
                RUN CreatePhone("Home",TRUE,ttPhoneData,phome).
        END CASE.``` 

Solution

  • Yes, you were very close. See doc at https://docs.progress.com/bundle/openedge-abl-reference-122/page/CASE-statement.html?labelkey=product_openedge_122

    CASE ttPhoneData.phoneDescription:
      WHEN 'cell' OR
      WHEN 'alternative' THEN
          . // do something
      WHEN 'business' OR
      WHEN 'churchphone' THEN
         . // somethingg else
      WHEN 'home'  THEN
         . //another thing
    END CASE.