二维码

SAP自建ABAP函数实现金额转换成大写

Twilight发表于 2016-06-02 10:37chan0815 最后回复于 2020-05-12 14:42 [复制链接] 4508 3

在财务单据打印上,有很多这样的需求,自建一个函数,代码如下:
  1. FUNCTION zfi_translate.
  2. *"----------------------------------------------------------------------
  3. *"*"本地接口:
  4. *"       IMPORTING
  5. *"             VALUE(ZNETWR) LIKE  VBRP-NETWR
  6. *"       EXPORTING
  7. *"             VALUE(ZTEXT) LIKE  SKAT-TXT50
  8. *"----------------------------------------------------------------------

  9.   DATA: m_curr(15) .
  10.   DATA: m_char(6) .
  11.   DATA: m_chare(1) .
  12.   DATA: m_len TYPE i .
  13.   DATA: m_lenn TYPE i .
  14.   DATA: m_count TYPE i .
  15.   CLEAR: m_text , ztext .
  16.   WRITE znetwr TO m_curr DECIMALS 2
  17.                          USING EDIT MASK 'RRV_________.__' .
  18.   CONDENSE m_curr .
  19.   m_len = strlen( m_curr ) .
  20.   m_lenn = m_len .
  21.   m_count = 0 .
  22.   DO m_len TIMES .
  23.     m_count = m_count + 1 .
  24.     m_lenn = m_lenn - 1 .
  25.     m_chare = m_curr+m_lenn(1) .
  26.     CASE m_chare.
  27.       WHEN '0' .
  28.         m_char = '零' .
  29.       WHEN '1' .
  30.         m_char = '壹' .
  31.       WHEN '2' .
  32.         m_char = '贰' .
  33.       WHEN '3' .
  34.         m_char = '叁' .
  35.       WHEN '4' .
  36.         m_char = '肆' .
  37.       WHEN '5' .
  38.         m_char = '伍' .
  39.       WHEN '6' .
  40.         m_char = '陆' .
  41.       WHEN '7' .
  42.         m_char = '柒' .
  43.       WHEN '8' .
  44.         m_char = '捌' .
  45.       WHEN '9' .
  46.         m_char = '玖' .
  47.       WHEN '-' .
  48.         m_char = '(负)' .
  49.     ENDCASE .
  50.     IF m_char NE '(负)' AND m_char NE space .
  51.       CASE m_count .
  52.         WHEN '1' .
  53.           CONCATENATE m_char '分' INTO m_char .
  54.         WHEN '2' .
  55.           CONCATENATE m_char '角' INTO m_char .
  56.         WHEN '4' .
  57.           CONCATENATE m_char '圆' INTO m_char .
  58.         WHEN '5' OR '9' .
  59.           CONCATENATE m_char '拾' INTO m_char .
  60.         WHEN '6' OR '10'.
  61.           CONCATENATE m_char '佰' INTO m_char .
  62.         WHEN '7' OR '11' .
  63.           CONCATENATE m_char '仟' INTO m_char .
  64.         WHEN '8' .
  65.           CONCATENATE m_char '万' INTO m_char .
  66.         WHEN '12' .
  67.           CONCATENATE m_char '亿' INTO m_char .
  68.       ENDCASE .
  69.     ENDIF.
  70.     CONCATENATE m_char m_text INTO m_text .
  71.     CONDENSE m_text .
  72.     CLEAR m_char .
  73.   ENDDO .

  74.   ztext = m_text .
  75. *PERFORM sub_translate .

  76. ENDFUNCTION.
复制代码
回复

使用道具 举报

zll
棒棒棒棒哒
回复

使用道具 举报

zhongguomao
棒棒棒棒哒
回复

使用道具 举报

chan0815
thank you for share documents~~
回复 支持 反对

使用道具 举报

快速回帖

本版积分规则
您需要登录后才可以回帖 登录 | 注册有礼

快速回复 返回顶部 返回列表