ABAP 如何截取字符串的最后几位

需求描述:以截取某个字段的最后四位作为关联条件去别的表里面取数.

问题:这个字段的内容长度是不唯一的

BKPF~AWKEYBELNRGJAHR
字段参考关键 发票凭证编号会计年度
51056248772020

=去掉后四位

5105624877

=后四位

2020

然后得到发票凭证编号和会计年度去关联别的表。

最后没有发现从后边直接截取的方法,得到了以下两个方法.

方法一:先得到字符串的长度,从 长度 - 4 处开始取,取后面的 4 位

   DATA:len  TYPE int4,
     len1 TYPE int4.

  LOOP AT gt_out ASSIGNING <fs_out>.

    len = strlen( <fs_out>-awkey ).
    len1 = len - 4.
    <fs_out>-awkey1 = <fs_out>-awkey+0(10).    "5105624877    2020     5105624877
    <fs_out>-awkey2 = <fs_out>-awkey+len1(4).  "5105624877    2020     2020 截取最后四位

  ENDLOOP.

方法二:字符串翻转 ,然后去取前四位

data:lt_date1 type string value '51056248772020'.
data:lv_i    type int4,
     lv_j    type int4,
     rstring type string.

lv_i = strlen( lt_date1 ).

do lv_i times.
  concatenate lt_date1+lv_j(1) rstring into rstring.
  lv_j = lv_j + 1.
enddo.

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值