使用ABAP COND 操作符:简化业务场景中的条件判断

COND操作符的简单形式语法如下:

COND <返回类型> ( WHEN <条件> THEN <结果1> ELSE <结果2> )

  • <返回类型>:这是一个可选项,用于指定条件表达式的返回数据类型。如果省略,系统会根据THENELSE后面表达式的类型自动推断。
  • <条件>:是一个布尔表达式,用于判断条件是否成立。
  • <结果1>:当<条件>TRUE时返回的值。
  • <结果2>:当<条件>FALSE时返回的值。

DATA:LV_BUSINESS_SCOPE        TYPE STRING VALUE '一般项目:第二类医疗器械销售;第一类医疗器械销售;健康咨询服务(不含诊疗服务);技术服务、技术开发、技术咨询、技术交流、技术转让、技术推广',
     LV_FIRST_MEDICAL_DEVICE  TYPE STRING VALUE '第一类医疗器械',
     LV_SECOND_MEDICAL_DEVICE TYPE STRING VALUE '第二类医疗器械',
     LV_FIRST_FOUND           TYPE ABAP_BOOL,
     LV_SECOND_FOUND          TYPE ABAP_BOOL.
* 判断是否包含第一类医疗器械
LV_FIRST_FOUND = COND #WHEN LV_FIRST_MEDICAL_DEVICE CO LV_BUSINESS_SCOPE THEN ABAP_TRUE ELSE ABAP_FALSE ).
* 判断是否包含第二类医疗器械
LV_SECOND_FOUND = COND #WHEN LV_SECOND_MEDICAL_DEVICE CO LV_BUSINESS_SCOPE THEN ABAP_TRUE ELSE ABAP_FALSE ).
* 输出结果
WRITE: / '是否包含第一类医疗器械:', COND #WHEN LV_FIRST_FOUND = ABAP_TRUE THEN '是' ELSE '否' ).
WRITE: / '是否包含第二类医疗器械:', COND #WHEN LV_SECOND_FOUND = ABAP_TRUE THEN '是' ELSE '否' ).

DATA: LV_NUM    TYPE VALUE 2,
      LV_RESULT TYPE STRING.
LV_RESULT = COND #(
                    WHEN LV_NUM 1 THEN '值为 1'
                    WHEN LV_NUM 2 THEN '值为 2'
                    WHEN LV_NUM 3 THEN '值为 3'
                    ELSE '值不是 1、2 或 3').
WRITE: / LV_RESULT.

posted @ 2025-02-27 10:03  下一詀110  阅读(53)  评论(0)    收藏  举报