PDA

Ver la Versión Completa : Dar formato a los datos en la ALV


andresf02
31/05/10, 00:16:58
Buenas noches.

Tengo un reporte con datos de tipo CHAR(30) y FLPT (punto flotante).

Cuando elguno de los valores tipo CHAR es vacio, en el ALV, el campo aparece vacio, pero cuando uno de los campos numericos es vacio, se muestra:
0.00000000000000E+0.

He visto en algunas transacciones que en el ALV es posible dar formato a los datos como por ejemplo que si el campo numerico es vacio no se muestre nada, o por ejemplo concatenar el valor numerico con una cadena que le describa el tipo de dato. Por ejemplo, si el valor en la tabla es 1.00000000000E+1, en el ALV se muestra:

"1.0 Semanas" (concatenan el valor punto flotante con una cadena).


Si alguien me puede indicar como se llama esto es abap o algun ejemplo, muchas gracias.

melerogalan
31/05/10, 11:38:14
Hola amigo.

Hay muchas opciones en un ALV para dar salida.

En el Fieldcat existe varias opciones, quizas te interese:
NO_ZERO - Control LVA: Suprimir los ceros en la salida -> Marca el campo 'X' .

EDIT_MASK- Control LVA: Máscara edición para salida -> .

Busca la estructura del fieldcat(En ALV OO es LVC_S_FCAT) y veras los campos exsitentes.

Sigo mirando y he encontrado este campo "DECIMALS_O - Control LVA: Cantidad de decimales para salida" o "DECIMALS - Cantidad de decimales", no se que diferencia habra en ambos.

Respecto a crear "1.0 Semanas", lo mejor es concatenar lo que quieras en una variable tipo string y mostrar este campo en el ALV, modifica la FIELDCAT para mostrar el nombre de columna correcto y la longitud adecuda y listo.


Saludos.

andresf02
31/05/10, 21:10:09
Buenas Tardes


Estuve revisando los atributos pero no he logrado que un valor FLTP, por ejemplo, 1.62000000000E+1 se me muestre como 1.60

Intente con el atributo INTTYPE pero seguia mostrandose igual con el exponente.


Por favor su ayuda

andresf02
31/05/10, 21:30:14
ya lo solucioné,

Existe el atributo EXPONENT al cual se le pasa un valor entero:


Para no mostrar la E+, se le pasa el valor 0
para mostrar E+2 se le pasa el valor 2 y asi

melerogalan
01/06/10, 09:13:02
Gracias por reponderte.

Saludos.:)