MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Rellanar con caracteres. (foro/showthread.php?t=1114)

DCErick 11/07/06 00:08:42

Rellanar con caracteres.
 
Existe alguna funcion para rellanar una cadena con algun caracter especial...

Por ejemplo: Los numeros (6789 ,12, 123,1023, 123456)

Me gustaria formatearlos a :

000000000006798
000000000000012
000000000000123
000000000001023
000000000123456

En este caso lo que hago es meter ceros a la izquierda hasta que la cadena tenga una longitud de 15 carecteres???

Alguna idea?

Trate de hacerlo como sigue:

bono 11/07/06 09:17:22

Hola,
Prueba con la función CONVERSION_EXIT_ALPHA_INPUT

Saludos

asuarez 11/07/06 12:40:33

Relleno de Strings
 
Hola, intenta con la instrucción ABAP:

OVERLAY String WITH '000000000000000'.

DCErick 11/07/06 15:34:46

Hola me resulto con tu ayuda BONO....


asuarez la instruccion que me pasaste me lo llena pero a la derecha.....

GraCIAS a ambos

Carlos J. Ortega González 11/07/06 16:15:45

Esto es sólo para el caso de ceros a la izquerda en campos numéricos y enteros.

v_numero type i, (o like sy-index)
v_nummero_n(15) type n,
v_num_char(15) type c.


v_numero = 1234.

v_numero_n = v_numero. ( move: v_numero to v_numero_n.)

write v_numero_n to v_num_char.

Ahora v_numero_char es '000000000001234'.

puedes presentar este en pantalla o transferirlo, si lo presentas en pantalla tambien puedes usar como salida v_numero_n.

tomasm 12/07/06 09:33:39

report zprue_.

data: matriz(15) type N value '0'.

data: begin of itab occurs 0,
numero(15) type n,
end of itab.



start-of-selection.


move '12' to itab-numero.
append itab.
clear itab.

move '1234' to itab-numero.
append itab.
clear itab.

move '123456' to itab-numero.
append itab.
clear itab.

move '123456789' to itab-numero.
append itab.
clear itab.

loop at itab.
move itab-numero to matriz.
Write:/ matriz.
endloop.

SALIDA ------------------------>

000000000000012
000000000001234
000000000123456
000000123456789


salud !!!!!!:cool:

DCErick 12/07/06 15:20:38

Horale, ya salieron varias formas de hacerlo, vere cual es la mejor :D.

albevidu 23/01/07 22:53:56

una explicación
 
Hola DCErick,
como bien lo comenta 'tomasm'

en mi punto de vista la mejor forma de hacer lo que necesitas es asi como el te sugiere, ya que los datos tipo n se rellenan automaticamente con ceros a la izquierda, si de antemano sabes que tu campo o numero debe ser de logitud 15, declaras una variable tipo n de logitud 15 y despues asignas el valor que desees.

data: num(15) type n,
num_string type string.

MOVE num_string TO num.
con esto automáticamente conviertes num_string en un numero de 15 posiciones quedando este valor en num, pudes imprimir el valor para verlo.

espero que te sea de ayuda.
Saludos


Husos Horarios son GMT. La hora en este momento es 02:32:51.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web