zoukankan      html  css  js  c++  java
  • SAP数值金额转大写函数

    FUNCTION ZFUN_CONVERT_NUMERIC_TO_CHINES.
    *"----------------------------------------------------------------------
    *"*"Local interface:
    *"  IMPORTING
    *"     REFERENCE(IV_MONEY) TYPE  FAGLFLEXA-HSL
    *"  EXPORTING
    *"     REFERENCE(EV_MONEY) TYPE  C
    *"  EXCEPTIONS
    *"      WRONG_MONEY
    *"----------------------------------------------------------------------

      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 '.'.
        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:ev_money,units_off.
      LASTD 0.
      CURNT_OFF STRLENMONEY_STR 1.
      WHILE CURNT_OFF >= 0.
        CURNTD MONEY_STR+CURNT_OFF(1).
        CURNTD.
        CWORD DIGTS+I(1).
        WEIGHT UNITS+UNITS_OFF(1).
        UNITS_OFF / 1.
        IF CURNTD 0.             "Current digit is 0
          IF I OR I 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 FROM CURNT_OFF.
        ADD TO UNITS_OFF.
      ENDWHILE.
      IF EV_MONEY NS ''.
        CONCATENATE EV_MONEY 'INTO EV_MONEY.
      ELSE.
        CWORD EV_MONEY.
        IF CWORD ''.
          SHIFT EV_MONEY BY PLACES.
        ENDIF.
      ENDIF.




    ENDFUNCTION.

  • 相关阅读:
    《大型网站技术架构》学习笔记——架构演化
    ASP.NET MVC之Html.RenderAction
    设计模式学习笔记——面向对象设计原则
    设计模式学习笔记——类图
    观察者模式
    泛型接口
    泛型的实例化应用
    多线程第二种方式-实现runnable
    对象中的某个属性不希望被序例化--transient
    对象序例化
  • 原文地址:https://www.cnblogs.com/coderfarmer/p/13401745.html
Copyright © 2011-2022 走看看