SAP abap 抽取字符串中的数字(包含,和.)

REPORT ZLQLS.



DATA gv_CHAR TYPE C LENGTH 30 .
DATA GV_CANSHU TYPE C LENGTH 30 VALUE  '900.00千克/个' .
DATA GV_SHUZI  TYPE C  .

DATA GV_SHU TYPE C LENGTH 20 .

PERFORM FRM_ZHUANHUAN USING GV_CANSHU CHANGING GV_SHU .

WRITE / : GV_SHU .

*&---------------------------------------------------------------------*
*& Form FRM_ZHUANHUAN
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*&      --> GV_CANSHU
*&      <-- GV_SHU
*&---------------------------------------------------------------------*
FORM FRM_ZHUANHUAN  USING    P_CANSHU
                    CHANGING P_SHU.
   DATA LV_CHAR  TYPE C .
   DATA LV_CHAR2 TYPE C .
   DATA LV_SHU   TYPE P .

  DO .
    LV_CHAR = P_CANSHU .
    IF LV_CHAR = ''.
      EXIT .
    ELSE.
      IF LV_CHAR = '.' OR LV_CHAR = ','.
        P_SHU = P_SHU && LV_CHAR .
      ELSE .
        CALL FUNCTION 'MOVE_CHAR_TO_NUM'
          EXPORTING
            CHR                   = LV_CHAR
         IMPORTING
           NUM                   = LV_SHU
         EXCEPTIONS
           CONVT_NO_NUMBER       = 1
           CONVT_OVERFLOW        = 2
           OTHERS                = 3
                  .
        IF SY-SUBRC = 0.
          LV_CHAR2 = LV_SHU .
          P_SHU = P_SHU && LV_CHAR2 .
        ENDIF.
      ENDIF.
    ENDIF.
    SHIFT P_CANSHU BY 1 PLACES .
  ENDDO .
ENDFORM.

猜你喜欢

转载自blog.csdn.net/Qunending/article/details/96477964
今日推荐