En la tabla interna que muestras en el ALV debes crear un campo TYPE lvc_t_styl. En un campo definido de esta forma puedes modificar gran cantidad de características del mismo dándole valores a una serie de bits.
En la declaración del layout debes indicarle qué campo de la tabla interna marca el estilo de la línea a dibujar.
Ejemplo: it_layout1-stylefname = 'ASPECTO'.
Donde 'aspecto' es el nombre del campo de la tabla interna del tipo lvc_t...
Puedes crearte un form como el siguiente que pinte las celdas.
DATA: it_cells TYPE lvc_t_styl.
FORM pintar_celdas USING c TYPE tf605-coimeth.
DATA ls_cells1 TYPE lvc_s_styl.
REFRESH it_cells.
CLEAR: ls_cells1.
CASE c.
WHEN '11100'.
ls_cells1-style = '00000004'.
WHEN '11300'.
ls_cells1-style = '00000003'.
WHEN '11420'.
ls_cells1-style = '00000006'.
ENDCASE.
INSERT ls_cells1 INTO TABLE it_cells.
ENDFORM.
En este caso pinto las filas en función del método de consolidación.
Ya sólo queda pasarle los valores de la tabla it_cells al campo de nuestra tabla interna que se muestra en el ALV. Eso se hace de la siguiente manera:
LOOP AT ti_calculo.
PERFORM pintar_celdas USING ti_calculo-coimeth.
ti_calculo-aspecto[] = it_cells[].
MODIFY ti_calculo.
ENDLOOP.
Espero que te sirva de ayuda.
Saludo,
David.
|