ABAP 金额小写转大写

101 篇文章 7 订阅

 

Z_CONVERT_TO_CAPITALIZATION

 

 

 

 

FUNCTION Z_CONVERT_TO_CAPITALIZATION.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(PI_MONEY) TYPE  BBWERT
*"  EXPORTING
*"     VALUE(PO_CHINESE) TYPE  CHAR_50
*"----------------------------------------------------------------------


  IF PI_MONEY 0.
    PO_CHINESE ''.
    EXIT.
  ENDIF.
  DATA:MONEY_STR(13).
  MONEY_STR PI_MONEY.
  IF MONEY_STR CN '0123456789. '.
    RAISE WRONG_MONEY.
  ENDIF.
  DATA:I TYPE I.
  IF MONEY_STR CS '.'.
    SY-FDPOS + 1.
    MONEY_STR+SY-FDPOS MONEY_STR+I.
  ENDIF.
  CONDENSE MONEY_STR NO-GAPS.
  DATA:UNITS_OFF TYPE I,
       CURNT_OFF TYPE I.
  DATA:LASTD TYPE N,CURNTD TYPE N.
  DATA:CWORD(2),WEIGHT(2).
  DATA:UNITS(30VALUE '分角元拾佰仟万拾佰仟亿拾佰仟万',
       DIGTS(20VALUE '零壹贰叁肆伍陆柒捌玖'.
 clear:po_chinese.",units_off.
  LASTD 0.
  CURNT_OFF STRLENMONEY_STR 1.
  WHILE CURNT_OFF >= 0.
    CURNTD MONEY_STR+CURNT_OFF(1).
    CWORD DIGTS+CURNTD(1).

    WEIGHT UNITS+UNITS_OFF(1).

    IF CURNTD 0.             "Current digit is 0
      IF UNITS_OFF OR UNITS_OFF OR UNITS_OFF 10.
        CLEAR:CWORD.
        IF CURNT_OFF 0.
          CLEAR:WEIGHT.
        ENDIF.
      ELSEIF LASTD 0.
        CLEAR:CWORD,WEIGHT.
      ELSE.
        CLEAR:WEIGHT.
      ENDIF.
    ENDIF.
    "PO_CHINESE = CWORD + WEIGHT + PO_CHINESE.
    CONCATENATE CWORD WEIGHT PO_CHINESE INTO PO_CHINESE.
    LASTD CURNTD.
    SUBTRACT FROM CURNT_OFF.
    ADD TO UNITS_OFF.
  ENDWHILE.
  IF PO_CHINESE NS ''.
    CONCATENATE PO_CHINESE 'INTO PO_CHINESE.
  ELSE.
    CWORD PO_CHINESE.
    IF CWORD ''.
      SHIFT PO_CHINESE BY PLACES.
    ENDIF.
  ENDIF.


ENDFUNCTION.

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值