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. |
mira esta funcion a ver si te sirve: CONVERSION_EXIT_ALPHA_INPUT
|
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 |
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 :) |
No funciona ni el PACK UNPACK ni la función..Alguna otra manera??
|
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. |
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. |
Listo ya quedo Muchas gracias...
|
...y cómo lo resolviste?
|
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