• 解决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.

  • 相关阅读:
    数据结构之二叉树
    软件项目管理简答题
    思维导图:定时器设计
    swift指针&内存管理-闭包的循环引用
    Spring管理Bean(XML与注解方式)
    OD-Model【8】:YOLOv4
    gltf和glb格式模型用什么软件处理
    Halcon image_points_to_world_plane和image_to_world_plane分析
    RK3568 USB驱动开发
    巧用AI玩转时事分析
  • 原文地址:https://blog.csdn.net/only_oy/article/details/133904801