Ver la Versión Completa : Concatenar Tres Campos Y Que Uno De Ellos Muestre La Edicion 0
zavarmi
04/09/07, 22:15:01
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.
mira esta funcion a ver si te sirve: CONVERSION_EXIT_ALPHA_INPUT
Gregoryg
06/09/07, 01:34:40
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, 11:25:30
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, 20:17:30
No funciona ni el PACK UNPACK ni la función..Alguna otra manera??
prendtorff
10/09/07, 19: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, 04: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, 16:47:40
Listo ya quedo Muchas gracias...
caparase
11/09/07, 18:24:22
...y cómo lo resolviste?
zavarmi
11/09/07, 22: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.
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web