Color a celda en reporte ALV en base a condicion

Ahora vamos a darle color a una celda determinada de acuerdo a una condición, en este caso, si el valor es diferente de cero.

Para lograr esto, en la definición de la estructura de la tabla interna que se mostrará en el ALV agregarse un campo de tipo tabla, ejemplo:

TYPES: BEGIN OF ty_output,
campo1 TYPE ecampo,
campo2 TYPE ecampo,
importe TYPE eimporte,
t_color TYPE lvc_t_scol,
END OF ty_output.
DATA: gt_output TYPE TABLE OF ty_output,
gs_output TYPE ty_output,.

Lo que se hace es, simplemente cuando un determinado campo cumpla con una condición, en este caso el campo importe debe ser mayor a cero, entonces se le asigna un color determinado.
DATA: lt_color type lvc_t_scol,
ls_color type lvc_s_scol.
LOOP…. ” Loop que ira cargando la tabla de salida.
IF gs_output > 0.
ls_color–fname = ‘IMPORTE‘.
ls_color–color–col = col_negative.
ls_color–color–int = 0.
ls_color–color–inv = 0.
append ls_color to lt_color.
gs_output–t_color = lt_color.
ENDIF.
APPEND gs_output TO gt_output.
ENDLOOP
Una vez que se va a proceder a mostrar el ALV es necesario indicar en la estructura del layout el campo correspondiente al color.

gs_layout–ctab_fname = ‘T_COLOR‘. ” t_color es el campo correspondiente al color en la tabla de salida gt_output

la combinación de colores es la siguiente:

saludos…¡

11 Me gusta

Estas mostrando la logica sobre como dar color a una celda, esta buena, podrias indicar con cual alv funciona este proceso! Para hacer pruebas.

1 me gusta

@smota mira, yo lo implementé para un reporte Z de solicitudes de pedido. En el top de variables globales adicione lo siguiente:

y en mi tabla de salida agregue el campo que pintaría en el reporte ALV (en mi caso le asigne “vencida”) también agregue el campo de los atributos del color:

Después en donde condiciono cuando se pinte de un color la celda o no… puse lo siguiente:

Después agregue el valor de mi campo que pintaré a la tabla de salida.

Y en la seccion donde se procede a mostrar el ALV indico la estructura del layout el campo correspondiente al color… en mi caso:

Y listo…¡¡¡

Saludos

3 Me gusta

Y cual ALV usaste,
REUSE_ALV_GRID_DISPLAY
cl_salv_table

1 me gusta

Yo soy fiel a CL_SALV_TABLE mola mas que el otro :stuck_out_tongue:

3 Me gusta

yo creo que eso es con [quote=“smota, post:4, topic:4894”]
REUSE_ALV_GRID_DISPLAY
[/quote]

1 me gusta

Muy bueno tu aporte!!! :slightly_smiling:

1 me gusta

Perdon por la demora…ese emm creo que fue en reuse_alv_grid_display… saludos

muchas gracias…espero hacer mas aportes…saludos

gracias por el aporte iespino, sabes entonces algo de abap igual que yo pues bienvenido colega tendríamos mucho que hablar de ambos y cuando gustes si yo puedo aportarte algo de FI adelante

1 me gusta

Me pareció interesante, buen aporte,

Un saludo.

1 me gusta

@alexrosascoti pues no soy un experto pero si he manejado badis, smartforms y esas cosas jeje… estamos en contacto y gracias al igual si puedo aportar algo…saludos

gracias, para eso estamos saludos

ok, gracias iespino seria un gusto compartamos conocimientos saludos

1 me gusta

Wooooooooooooooooow que super aporte @iespino !!!

Lo único, por favor no copies y pegues imágenes con código ABAP.
Lee aquí como copiar, pegar y/o formatear código ABAP en el foro :slight_smile:

Saludos!!!

@SidV gracias por el tip…lo tomaré en cuenta para el próximo aporte¡¡¡ saludos

1 me gusta

Algo muy útil para muchos ALVs.

Gracias por el aporte.

1 me gusta