金額轉換成英文

FM  金額轉換成英文 ZFUC_NUMERIC_TO_ENGLISH

 FUNCTION ZFUC_NUMERIC_TO_ENGLISH.

IMPORT:IV_MONEY TYPE BF_DMBTR                       按本位幣計的金額

EXPORT:EV_MONEY

GLOBAL DATA:

FUNCTION-POOL ZFUC.                         "MESSAGE-ID ..
DATA:INPUT(20)  TYPE C,
     OUTPUT(20TYPE C.

*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     REFERENCE(IV_MONEY) TYPE  BF_DMBTR
*"  EXPORTING
*"     REFERENCE(EV_MONEY)
*"----------------------------------------------------------------------
DATA:C_AMT(15TYPE C ,
N_AMT(15TYPE 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.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章