Ver Mensaje Individual
  #4  
Viejo 05/09/07, 15:14:28
Avatar de darona
darona darona is offline
Member
 
Fecha de Ingreso: jun 2006
Localización: Valencia, Spain
Mensajes: 44
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.
Responder Con Cita