嵌入表达式:Alpha

这篇博客介绍了ABAP中格式化选项ALPHA的使用,主要用于在数字序列和字符串中添加或删除前导零。ALPHA选项可以在数据类型为string、c和n的表达式中使用,不能与其他格式化选项(除WIDTH和CASE)结合。通过设置IN参数,可以将无前导零的数字转换为带前导零的文本,而OUT参数则实现相反操作。示例展示了如何在不同场景下应用这些转换,包括在C类型和String类型的变量中操作。
摘要由CSDN通过智能技术生成

基本语法:

ALPHA = IN |OUT|RAW|(val)

该格式化选项可以将前导零添加到数字序列或删除他们。只有在数据类型为string、c和n的嵌入表达式中才能使用格式化选项Alpha。它不能与其他格式化选项一起指定,除了WIDTH和CASE。

如果没有指定格式化选项WIDTH,而内嵌表达式作为字符串模板的唯一内容,被分配给一个固定长度的目标字段,类型为c, n, d,或t,该字段的长度决定了可用长度。否则,使用原始字段的长度,包括末尾的空格。

如果指定了格式化选项WIDTH,则指定的长度仅在大于连续的无前导零的数字序列的长度,或大于没有尾随空格的字符串的长度时使用。否则,将使用不带前导零的连续数字序列的长度,或不带尾随空格的字符串的长度。

格式化选项ALPHA具有与converversion_exit_alpha_input或converversion_exit_alpha_output相同的功能。参数IN可用于将没有前导零的数字序列转换为带有前导零的数字文本格式。参数OUT可用于将带前导零的数字文本转换为不带前导零的数字序列。

演示:订单号添加前导零和删除前导零。

" 订单号(AUFNR)的数据类型 CHAR12
DATA lv_aufnr_c TYPE aufnr.   " C-Like 类型
DATA lv_aufnr_s TYPE string.  " String 类型

lv_aufnr_c = lv_aufnr_s = '11301299'.

" 添加前导零转换结果:[ 000011301299 ]
" 由于 aufnr 的长度为12,所以前面补4个0 " 
" 注意:| 和 { 之间不能有空格、不然会发生右侧截断,第一位被空格填充
" 结果变成:[  00001130129 ] Error
lv_aufnr_c = |{ lv_aufnr_c ALPHA = IN }|.

" string 类型是没有固定长度的,
" 所以在添加前导零必须用WIDTH指定字符串模板长度
" 转换结果:[ 000011301299 ]
lv_aufnr_s = |{ lv_aufnr_c ALPHA = IN WIDTH = 12 }|.

" 删除前导零 转换结果:[ 11301299 ]
lv_aufnr_c = |{ lv_aufnr_c ALPHA = OUT }|.
lv_aufnr_s = |{ lv_aufnr_c ALPHA = OUT }|.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值