PDA

Ver la Versión Completa : Como cambiarle el color a una fila a un reporte en ALV?


Juani
10/12/08, 13:39:45
Buenos días.

Quiero cambiarle el color a una fila a un reporte en ALV para diferenciar los totales del detalle y tenga una mejor vista el reporte. anexo una imagen para que tengan una idea de lo que quiero.

Gracias de antemano.

Saludos

Atte.

Henger Abreu.

ademar
10/12/08, 13:49:01
Hola, una solucion seria poner:
fieldcat-emphasize = 'C910'. te da el color de la columna.
donde declaras tu fieldcat para el alv; pero lo consideras en la columna de tu campo total.

Ahora puedess jugar con el color que deses desde (000 - 999)
'C910'

espero te sirva.

DavidXD_XD
10/12/08, 14:09:31
Hola .. este link cae a pelo

http://www.sap-img.com/abap/line-color-in-alv-example.htm

ademar
10/12/08, 15:44:27
Lo que te mande es para una columna sorry, para una fila seria algo similar, primero tendrias que crear una columna mas a tu tabla interna final (la q muestras en el alv), para poner el color,asi:
1ª crearla columna
..........
.......
color(4) type c,
end of ti_interna.
2º evaluas en q fila pondras el color
if ti_interna-campo eq 'H'.
ti_interna-color = 'C610'.
endif.
3º en el layout pones:
gt_layout-info_fieldname = 'COLOR'.

4º listo puedes probar.

espero te sirva
suerte.

Juani
11/12/08, 13:00:42
Buenos Días;

Ya agregue la columna color a mi tabla interna (lista-color="C610"), este campo esta lleno en la fila donde se tiene que cambiar el color. Pero en donde tendria que validar este campo para poder cambiar el color? para que me entiendan mejor les anexo archivo.

DavidXD_XD
11/12/08, 14:24:00
Aver yo hice un caso pintando de rojo las celdas que estan con error ... primero hay q declarar los pool de tipos e includes, luego la tabla interna, luego enlazar el campo de color en el layout y por ultimo llamar al ALV:

TYPE-POOLS: SLIS.
INCLUDE <COLOR>.
* Tabla interna a mostrar en ALV
DATA: BEGIN OF gt_itab OCCURS 0.
INCLUDE STRUCTURE spfli.
DATA: field_col TYPE slis_t_specialcol_alv. "Tabla interna para colores
DATA: END OF gt_itab.
* Tabla interna auxiliar
DATA: gt_aux_itab TYPE TABLE OF spfli WITH HEADER LINE.

* Area de trabajo para tabla interna de colores
DATA: tmp_field_col TYPE slis_specialcol_alv.
* Variables para ALV
DATA: gs_layout TYPE lvc_s_layo,
gt_fieldcat TYPE lvc_t_fcat.

START-OF-SELECTION.
* Lleno una tabla interna auxiliar
SELECT *
INTO TABLE gt_aux_itab
FROM spfli.
* Se mostrara en rojo las aerolineas que comienzan con L
LOOP AT gt_aux_itab.
CLEAR gt_itab.
MOVE-CORRESPONDING gt_aux_itab TO gt_itab.
IF gt_aux_itab-carrid(1) = 'L'.
CLEAR tmp_field_col.
tmp_field_col-fieldname = 'CARRID'.
tmp_field_col-color-col = col_negative. "Color de la celda
tmp_field_col-color-int = 0.
tmp_field_col-color-inv = 0.
APPEND tmp_field_col TO gt_itab-field_col.
ENDIF.
APPEND gt_itab.
ENDLOOP.

* Creo el Layout
gs_layout-zebra = 'X'.
gs_layout-excp_fname = SPACE.
gs_layout-sel_mode = SPACE.
gs_layout-ctab_fname = 'FIELD_COL'. "Enlazamos el campo en el layout

* Llenamos el Fieldcat a partir de la Tabla SPFLI
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = 'SPFLI'
CHANGING
CT_FIELDCAT = gt_fieldcat.

* Y al final llamamos al ALV previa instancion de contenedores
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_SAVE = 'A'
IS_LAYOUT = gs_layout
CHANGING
IT_FIELDCATALOG = gt_fieldcat[]
IT_OUTTAB = gt_itab[].

Lo mas seguro es que funcione, todavia no lo he probado :p , cuando llegue al trabajo lo pruebo y si hay correcciones lo cambio, espero te pueda aclarar como se trabajan los colores en los ALV's

alvcano
21/06/14, 15:56:42
Os dejo este enlace con un ejemplo de como cambiar el color a las columnas y filas de un ALV. Es bastante sencillo

http://sapuniverse.blogspot.com.es/2014/06/colores-en-un-alv-de-sap.html