美文网首页
ABAP货币大小写转换函数

ABAP货币大小写转换函数

作者: SmalltalkVoice | 来源:发表于2016-08-31 08:19 被阅读105次
FUNCTION zf_cn_num.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     REFERENCE(IV_MONEY) TYPE  BSEG-DMBTR
*"  EXPORTING
*"     REFERENCE(EV_MONEY) TYPE  CHAR100
*"----------------------------------------------------------------------
  IF iv_money = 0.
    ev_money = '零'.
    EXIT.
  ENDIF.
  DATA:money_str(33).
  money_str = iv_money.
  CONDENSE money_str NO-GAPS.
  IF money_str CN '0123456789. '.
    RAISE wrong_money.
  ENDIF.
  DATA:i TYPE i.
  IF money_str CS '.'.
    i = 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(30)      VALUE '分角元拾佰仟万拾佰仟亿拾佰仟万',
       digts(20)      VALUE '零壹贰叁肆伍陆柒捌玖'.
* clear:ev_money,units_off.
  lastd = 0.
  curnt_off = strlen( money_str ) - 1.
  WHILE curnt_off >= 0.
    curntd = money_str+curnt_off(1).
    i = curntd.
    cword = digts+i(1).
    weight = units+units_off(1).
    i = units_off / 1.
    IF curntd = 0.             "Current digit is 0
      IF i = 2 OR i = 6 OR i = 10.
        CLEAR:cword.
        IF curnt_off = 0.
          CLEAR:weight.
        ENDIF.
      ELSEIF lastd = 0.
        CLEAR:cword,weight.
      ELSE.
        CLEAR:weight.
      ENDIF.
    ENDIF.
    CONCATENATE cword weight ev_money INTO ev_money.
    lastd = curntd.
    SUBTRACT 1 FROM curnt_off.
    ADD 1 TO units_off.
  ENDWHILE.
  IF ev_money NS '分'.
    CONCATENATE ev_money '整' INTO ev_money.
  ELSE.
    cword = ev_money.
    IF cword = '零'.
      SHIFT ev_money BY 1 PLACES.
    ENDIF.
  ENDIF.
ENDFUNCTION.

相关文章

  • ABAP货币大小写转换函数

  • 单行函数

    字符函数• 大小写转换函数– LOWER(列名|表达式):将大写或大小写混合的字符转换成小写– UPPER(列名|...

  • 函数

    单行函数 处理单行数据 字符函数 接受字符数据作为输入 大小写处理函数 转换所字母为小写 LOWER 转换所有字母...

  • PHP函数

    字符函数 strlen 获取字符长度 strtolower和strtoupper 大小写转换 ucfirst函数将...

  • 第153章 SQL函数 UCASE

    [toc] 第153章 SQL函数 UCASE 将字符串中的所有小写字母转换为大写字母的大小写转换函数。 大纲 参...

  • Pycharm常用快捷键(Mac)

    大小写的转换:⇧ + ⌘ + U历史剪切板:⇧ + ⌘ + V查看函数参数:⌘ + P快速修复代码:⌥ + ↩显示...

  • 第155章 SQL函数 UPPER

    [toc] 第155章 SQL函数 UPPER 将字符串表达式中的所有小写字母转换为大写字母的大小写转换函数。 大...

  • 文本处理函数与日期时间处理函数

    一、文本处理函数 LENGTH():以字节为单位返回字符串的长度。 大小写转换,UPPER()转换为大写,LOWE...

  • Angluar4常用的管道

    日期管道和小数管道 货币和大小写转换 自定义管道 multiple.pipe.ts里面 记得在bind.compo...

  • Oracle数据库常用笔记

    Oracle数据库 函数 大小写转换 截取 四舍五入 日期转字符 字符格式转换 字符转日期 解决NULL空值问题 ...

网友评论

      本文标题:ABAP货币大小写转换函数

      本文链接:https://www.haomeiwen.com/subject/wpeqettx.html