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.

  • 相关阅读:
    bzoj 4451 : [Cerc2015]Frightful Formula FFT
    bzoj 3928: [Cerc2014] Outer space invaders
    HDU 5306 线段树
    bzoj 1914: [Usaco2010 OPen]Triangle Counting 数三角形
    bzoj 4519: [Cqoi2016]不同的最小割 最小割树
    bzoj : 4504: K个串 区间修改主席树
    bzoj 4332:JSOI2012 分零食
    bzoj 2595 : [Wc2008]游览计划
    poj 3683 Priest John's Busiest Day
    bzoj 1823: [JSOI2010]满汉全席 && bzoj 2199 : [Usaco2011 Jan]奶牛议会 2-sat
  • 原文地址:https://www.cnblogs.com/coderfarmer/p/13401745.html
Copyright © 2011-2022 走看看