FM 金額轉換成英文 ZFUC_NUMERIC_TO_ENGLISHcss
FUNCTION ZFUC_NUMERIC_TO_ENGLISH.ide
IMPORT:IV_MONEY TYPE BF_DMBTR 按本位幣計的金額spa
EXPORT:EV_MONEYit
GLOBAL DATA: class
FUNCTION-POOL ZFUC. "MESSAGE-ID ..
DATA:INPUT(20) TYPE C,
OUTPUT(20) TYPE C.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(IV_MONEY) TYPE BF_DMBTR
*" EXPORTING
*" REFERENCE(EV_MONEY)
*"----------------------------------------------------------------------
DATA:C_AMT(15) TYPE C ,
N_AMT(15) TYPE C,
D_AMT(2) TYPE C,
T_AMT TYPE I,
LEN1 TYPE I,
LEN2 TYPE I,
LEN3 TYPE I,
SP1 LIKE SPELL OCCURS 0 WITH HEADER LINE,
SP2 LIKE SPELL OCCURS 0 WITH HEADER LINE,
STR1 TYPE STRING.
DATA L_UPAMT TYPE BSEG-WRBTR.
DATA:I_AMT TYPE BSEG-WRBTR.
DATA:O_AMT TYPE STRING.
C_AMT = I_AMT = IV_MONEY.
LEN1 = STRLEN( C_AMT ) - 3.
LEN2 = STRLEN( C_AMT ) - 2.
N_AMT = C_AMT+0(LEN1).
D_AMT = C_AMT+LEN2(2).
T_AMT = N_AMT.
N_AMT = T_AMT.
T_AMT = D_AMT.
D_AMT = T_AMT.
LEN3 = STRLEN( D_AMT ).
IF LEN3 = 2.
STR1 = 'AND CENTS'.
ELSE.
STR1 = 'AND PERCENTS'.
ENDIF.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT = N_AMT
LANGUAGE = 'E'
IMPORTING
IN_WORDS = SP1.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT = D_AMT
LANGUAGE = 'E'
IMPORTING
IN_WORDS = SP2.
IF SP2-WORD = 'ZERO'.
CONCATENATE SP1-WORD 'ONLY' INTO O_AMT SEPARATED BY SPACE.
ELSE.
CONCATENATE SP1-WORD STR1 SP2-WORD 'ONLY' INTO O_AMT SEPARATED BY SPACE.
ENDIF.
EV_MONEY = O_AMT.
ENDFUNCTION.英文