【SAP Abap】SAP ABAP 三元运算的实现与使用注意事项

SAP ABAP 三元运算的实现与使用注意事项

ABAP的三元运算

三元运算符是软件编程中的一个固定格式,语法是“条件表达式?表达式1:表达式2”。
在SAP ABAP中可以使用COND实现类似甚至更多元运算功能。

COND - Conditional Operator 
 
 Syntax 

... COND type( [let_exp] 
               WHEN log_exp1 THEN [let_exp] result1 
             [ WHEN log_exp2 THEN [let_exp] result2 ] 
             ... 
             [ ELSE [let_exp] resultn ] ) ... 

使用注意事项

多元结果最好是同一类型,如果不是,需要让长度最长的放置在第一值位,否则按第一值位的长度对后续结果截断。

演示

TABLES:CE11000.
SELECT-OPTIONS: S_BUKRS FOR CE11000-BUKRS OBLIGATORY,
    S_FADAT FOR  CE11000-FADAT.

DATA(LV_STR_WRONG) = COND #( WHEN S_FADAT-LOW IS INITIAL THEN '' ELSE S_FADAT-LOW )   " 开始日期
        && '_' && COND #( WHEN S_FADAT-HIGH IS INITIAL THEN '' ELSE S_FADAT-HIGH )    " 结束日期
        && COND #( WHEN SY-BATCH IS INITIAL THEN ' Front' ELSE '' ).                     " 前台标识
MESSAGE LV_STR_WRONG TYPE 'I'.

DATA(LV_STR_RIGHT) = COND #( WHEN S_FADAT-LOW IS NOT INITIAL THEN S_FADAT-LOW ELSE '' )   " 开始日期
        && '_' && COND #( WHEN S_FADAT-HIGH IS NOT INITIAL THEN S_FADAT-HIGH ELSE '' )    " 结束日期
        && COND #( WHEN SY-BATCH IS INITIAL THEN ' Front' ELSE '' ).                     " 前台标识
MESSAGE LV_STR_RIGHT TYPE 'I'.

执行,输入参数如下:
在这里插入图片描述
非预期结果:
在这里插入图片描述
预期结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值