在 制作 Report Program 时有需要从 secondary list向 basic list 复制 数值的时候 。
这时把读取 的数据 复制到 数值的变量里 程序会报错推出。
所以需要把数字中间的 “,” 剔除出去 。
下面的函数 是把 数字中间没有的字符删除的函数。
[@more@]在 制作 Report Program 时有需要从 secondary list向 basic list 复制 数值的时候 。
这时把读取 的数据 复制到 数值的变量里 程序会报错推出。
所以需要把数字中间的 “,” 剔除出去 。
下面的函数 是把 数字中间没有的字符删除的函数。
FUNCTION Z_CHECK_AND_CONVERT_NUMBER.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(P_INPUT)
*" EXPORTING
*" VALUE(P_OUTPUT)
*" EXCEPTIONS
*" NO_NUMERIC
*"----------------------------------------------------------------------
DATA : NUMBER(30),
NUMBER_OUT(30),
LENGTH TYPE I,
LENGTH2 TYPE I,
ONE.
MOVE P_INPUT TO NUMBER.
LENGTH = STRLEN( NUMBER ).
IF NUMBER CP '*.*.*'.
RAISE NO_NUMERIC.
ENDIF.
DO LENGTH TIMES.
ONE = NUMBER(1).
IF ONE = ','.
ELSEIF ONE = ' '.
LENGTH2 = STRLEN( NUMBER_OUT ).
IF LENGTH2 > 0. EXIT. ENDIF.
ELSEIF ONE BETWEEN '0' AND '9' OR
( ONE EQ '-' AND SY-INDEX EQ LENGTH ) OR
ONE EQ '.'.
CONCATENATE NUMBER_OUT ONE INTO NUMBER_OUT.
ELSE.
RAISE NO_NUMERIC.
ENDIF.
SHIFT NUMBER.
ENDDO.
MOVE NUMBER_OUT TO P_OUTPUT.
ENDFUNCTION.
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7549807/viewspace-926215/ ,如需转载,请注明出处,否则将追究法律责任。