原文地址已不知,如有侵权请联系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.