MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Tema Cerrado
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 12/09/09, 03:52:00
vamp_01 vamp_01 is offline
Senior Member
 
Fecha de Ingreso: jun 2006
Mensajes: 109
Ayuda a rellenar un Char con ceros Izq

Hola a todos , si aca nuevamente consultando a ustedes como se hacen las cosas...
he intentado resolver mi problema, pero no doy con la solucion, a lo mejor es mas facil de lo que yo creo.

Bueno mi problema es el siguiente, tengo un campo declarado como char de largo 20 (data a7_1 like ztbl-char20.)

el dato que se agrega a ese campo por ejemplo es 1-k...
este dato tiene un largo de 3, es decir, me quedan 17 espacio en el total del largo del campo que ocupar, aca la pregunta, como lo hago para que este char se rellene los 17 espacios que quedan con ceros a la izquierda.

data a7_1 like ztbl-char20.
*asi esta ahora
a7_1 = '1-k'.
*debe quedar asi
a7_1 = '000000000000000001-k'.
Que hago para que el campo quede completo, en su largo total.
de ante mano Gracias
  #2  
Viejo 14/09/09, 16:33:29
Avatar de Vique
Vique Vique is offline
Pregúntame por las Bolas Vique
 
Fecha de Ingreso: mar 2006
Mensajes: 146
Hola,
si tu texto inicial no contiene ningún espacio, puedes usar la sentencia OVERLAY.

Primero define una constante del mismo tipo que tu campo (CHAR20) cuyo valor sea todo ceros. Y usala para sobreescribir sobre tu campo, de la siguiente forma:

OVERLAY a7_1 WITH c_ceros.

Los caracteres que esten en blanco en tu campo serán reemplazados por los ceros de la constante.
Si quieres que los ceros queden al principio antes tendras que justificar el texto a la derecha.

Espero te sirva de ayuda.
Un saludo.
__________________
¿Pero nadie me va a preguntar por las bolas Vique?
  #3  
Viejo 14/09/09, 17:48:30
jmenendez jmenendez is offline
Member
 
Fecha de Ingreso: may 2009
Mensajes: 54
Otra es usar FM: CONVERSION_EXIT_ALPHA_INPUT
  #4  
Viejo 14/09/09, 19:02:32
eljota eljota is offline
Member
 
Fecha de Ingreso: dic 2008
Localización: Lima-Peru
Mensajes: 48
puedes usar la función anterior (x lo general la uso)

o puedes intentar escribir tu variable sobre otra d tipo N:

var_final(20) TYPE N.

WRITE var_orig TO var_final.

y var_final se completará con 0
__________________
Jaime Zegarra V.
________________
ABAP Developer
  #5  
Viejo 14/09/09, 20:17:35
vamp_01 vamp_01 is offline
Senior Member
 
Fecha de Ingreso: jun 2006
Mensajes: 109
gracias voy a probar

ahi les cuento como me fue
Gracias
  #6  
Viejo 15/09/09, 14:43:06
vamp_01 vamp_01 is offline
Senior Member
 
Fecha de Ingreso: jun 2006
Mensajes: 109
no funciono ninguna de las que aca expusieron...nada de nada aun continuo con el problema.....si me pueden ayudar...

GRacias
  #7  
Viejo 15/09/09, 15:07:46
Tonnyman Tonnyman is offline
Member
 
Fecha de Ingreso: dic 2006
Mensajes: 53
data: a7_1 TYPE string,
val TYPE i,
val1 TYPE string.

a7_1 = '1-k'.
val1 = strlen( a7_1 ).

IF val1 < 20.
val = 20 - val1.
ENDIF.


DO val TIMES.
CONCATENATE '0' a7_1 INTO a7_1.
ENDDO.


WRITE a7_1.
  #8  
Viejo 15/09/09, 17:18:14
Tonnyman Tonnyman is offline
Member
 
Fecha de Ingreso: dic 2006
Mensajes: 53
O también podrias manejarlo de esta forma:

data: a7_1 TYPE string,
a7_2 TYPE char20,
val TYPE i,
val1 TYPE string.

a7_1 = '1-k'.
val1 = strlen( a7_1 ).

IF val1 < 20.
val = 20 - val1.
DO val TIMES.
CONCATENATE '0' a7_1 INTO a7_1.
ENDDO.
ENDIF.

a7_2 = a7_1.
WRITE a7_2.

Espero haber podido ayudar.

Saludos.
  #9  
Viejo 16/09/09, 09:30:30
DLR DLR is offline
Junior Member
 
Fecha de Ingreso: abr 2008
Mensajes: 10
Lo primero es que la funcion CONVERSION_EXIT_ALPHA_INPUT, no funciona si hay caracteres alfabeticos en la cadena.

Y por otro lado, si el valor que vas a añadir es siempre '1_K', una manera sencilla es la siguiente:

DATA: lv_numc20(20) TYPE n,
lv_char20 TYPE char20.

lv_char20 = lv_numc20.
lv_char20+17(3) = '1_K'.

Un saludo.
  #10  
Viejo 16/09/09, 12:43:32
Atlas Atlas is offline
Senior Member
 
Fecha de Ingreso: ago 2007
Mensajes: 107
prueba:

shift <var> RIGHT DELETING TRAILING space.

transalte <var> using ' 0'.
Tema Cerrado


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 19:35:43.


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