ABAP 调用程序时获取的数量,金额和日期字段会出现 逗号,-,负号等非法字段,所需要进行转化

金额和数量转换,有些为负的需要先把负号去掉。

 DATA  l_dcpfm LIKE usr01-dcpfm.  

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

  IF lv_string CS '-'.
                  SPLIT  lv_string AT '-' INTO gs_out-erfmg_c lv_string2.
                ELSE.
                  gs_out-erfmg_c = lv_string.
                ENDIF.
                CALL FUNCTION 'UNITS_STRING_CONVERT'
                  EXPORTING
                    units_string = gs_out-erfmg_c
                    dcpfm        = l_dcpfm    "此时为X
*                   MLLN         = 'M'
*                   TSND         = 'T'
                  IMPORTING
                    units        = gs_out-erfmg
                  EXCEPTIONS
                    invalid_type = 1
                    OTHERS       = 2.
                IF lv_string CS '-'.
                  gs_out-erfmg = 0 - gs_out-erfmg.
                ENDIF.

日期转换
                CALL FUNCTION 'CONVERT_DATE_TO_INTERNAL'
                  EXPORTING
                    date_external            = gs_out-budat_c
*                   ACCEPT_INITIAL_DATE      =
                  IMPORTING
                    date_internal            = gs_out-budat
                  EXCEPTIONS
                    date_external_is_invalid = 1
                    OTHERS                   = 2.
                IF sy-subrc = 0.

                ENDIF.

posted @ 2021-01-18 15:54  闫默涵  阅读(490)  评论(0编辑  收藏  举报