ABAP开发中遇到要用到英文货币大小写的转化问题,搜索了一下,没有,只好自己来做。
FUNCTION ZTRANSFORMNUM.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(NUM) TYPE VBRK-NETWR
*" EXPORTING
*" REFERENCE(NUMSTR) TYPE STRING
*"----------------------------------------------------------------------
DATA: numqb TYPE string,
numzs TYPE string,
numxs TYPE string,
numxsstr TYPE string,"小数部分对应的英文大写
numtemps TYPE string,
numtempc(1) TYPE C.
DATA numtab TYPE TABLE OF string WITH HEADER LINE.
DATA: numlen TYPE i,
colno TYPE i VALUE 0,
recordno TYPE i,
numdiv TYPE i,"以3除整个整数部分得到份数
nummod TYPE i."以3除整个整数部分得到余数
DATA splitsign(1) TYPE C VALUE '.'.
* 定义内表用于存放分开的数字和对应的英文大写
DATA: BEGIN OF t_numstr OCCURS 0,
colno TYPE I,"序号
num TYPE STRING,"数字
behnum TYPE STRING,"数字后面的英文信息,如Million,Thousand等
sumnum TYPE STRING,"合成英文信息
END OF t_numstr.
numqb = num.
SPLIT numqb AT splitsign INTO TABLE numtab.
*先把整个数字区分为整数和小数部分。
DATA: lc TYPE i VALUE 0.
LOOP AT numtab.
lc = lc + 1.
IF lc = 1.
numzs = numtab.
ELSE.
n