PDA

Ver la Versión Completa : Cambiar color de celda en ALV grid OO


PabloLiasco
19/05/09, 19:11:48
Hola:
Quería saber como hago para cambiar el color de una celda en la cual acaba de ser modificado su contenido. Esto es usando ALV OO.
Gracias

DavidXD_XD
20/05/09, 04:16:13
Hola, aver lo puedes hacer usando el evento handle_data_changed para saber que linea de la tabla interna que se imprime en el ALV se ha modificado, una vez que lo sepas usa lo que puse como ejemplo en otra ocasion, espero te pueda servir ... :D

http://www.mundosap.com/foro/showthread.php?t=28815

PabloLiasco
20/05/09, 15:09:58
Gracias por contestar...
En qué momento del programa debería llamar al evento, y en qué clase está el mismo?
Gracias

DavidXD_XD
20/05/09, 15:17:04
Como ejemplo puedes revisar los programas (SE38) que comienzan con BCALV_EDIT*, ahi veras como implementan el evento handle_data_changed el cual tiene una estructura como parametro, ese parametro te indica la columna y la fila que ha sido cambiada asi como tbm el nuevo valor que se ha introducido, justo ahi debes cambiar tu tabla interna con el indice que figura en el parametro

PabloLiasco
20/05/09, 17:07:42
Gracias... voy a intentar hacerlo..

PabloLiasco
20/05/09, 17:49:51
En qué momento tendría que hacer el CALL method, ya que lo que tengo que hacer es chequear en el mismo momento en que la celda se modifica??

DavidXD_XD
20/05/09, 19:36:45
Los eventos solo son implementados, internamente son triggers el cual son activos cuando modificas la celda, cuando modificas la celda automaticamente va a pasar por la implementacion del evento de tu alv handle_data_changed

PabloLiasco
20/05/09, 19:46:04
Ahora entiendo.
El tema es que una vez que se ejecuta el método necesito que se ejecute una especie de refresh de el ALV, para ver la celda coloreada.
Uso el set_table_for_first_display?
O acaso hay alguna otra forma?

DavidXD_XD
20/05/09, 21:55:54
Hay otra metodo que hace eso, usa el metodo:

CALL METHOD g_grid->refresh_table_display

Xsiaca, ese metodo es sin parametros puesto que las variables que usaste en el metodo set_table_for_first_display ya estan en memoria.