您的位置:首页 > 其它

ABAP:截取字符串(Start Routine)

2010-10-25 17:29 549 查看
需求:

有主数据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。

 

 
PS:俺不是专业的ABAP,随便写写…
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string