ABAP小写金额转大写
来源:互联网 发布:仿小米商城源码 编辑:程序博客网 时间:2024/06/05 20:36
FUNCTION ZFUC_NUMERIC_TO_CHINESE.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(IV_MONEY) TYPE BF_DMBTR
*" EXPORTING
*" VALUE(EV_MONEY) TYPE STRING
*" EXCEPTIONS
*" WRONG_MONEY
*"----------------------------------------------------------------------
IV_MONEY = ABS( IV_MONEY ).
DATA: SCR(30) TYPE C, RES(60) TYPE C,FEN(2) TYPE C .
DATA: LEN TYPE I, C1 TYPE I, C2 TYPE I, C3 TYPE I, C4 TYPE I.
DATA: D1(1) TYPE C, D2(1) TYPE C, D3 TYPE I.
DATA: DIGIT(2) TYPE C, WEIGHT(2) TYPE C.
DATA: RULE1(20) TYPE C VALUE '零壹贰叁肆伍陆柒捌玖'.
DATA: RULE2(30) TYPE C VALUE '分角元拾佰仟万拾佰仟亿拾佰仟万'.
SCR = IV_MONEY * 100.
CONDENSE SCR NO-GAPS.
IF SCR = '0'.
RES = '零元'.
ELSE.
LEN = STRLEN( SCR ).
C1 = 0.
D1 = '0'.
CLEAR RES.
DO LEN TIMES.
C1 = C1 + 1.
C2 = LEN - C1.
D2 = SCR+C2(1) .
IF D2 = '0'.
D3 = 0.
ELSE.
D3 = D2.
ENDIF.
DIGIT = RULE1+D3(1) .
C3 = ( C1 - 1 ) .
WEIGHT = RULE2+C3(1) .
IF D2 = '0'.
IF C1 = 3.
DIGIT = ''.
ELSEIF C1 = 7.
DIGIT = ''.
IF LEN > 10 .
C4 = LEN - 10.
IF SCR+C4(4) = '0000'.
WEIGHT = ''.
ENDIF.
ENDIF.
ELSEIF C1 = 11.
DIGIT = ''.
ELSEIF D1 = '0'.
DIGIT = ''.
WEIGHT = ''.
ELSE.
WEIGHT = ''.
ENDIF.
ENDIF.
CONCATENATE DIGIT WEIGHT RES INTO RES .
D1 = D2.
ENDDO.
ENDIF.
LEN = STRLEN( RES ) - 1.
FEN = RES+LEN(1).
IF FEN <> '分' .
CONCATENATE RES '整' INTO EV_MONEY.
ELSE.
EV_MONEY = RES.
ENDIF.
ENDFUNCTION.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(IV_MONEY) TYPE BF_DMBTR
*" EXPORTING
*" VALUE(EV_MONEY) TYPE STRING
*" EXCEPTIONS
*" WRONG_MONEY
*"----------------------------------------------------------------------
IV_MONEY = ABS( IV_MONEY ).
DATA: SCR(30) TYPE C, RES(60) TYPE C,FEN(2) TYPE C .
DATA: LEN TYPE I, C1 TYPE I, C2 TYPE I, C3 TYPE I, C4 TYPE I.
DATA: D1(1) TYPE C, D2(1) TYPE C, D3 TYPE I.
DATA: DIGIT(2) TYPE C, WEIGHT(2) TYPE C.
DATA: RULE1(20) TYPE C VALUE '零壹贰叁肆伍陆柒捌玖'.
DATA: RULE2(30) TYPE C VALUE '分角元拾佰仟万拾佰仟亿拾佰仟万'.
SCR = IV_MONEY * 100.
CONDENSE SCR NO-GAPS.
IF SCR = '0'.
RES = '零元'.
ELSE.
LEN = STRLEN( SCR ).
C1 = 0.
D1 = '0'.
CLEAR RES.
DO LEN TIMES.
C1 = C1 + 1.
C2 = LEN - C1.
D2 = SCR+C2(1) .
IF D2 = '0'.
D3 = 0.
ELSE.
D3 = D2.
ENDIF.
DIGIT = RULE1+D3(1) .
C3 = ( C1 - 1 ) .
WEIGHT = RULE2+C3(1) .
IF D2 = '0'.
IF C1 = 3.
DIGIT = ''.
ELSEIF C1 = 7.
DIGIT = ''.
IF LEN > 10 .
C4 = LEN - 10.
IF SCR+C4(4) = '0000'.
WEIGHT = ''.
ENDIF.
ENDIF.
ELSEIF C1 = 11.
DIGIT = ''.
ELSEIF D1 = '0'.
DIGIT = ''.
WEIGHT = ''.
ELSE.
WEIGHT = ''.
ENDIF.
ENDIF.
CONCATENATE DIGIT WEIGHT RES INTO RES .
D1 = D2.
ENDDO.
ENDIF.
LEN = STRLEN( RES ) - 1.
FEN = RES+LEN(1).
IF FEN <> '分' .
CONCATENATE RES '整' INTO EV_MONEY.
ELSE.
EV_MONEY = RES.
ENDIF.
ENDFUNCTION.
阅读全文
1 0
- ABAP小写金额转大写
- 小写转大写金额
- 金额小写转大写
- 金额小写转大写
- 小写转大写金额
- 小写转大写金额
- 金额小写转大写
- 金额小写转大写
- 小写转大写金额
- 金额小写转大写
- 金额小写转大写
- 金额小写转大写
- 金额小写转大写
- 小写金额转大写金额
- 转 金额小写转大写
- 金额小写转大写函数
- SQL 小写转大写金额
- 小写转大写金额[SQLSERVER]
- 微信推出热搜排行榜,微博压力山大?
- 深浅拷贝
- mybatis call stored procedure(MyBatis 调用存储过程)
- 【勤哲应用】用Excel服务器做银行综合管理系统
- HDU2048 神、上帝以及老天爷(错排)
- ABAP小写金额转大写
- JavaScript函数使用要点
- Android 风格
- linux mknode命令
- Mysql数据库中将cmf_videos表中covers字段中的//video替换为/video
- 解决eclipse中tomcat提示404问题
- Linux ixgbe网卡(光模块)兼容性问题
- 函数调用约定和堆栈
- linux下自由切换默然编译选择python2还是python3的方法