ABAP:截取字符串(StartRoutine)需求:
有主数据ZPLANT,取⾃⼯⼚描述的⼀部分,⽤'-'隔开,⽐如"⼯⼚A-北京",ZPLANT只需要"⼯⼚A"。
怎么解决呢:
写在Start Routine⾥,
DATA:
Z_RES_WA TYPE MATCH_RESULT,
Z_RES_TAB TYPE MATCH_RESULT_TAB,
Z_DATA TYPE _ty_s_SC_1,
Z_OFFSET TYPE I.
LOOP AT SOURCE_PACKAGE INTO Z_DATA.
IF Z_DATA-WERKS(1) <> 'A'.
FIND ALL OCCURRENCES OF REGEX '-'IN Z_DATA-TXTMD RESULTS
Z_RES_TAB.
LOOP AT Z_RES_TAB INTO Z_RES_WA.
Z_DATA-TXTMD = Z_DATA-TXTMD(Z_RES_WA-OFFSET).
ENDLOOP.
MODIFY SOURCE_PACKAGE FROM Z_DATA.
ELSE.
DELETE SOURCE_PACKAGE WHERE WERKS = Z_DATA-WERKS.
ENDIF.
ENDLOOP.
这⾥了利⽤了:
FIND ALL OCCURRENCES OF REGEX '-'IN Z_DATA-TXTMD RESULTS
Z_RES_TAB.
前台字符串截取这⾥的RESULTS放在类型为MATCH_RESULT_TAB的表⾥。
表的⾏项⽬为MATCH_RESULT。
有如下参数:
这⾥说说OFFSET,就是偏移量,想截取,只需要STRING(OFFSET)就哦了~
然后截取完了赋值,赋值完了修改内表,over。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论