添加前导零一共有三种方法:
1、调用FUNCTION
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
"添加前导0
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = "
IMPORTING
output = "
EXCEPTIONS
length_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
"移除前导0
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
EXPORTING
input = "
IMPORTING
output = "
EXCEPTIONS
length_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
2、使用新语法的ALPHA
举例:
DATA(lv_alpha) = |{ CONV char4( '1' ) ALPHA = IN }|. "添加前导0
DATA(lv_alpha1) = |{ '0001' ALPHA = OUT }|. "移除前导0
结果:
3、[REUSE_ALV_GRID_DISPLAY_LVC]ALV中字段显示前导零
使用 函数REUSE_ALV_GRID_DISPLAY_LVC显示ALV时,可以通过字段catalog中的LZERO控制前导零是否显示。
LVC_S_FCAT-LZERO = ‘X’ :显示前导零
物料的加零一般不用ALPHA
举例:
DATA LV_MATNR TYPE EKPO-MATNR.
SELECT SINGLE
MATNR
FROM EKPO
INTO LV_MATNR.
WRITE: LV_MATNR.
WRITE /.
WRITE: '直接输出:' && LV_MATNR.
WRITE: /.
DATA(LV_ALPHA_IN) = |{ LV_MATNR ALPHA = IN }| .
WRITE:'使用ALPHA加零:' && LV_ALPHA_IN .
WRITE /.
DATA(LV_ALPHA_OUT) = |{ LV_MATNR ALPHA = OUT }| .
WRITE:'使用ALPHA去零:' && LV_ALPHA_OUT .
WRITE /.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = LV_MATNR
IMPORTING
OUTPUT = LV_MATNR
EXCEPTIONS
LENGTH_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
ENDIF.
WRITE:'使用FUNCTION加零:' && LV_MATNR .
WRITE /.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
EXPORTING
INPUT = LV_MATNR
IMPORTING
OUTPUT = LV_MATNR
EXCEPTIONS
LENGTH_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
ENDIF.
WRITE:'使用FUNCTION去零:' && LV_MATNR .
WRITE /.
结果:
EKPO-MATNR: