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
@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:
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
@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