Colores en un ALV
Dar color a columnas, filas o celdas concretas de un listado ALV.
- ALV
- 2 de 3
- Anterior
- Catálogo de campos ALV
- Siguiente
- Casillas de selección en un ALV
Colorear una columna
En el catálogo de campos se rellena EMPHASIZE con un código de cuatro caracteres Cxyz:
- C: indica que es un color.
- x: número de color, del 1 al 7 (1 azul grisáceo, 2 gris claro, 3 amarillo, 4 azul, 5 verde, 6 rojo, 7 naranja).
- y: intensidad, 1 encendida y 0 apagada.
- z: inverso, 1 activado y 0 desactivado.
ls_fieldcat-emphasize = 'C210'. " gris claro intensificadoColorear una fila
Se añade a la tabla de datos un campo de cuatro caracteres con el color de cada línea y se indica su nombre en el layout:
TYPES: BEGIN OF ty_alv,
color TYPE c LENGTH 4,
matnr TYPE mara-matnr,
END OF ty_alv.
DATA gt_alv TYPE STANDARD TABLE OF ty_alv.
LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<ls_alv>).
<ls_alv>-color = COND #( WHEN <ls_alv>-matnr CP 'J*' THEN 'C610' ELSE 'C510' ).
ENDLOOP.
gs_layout-info_fieldname = 'COLOR'.Colorear celdas concretas
Para dar color solo a algunas celdas se añade a la tabla un campo de tipo LVC_T_SCOL (o SLIS_T_SPECIALCOL_ALV con las funciones REUSE) y se indica su nombre en gs_layout-coltab_fieldname (o ctab_fname). Cada línea de ese campo dice qué columna se colorea y con qué color.