La función CONVERSION_EXIT_ALPHA_OUTPUT es muy útil cuando queremos eliminar los ceros de una cadena...Por ejemplo si tenemos 0000012345, nos devuelve 12345...Pero...que pasa cuando tenemos 00000E12345, simple...el resultado va a seguir siendo 00000E12345.
Por lo tanto y puesto que ayer me ví en un problema muy similar, decidí crear un form muy simple -;)
*&----------------------------------------------------------*
*& Form quitar_ceros *
*&----------------------------------------------------------*
* Quitamos les ceros del inicio *
*-----------------------------------------------------------*
FORM quitar_ceros CHANGING t_codigo.
DATA: long TYPE i,
char TYPE c,
cero TYPE c,
counter TYPE i,
new_text(18) TYPE c,
flag TYPE c.
cero = '0'.
long = STRLEN( t_codigo ).
DO long TIMES.
counter = counter + 1.
IF counter EQ long.
EXIT.
ENDIF.
char = t_codigo+counter(1).
IF char NE cero.
CONCATENATE new_text t_codigo+counter(1)
INTO new_text.
flag = 'X'.
ELSE.
IF flag EQ space.
CONTINUE.
ELSE.
CONCATENATE new_text t_codigo+counter(1)
INTO new_text.
ENDIF.
ENDIF.
ENDDO.
t_codigo = new_text.
ENDFORM. "quitar_ceros
Lo que logramos con esto, es obtener el valor E12345
Saludos,
Blag.
1 comment:
podrias hacer lo mismo en una linea, con SHIFT variavel LEFT DELETING LEADING '0'
Post a Comment