ABAP:截取字符串(Start Routine)
2012-07-16 11:24
176 查看
需求:
有主数据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。
有主数据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。
相关文章推荐
- ABAP:截取字符串(Start Routine)
- ABAP字符串操作 截取字符长度 取位数
- ABAP 字符串截取
- ABAP字符串操作 截取字符长度 取位数
- ABAP基础篇--字符串截取
- ABAP自定义截取字符串长度函数
- c#的中英文混合字符串截取指定长度,startidx从0开始
- SAP:ABAP基础篇--字符串截取
- JavaScript基础 substr(startIndex, length) 在原始字符串中,截取并返回一个子字符串
- JavaScript基础 substr(startIndex, length) 在原始字符串中,截取并返回一个子字符串
- [原创]精确截取字符串
- JS截取字符串
- 使用Css截取字符串
- MySQL字符串函数:字符串截取
- 按字节截取字符串
- Qt上截取中英文混合字符串的指定长度内容
- 字符串截取
- SQL截取字符串相关方法
- C#几个经常用到的字符串的截取
- PHP截取中文字符串的方法