Reprinted -ABAP amount transferred capital

I do not know the original address, if infringement please contact qq 2212332116

FUNCTION ZFUN_CONVERT_MONEY.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(I_VAL) TYPE  STRING
*"  EXPORTING
*"     VALUE(E_DXSTR) TYPE  STRING
*"----------------------------------------------------------------------


  DATA: ZS(15).
  DATA: XS(15).
  DATA: STR(15).
  DATA: LEN TYPE I VALUE 0.
  DATA: CIS TYPE I VALUE 0.
  DATA: LIS TYPE I VALUE 0.
  DATA: SS(2).
  DATA: RR(1).
  DATA: STRR(15).
  DATA: CHANGE(30) TYPE C VALUE '1壹2贰3叁4肆5伍6陆7柒8捌9玖0零'.
*data DXSTR type STRING value ''.
  DATA VAL TYPE P DECIMALS 2 VALUE '907604001.00'.
  VAL = I_VAL.

  CLEAR E_DXSTR.
  MOVE VAL TO STR.
  SHIFT STR LEFT  DELETING LEADING SPACE.
  SPLIT STR AT '.' INTO ZS XS.

  LEN = STRLEN( ZS ).
  CLEAR STRR.
  CIS = LEN - 1.
  DO LEN TIMES.
    MOVE ZS+CIS(1) TO RR.
    CONCATENATE STRR RR INTO STRR.
    CIS = CIS - 1.
  ENDDO.

  CIS = 0.
  DO LEN TIMES.
    MOVE STRR+CIS(1) TO SS.
    IF SS <> 0.
      TRANSLATE SS USING CHANGE.
      CASE CIS.
        WHEN 0.
          CONCATENATE SS '元'        INTO E_DXSTR.
        WHEN 1.
          CONCATENATE SS '拾'  E_DXSTR INTO E_DXSTR.
        WHEN 2.
          CONCATENATE SS '佰'  E_DXSTR INTO E_DXSTR.
        WHEN 3.
          CONCATENATE SS '仟'  E_DXSTR INTO E_DXSTR.
        WHEN 4.
          CONCATENATE SS '万'  E_DXSTR INTO E_DXSTR.
        WHEN 5.
          CONCATENATE SS '拾'  E_DXSTR INTO E_DXSTR.
        WHEN 6.
          CONCATENATE SS '佰'  E_DXSTR INTO E_DXSTR.
        WHEN 7.
          CONCATENATE SS '仟'  E_DXSTR INTO E_DXSTR.
        WHEN 8.
          CONCATENATE SS '亿'  E_DXSTR INTO E_DXSTR.
        WHEN 9.
          CONCATENATE SS '拾'  E_DXSTR INTO E_DXSTR.
        WHEN 10.
          CONCATENATE SS '百'  E_DXSTR INTO E_DXSTR.
        WHEN 11.
          CONCATENATE SS '仟'  E_DXSTR INTO E_DXSTR.
      ENDCASE.
    ELSEIF SS = 0 AND STRR+LIS(1) = 0.
      CASE CIS.
        WHEN 0.
          CONCATENATE '元'  E_DXSTR INTO E_DXSTR.
        WHEN 4.
          CONCATENATE '万'  E_DXSTR INTO E_DXSTR.
        WHEN 8.
          CONCATENATE '亿'  E_DXSTR INTO E_DXSTR.
      ENDCASE.
    ELSEIF SS = 0 AND STRR+LIS(1) <> 0.
      TRANSLATE SS USING CHANGE.
      CASE CIS.
        WHEN 0.
          CONCATENATE '元'  SS E_DXSTR INTO E_DXSTR.
        WHEN 4.
          CONCATENATE '万'  SS E_DXSTR INTO E_DXSTR.
        WHEN 8.
          CONCATENATE '亿'  SS E_DXSTR INTO E_DXSTR.
        WHEN OTHERS.
          CONCATENATE SS E_DXSTR INTO E_DXSTR.
      ENDCASE.
    ENDIF.
    LIS = CIS.
    CIS = CIS + 1.
  ENDDO.
  CLEAR SS.
  IF XS <> '00'.
    MOVE XS+0(1) TO SS. TRANSLATE SS USING CHANGE.
    CONCATENATE E_DXSTR SS '角'  INTO E_DXSTR.
    MOVE XS+1(1) TO SS. TRANSLATE SS USING CHANGE.
    CONCATENATE E_DXSTR SS '分'  INTO E_DXSTR.
  ELSE.
    CONCATENATE E_DXSTR '整' INTO E_DXSTR.
  ENDIF.

  IF E_DXSTR = '元整'.
    E_DXSTR = '零元整'.
  ENDIF.
endfunction.

 

Guess you like

Origin blog.csdn.net/u012232542/article/details/93716564