PDA

Ver la Versión Completa : Sapscripts: control de longitud de los campos


jtristan
11/06/09, 05:51:34
Hola,

tengo un sapscripts donde tengo una tabla con el campo matnr y el campo descripción.
El caso, es que el matnr tiene una longitud máxima de 18 caracteres pero los datos, son de varias medidas. El problema, es que dependiendo del número de caracteres que tenga el matnr la descripción me la muestra más alejada de su posición inicial.
¿Hay alguna forma para que rellene los caracteres sobrantes con espacios de tal forma que siempre el matnr me ocupe 18 caracteres o alguna otra forma para que no desplace el campo descripción?

Muchas gracias.
Un saludo.

patrus
11/06/09, 08:41:59
hola

Lo que puedes hacer es lo siguiente:
data : longitud type i.
con la sentencia longitud = strlen(matnr). --> saca la longitud de la cadena
dependiendo de la longitud de la cadena haces un case.
if longitud ne 0
case longitud.
when 1.
SHIFT matnr RIGHT BY 17 PLACES.
when 2.
SHIFT matnr RIGHT BY 16 PLACES.
when 3.
SHIFT matnr RIGHT BY 15 PLACES.
when 4.
SHIFT matnr RIGHT BY 14 PLACES.
when 5.
SHIFT matnr RIGHT BY 13 PLACES.
when 6.
SHIFT matnr RIGHT BY 12 PLACES.
when 7.
SHIFT matnr RIGHT BY 11 PLACES.
when 8.
SHIFT matnr RIGHT BY 10 PLACES.
when 9.
SHIFT matnr RIGHT BY 9 PLACES.
when 10.
SHIFT matnr RIGHT BY 8 PLACES.
when 11.
SHIFT matnr RIGHT BY 7 PLACES.
when 12.
SHIFT matnr RIGHT BY 6 PLACES.
when 13.
SHIFT matnr RIGHT BY 5 PLACES.
when 14.
SHIFT matnr RIGHT BY 4 PLACES.
when 15.
SHIFT matnr RIGHT BY 3 PLACES.
when 16.
SHIFT matnr RIGHT BY 2 PLACES.
when 17.
SHIFT matnr RIGHT BY 1 PLACES.
endcase.
endif.
espero esto que te puesto de ayude a como lo quieres hacer

jtristan
11/06/09, 09:57:11
Muchas gracias Patrus.
Voy a probarlo y te cuento.

Un saludo.