依据用户参数的设置转换数值格式

 FUNCTION zupd_fm.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(I_IN)
*"     VALUE(I_UNAME) TYPE  UNAME OPTIONAL
*"     VALUE(I_COUNTRY) LIKE  T005X-LAND OPTIONAL
*"  EXPORTING
*"     REFERENCE(E_OUT)
*"     REFERENCE(E_DCPFM) TYPE  XUDCPFM
*"  EXCEPTIONS
*"      USER_NAME_NOT_EXIST
*"      UNABLE_CONVERT_AS_NUMBER
*"      COUNTRY_NOT_FOUND
*"----------------------------------------------------------------------

  DATA: lw_usdefaults TYPE usdefaults,
        lv_sign LIKE usr01-dcpfm,
        lv_form LIKE usr01-datfm,
        lv_re TYPE c.

  IF i_in CO '0123456789,. '.
  ELSE.
    RAISE unable_convert_as_number.
  ENDIF.

  IF i_country IS NOT INITIAL.
    CALL FUNCTION 'C14N_COUNTRY_DATE_DECF_GET'
      EXPORTING
        i_country         = i_country
      IMPORTING
        e_deci_sign       = lv_sign
        e_date_form       = lv_form
      EXCEPTIONS
        country_not_found = 1
        OTHERS            = 2.
    IF sy-subrc <> 0.
      RAISE country_not_found.
    ENDIF.

    e_dcpfm = lv_sign.
  ELSE.
    IF i_uname IS INITIAL.
      i_uname = sy-uname.
    ENDIF.
    CALL FUNCTION 'SUSR_USER_DEFAULTS_GET'
      EXPORTING
        user_name           = i_uname
      IMPORTING
        user_defaults       = lw_usdefaults
      EXCEPTIONS
        user_name_not_exist = 1
        OTHERS              = 2.
    IF sy-subrc <> 0.
      RAISE user_name_not_exist.
    ENDIF.

    e_dcpfm = lw_usdefaults-dcpfm.
  ENDIF.

  CASE e_dcpfm.
    WHEN 'X'.
      TRANSLATE i_in USING ', '.
      CONDENSE i_in NO-GAPS.
    WHEN 'Y'.
      TRANSLATE i_in USING ',.'.
      CONDENSE i_in NO-GAPS.
    WHEN ' '.
      TRANSLATE i_in USING '. '.
      TRANSLATE i_in USING ',.'.
      CONDENSE i_in NO-GAPS.
    WHEN OTHERS.
  ENDCASE.

  MOVE i_in TO e_out.

ENDFUNCTION.  

相关函数组:SUU1,C14N。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值