需求描述:以截取某个字段的最后四位作为关联条件去别的表里面取数.
问题:这个字段的内容长度是不唯一的
BKPF~AWKEY | BELNR | GJAHR |
字段参考关键 | 发票凭证编号 | 会计年度 |
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.