• 解决SAP 金额转换为大写数字小数点问题



    data:I_JE TYPE  BSEG-DMBTR.
    data:e_JE TYPE  CHAR100.
      DATA:s_zs TYPE spell,
           s_j  TYPE spell,
           s_f  TYPE spell,
           v_nu TYPE char30,
           v_zs TYPE char30,
           v_xs TYPE char30,
           v_j  TYPE char30,
           v_f  TYPE char30.

      v_nu = gv_HSHJ.

      SPLIT v_nu AT '.' INTO v_zs v_xs.
      v_j = v_xs(1).
      v_f = v_xs+1(1).

      IF v_zs <> '0' .
        CALL FUNCTION 'SPELL_AMOUNT'
          EXPORTING
            language = '1'   "sy-langu"
            currency = sy-waers
            amount   = v_zs
            filler   = ' '
          IMPORTING
            in_words = s_zs.
      ENDIF.


      CALL FUNCTION 'SPELL_AMOUNT'
        EXPORTING
          language = '1'   "sy-langu"
          currency = sy-waers
          amount   = v_j
          filler   = ' '
        IMPORTING
          in_words = s_j.


      IF v_f <> '0' .
        CALL FUNCTION 'SPELL_AMOUNT'
          EXPORTING
            language = '1'   "sy-langu"
            currency = sy-waers
            amount   = v_f
            filler   = ' '
          IMPORTING
            in_words = s_f.
      ENDIF.

      IF s_j-word = '零' AND s_f IS INITIAL .          "如果没有小数位数 如 11.00"
        CONCATENATE s_zs-word '元整' INTO e_je.
      ELSEIF s_zs IS INITIAL .                        "如果没有证书位 如 0.10 0.01 0.11"
        IF s_j-word <> '零' .
          CONCATENATE s_j-word '角' INTO e_je .
        ENDIF.
        IF s_f IS NOT INITIAL.
          CONCATENATE e_je s_f-word '分' INTO e_je.
        ENDIF.
      ELSE.                                           "如果整数小数位都有 如 11.01  11.10 11.11"
        CONCATENATE s_zs-word '元' INTO e_je.

        IF s_j-word = '零' AND s_f IS NOT INITIAL .
          CONCATENATE e_je s_j-word INTO e_je.
        ELSE.
          CONCATENATE e_je s_j-word '角' INTO e_je .
        ENDIF.

        IF s_f IS NOT INITIAL .
          CONCATENATE e_je s_f-word '分' INTO e_je.
        ENDIF.
      ENDIF.

     GV_JEHJ = e_je.

  • 相关阅读:
    导数求函数最大值和最小值
    第34讲:MySQL中常用的几种存储引擎以及如何选择
    gcc和Makefile,多文件编译器
    Rust数据类型——初学者指南
    Python入门必学:单引号、双引号与三引号的差异与应用
    工业树莓派S/SE新系列究竟“新”在何处?点进来查看性能测试结果
    MATLAB | 全网唯一 MATLAB双向弦图(有向弦图)绘制
    马斯克公开支持上班“摸鱼”,允许员工坐班听音乐,还可外放
    简单写一个eventbus
    20哈希表-三数之和
  • 原文地址:https://blog.csdn.net/only_oy/article/details/133904801