方法一:调用函数
*去前导零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = lv_order
IMPORTING
output = lv_order.
*增加前导零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_order
IMPORTING
output = lv_order.
例子:
DATA(lv_order_number) = CONV aufnr( 12345 ).
WRITE |{ lv_order_number }|. "Output: 12345
"Add leading zeros
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_order_number
IMPORTING
output = lv_order_number.
WRITE |{ lv_order_number }|. "Output: 000000012345
"Remove leading zeros
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = lv_order_number
IMPORTING
output = lv_order_number.
WRITE |{ lv_order_number }|. "Output: 12345
方法二:使用字符串模板的短格式
在最近的 ABAP 版本中,对字符串处理的重大改进使得零处理代码不再那么冗长。例如,自从 ABAP 7.4 中的字符串模板和 ABAP 7.2 中的嵌入式 ALPHA 表达式出现后,就可以在单行中实现 ALPHA 转换的结果。
*删除前置零
lv_order = |{ lv_order ALPHA = OUT }|.
*增加前置零
lv_order = |{ lv_order ALPHA = IN }|.
例如:
DATA(lv_order_number) = CONV aufnr( 12345 ).
WRITE |{ lv_order_number }|. "Output: 12345
lv_order_number = |{ lv_order_number ALPHA = IN }|.
WRITE |{ lv_order_number }|. "Output: 000000012345
lv_order_number = |{ lv_order_number ALPHA = OUT }|.
WRITE |{ lv_order_number }|. "Output: 12345
方法三: 使用 SHIFT LEFT DELETING LEADING
* 删除前导零
SHIFT <yourField> LEFT DELETING LEADING '0'.
例子:
DATA(lv_order_number) = CONV aufnr( |{ '12345' ALPHA = IN }| ).
WRITE |{ lv_order_number }|. "Output: 000000012345
SHIFT lv_order_number LEFT DELETING LEADING '0'.
WRITE |{ lv_order_number }|. "Output: 12345
REPLACE '0' WITH SPACE INTO L_VAR.
CONDENSE L_VAR.
其他:增加尾部的零
OVERLAY 语句可用于填充字符串尾部的零。
DATA(lv_order_number) = CONV aufnr( 12345 ).
WRITE |{ lv_order_number }|. "Output: 12345
"Helper variable of type string, without any leading or trailing zeros
DATA(lv_order_number_string) = |{ lv_order_number ALPHA = OUT }|.
OVERLAY lv_order_number_string WITH '000000000000'.
WRITE |{ lv_order_number_string }|. "Output: 123450000000