ABAP excel上传时,数字带文本逗号 转ABAP数量QUAN金额CURR 格式

主要使用 

函数MOVE_CHAR_TO_NUM

或者 UNITS_STRING_CONVERT  

第二个需要限制客户SU3 参数配置X

或者函数入参默认X, excel导出默认时X格式,

 

样例参考代码

复制代码
*&---------------------------------------------------------------------*
*& Report YWWZ_TEST57
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ywwz_test57.

DATA:lv_wrbtr TYPE resb-bdmng.
DATA:lv_wrbtr_num TYPE mchb-clabs.
DATA:lv_clabs TYPE mchb-clabs.
DATA:lv_wrbtr_c TYPE char50.
DATA:lv_wrbtr_c_str TYPE char50.

DATA:lv_p_space TYPE char50.
DATA:lv_p_x TYPE char50.
DATA:lv_p_y TYPE char50.

DATA:lv_dcpfm TYPE usr01-dcpfm.
DATA:lv_units TYPE char50.

SELECT SINGLE dcpfm INTO lv_dcpfm
      FROM usr01
      WHERE bname = sy-uname.

lv_p_space = '336.341,210'.
lv_p_x = '336,341.210'.
lv_p_y = '-336 341,210'.  "负数 336 341,21-


CASE lv_dcpfm.
  WHEN ''.
    lv_wrbtr_c = lv_p_space.
  WHEN 'X'.
    lv_wrbtr_c = lv_p_x.
  WHEN 'Y'.
    lv_wrbtr_c = lv_p_y.
  WHEN OTHERS.
ENDCASE.

BREAK-POINT.
CALL FUNCTION 'MOVE_CHAR_TO_NUM'
  EXPORTING
    chr             = lv_wrbtr_c
  IMPORTING
    num             = lv_wrbtr_num
  EXCEPTIONS
    convt_no_number = 1
    convt_overflow  = 2
    OTHERS          = 3.

lv_clabs = lv_wrbtr_num.

BREAK-POINT.

lv_wrbtr_c_str = lv_wrbtr_c.

IF lv_wrbtr_c+0(1) = '-'.
  SHIFT lv_wrbtr_c_str BY 1 PLACES .
ENDIF.

CALL FUNCTION 'UNITS_STRING_CONVERT'
  EXPORTING
    units_string = lv_wrbtr_c_str
    dcpfm        = lv_dcpfm
*   MLLN         = 'M'
*   TSND         = 'T'
  IMPORTING
    units        = lv_wrbtr
  EXCEPTIONS
    invalid_type = 1
    OTHERS       = 2.

IF lv_wrbtr_c+0(1) = '-'.
  lv_wrbtr = lv_wrbtr * -1.
ENDIF.

lv_clabs  = lv_wrbtr.

WRITE lv_clabs.
FINAL(lv_test_text) = |{ lv_clabs NUMBER = USER }|.

BREAK-POINT.
复制代码

 

posted @   Lan_dev  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示