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.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通