MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   colorear celda en alv con objetos (foro/showthread.php?t=16070)

jossnet 02/09/08 19:29:53

colorear celda en alv con objetos
 
ola,he creado un alv con objetos que muestra la data de la siguiente manera:
enero febrero marzo abril
% REPROCESO MENSUAL 4.000 10.000 3.000 5.000
% REPROCESO ACUMULADO 21.000 26.000 11.000 16.000

Por defecto ambas filas estan de color gris,pero necesito que las celdas cuyos valores sean menores de 5 se pinten de rojo,las que son > 5 y < 20 se pinten de amarillo y el resto quede con el color por default,
he usado el siguiente codigo para pintar las celdas de acuerdo al caso seleccionado,el cual lo uso en cada columna de cada fila:
WA_COLOR-FNAME = FNAME.
WA_COLOR-COLOR-COL = COL.
WA_COLOR-COLOR-INT = INT.
WA_COLOR-COLOR-INV = INV.
APPEND WA_COLOR TO IT_COLOR.
W_DATOS-COLOR_CELL[] = IT_COLOR[].

pero cuando pruebo el alv para el caso de marzo y abril,solo esta de color amarillo la que tiene valor 16,la celda que tiene 11 no se pinta.Lo que necesito es que me cambie el color de varias celdas en una misma fila pero no consigo que salga como deseeo. Alguna idea como puedo conseguir esto?:confused: :confused:

ibecerra 02/09/08 23:55:34

q extraño, por el codigo y te puedo dar una luz
saludos

mcarrasco 05/09/08 14:12:53

...
 
Ya me ha pasado antes... y me di cuenta que el error estaba en que hay que tener cuidado a la hora de modificar la tabla interna color...

Si te das cuenta WA_COLOR es una tabla interna. que esta dentro de un registro de otra tabla interna que es la que tiene tus datos...

entonces NO debes modificar la tabla interna de colores directamente. Me explico:

side_tb : Tabla interna de datos
ls_side_tb: Area de trabajo para Side_tb
ls_color: Area de trabajo como WA_COLOR

"Actualiza el color de la linea seleccionada
read table side_tb index e_row-index
into ls_side_tb.

ls_color-fname = 'SAKNR'.
ls_color-color-col = '5'.
ls_color-color-int = '0'.
append ls_color to ls_side_tb-cell_color.

clear ls_color.
ls_color-fname = 'TXT20'.
ls_color-color-col = '5'.
ls_color-color-int = '0'.
append ls_color to ls_side_tb-cell_color.

modify side_tb from ls_side_tb index e_row-index.


Husos Horarios son GMT. La hora en este momento es 23:14:29.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web