SAP:人民币金额小写转大写

本文介绍了如何在SAP中自定义函数转换人民币金额小写到大写,包括个位、十位、百位、千位、万位及小数部分的转换方法,以及对特定字符串的清理优化。

人民币金额小写转大写

SAP提供了一个 SPELL_AMOUNT 函数进行大小写转换,但是我不太会用,转换后还要把英文替换成中文,所以就自己写了一个。

 

 

FUNCTION Z_DIGITAL_LOWER_TO_UPPER.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(DIGITALIN) TYPE  C
*"  EXPORTING
*"     VALUE(DIGITALOUT) TYPE  C
*"----------------------------------------------------------------------

IF digitalin = '0'.
    digitalout = '零'.
ELSEIF digitalin = '1'.
    digitalout = '壹'.
ELSEIF digitalin = '2'.
    digitalout = '贰'.
ELSEIF digitalin = '3'.
    digitalout = '叁'.
ELSEIF digitalin = '4'.
    digitalout = '肆'.
ELSEIF digitalin = '5'.
    digitalout = '伍'.
ELSEIF digitalin = '6'.
    digitalout = '陆'.
ELSEIF digitalin = '7'.
    digitalout = '柒'.
ELSEIF digitalin = '8'.
    digitalout = '捌'.
ELSEIF digitalin = '9'.
    digitalout = '玖'.
ELSE.
    digitalout = '×'.
ENDIF.


ENDFUNCTION.

 

FUNCTION Z_MONEY_LOWER_TO_UPPER.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(MONEYIN) TYPE  P
*"  EXPORTING
*"     VALUE(MONEYOUT) TYPE  C
*"     VALUE(MONEYSPLIT) LIKE  ZMONEYSPLIT STRUCTURE  ZMONEYSPLIT
*"----------------------------------------------------------------------

DATA: ipos TYPE I,
      iwan TYPE I,
      imod TYPE I,
      pin TYPE P DECIMALS 2,
      strint TYPE C LENGTH 10,
      strdec TYPE C LENGTH 3,
   &nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值