MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Concatenar Tres Campos Y Que Uno De Ellos Muestre La Edicion 0 (foro/showthread.php?t=7476)

zavarmi 04/09/07 23:15:01

Concatenar Tres Campos Y Que Uno De Ellos Muestre La Edicion 0
 
Hola a todos,

Tengo el siguiente caso. esto imprimiendo un cod. de Barra (sapscript) el cúal esta compuesto por tres campos: Material + Cantidad + Lote, el cuál lo generó por medio de concatenación, todo OK.
el caso es que el campo cantidad es char de 8 Posiciones, y quiero que este se muestre con los ZEROS que van delante de él : ejemplo cantidad = 115 como el campo es de 8 char, que muestre 00000115..ya que necesito todas las posiciones ocupadas e impresas para que el lector pueda hacer lo que deseamos (por configuaración de este).

gracias por al ayuda.

bktr 05/09/07 11:13:29

mira esta funcion a ver si te sirve: CONVERSION_EXIT_ALPHA_INPUT

Gregoryg 06/09/07 02:34:40

Concatenar
 
Hola

Chequeate estas funciones
CONVERSION_EXIT_ALPHA_INPUT
CONVERSION_EXIT_ALPHA_OUTPUT
Una te sirve para completar de ceros a la izquierda y otra para eliminanrlos

Saludos:D
Gregory

melerogalan 07/09/07 12:25:30

Alternativa
 
tambien existe las sentencias pack y unpack, que quita los ceros o los elimina por la izquierda respectivamente(o al reves, no me acuerdo, :rolleyes: ). Ejemplo:

pack variable_inicial to variable_final.

Con una sola linea lo tienes.

Variable inicial y fianl puede ser la misma sin problemas.

Espero que te sirva.

Saludos :)

zavarmi 07/09/07 21:17:30

No funciona ni el PACK UNPACK ni la función..Alguna otra manera??

prendtorff 10/09/07 20:25:28

la funcion CONVERSION_EXIT_ALPHA_INPUT tiene que funcionar, si lo qeu hace es llenar de 0 ( ceros ) del lado izq una variable.

no debes haberla usado bien.

probala en se37 y vas aver...

saludos y suerte resolviendo tu problema.

caparase 11/09/07 05:42:13

no sé si sea posible, pero ¿puedes cambiar el tipo de dato de texto a numérico?...si puedes hacer eso, el campo númérico solo te muestra los ceros a la izquierda y lo puedes concatenar sin problemas.

de no ser posible el cambio de tipo, puedes utilizar el comando STRLEN, con el que puedes calcular el largo del texto dentro del campo CANTIDAD y le concatenas los ceros que te hagan falta. Esto es, si tienes 115 en CANTIDAD:

largo = strlen( cantidad ).

* el valor que toma LARGO es 3.

* después le restas el 3 a 8 y te da 5:

largo = 8 - largo.

do largo times.

concatenate '0' cantidad to cantidad.
condense cantidad no-gaps. "elimina los espacios que pueden quedar con
el concatenar
enddo.

espero te sirva.

saludos.

zavarmi 11/09/07 17:47:40

Listo ya quedo Muchas gracias...

caparase 11/09/07 19:24:22

...y cómo lo resolviste?

zavarmi 11/09/07 23:17:38

de la siguiente manera: declare una variable de la long. que necesito con valor inicial '0'. Luego de asignar el valor del campo a mi variable 2 (v_qtyc), realice un OVERLAY a mi variable v_qtyc con la variable v_ceros, y luego concateno los campos que quiero (v_matnr V_QTYC p_lote )

DATA: v_ceros(8) VALUE '00000000'.

v_qtyc = mseg-erfmg.

OVERLAY v_qtyc WITH v_ceros.

CONCATENATE v_matnr v_qtyc p_lote INTO v_cblar IN CHARACTER MODE.


Husos Horarios son GMT. La hora en este momento es 23:25:43.

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