Ver la Versión Completa : problema con el ALV_GRID y CALL METHOD er_data_change
Hola a tod@s,
tengo un problema con el ALV_GRID.
Utilizo el CALL METHOD er_data_change->get_cell_value
para controlar un campo de la ALV.
cambio el campo fecha1 del registro X del ALV.
En el campo "value" tengo el valor de la fecha1 que he cambiado y que en seguida voy a controlar...
pero, a parte de este nuevo valor, tambien necestito saber cuales son los valores de los otros campos del mismo registro X (por ej fecha2, nombre, etc..)
Muchas gracias por la ayuda
RRRSAP
DavidXD_XD
19/02/09, 16:07:15
Hola, cuando usas el evento handle_data_changed tienes esto ...
handle_data_changed
FOR EVENT DATA_CHANGED OF cl_gui_alv_grid
IMPORTING er_data_changed.
Dentro del parametro er_data_changed existe un atributo llamado mt_good_cells y con ese puedes saber que valor se ha cambiado dentro de la celda editable, asi como tambien el nombre del campo y el numero de registro de la tabla interna que cambiaste, ejemplo
DATA: g_good TYPE lvc_s_modi.
FIELD-SYMBOLS: <fs> LIKE LINE OF itab.
LOOP AT er_data_changed->mt_good_cells INTO g_good.
READ TABLE itab INDEX g_good-row_id ASSIGNING <fs>.
IF sy-subrc = 0.
... "Aqui tengo la estructura de la linea que contiene la modificacion de la celda
ENDIF.
ENDLOOP.
Espero que te pueda ayudar :D
Mucha gracias David
siempre muy gentil
RRRSAP
Hola otra vez,
he puesto el nuevo codigo, pero lo que obtengo es el valor nuevo de la fecha( valor cambiado ) pero yo necesito tambien el viejo valor por que tengo que chequear que el nuevo valor sea mayor del viejo valor!!
sabes como se pueda hacer?
gracias de la ayuda!!!
RRRSAP
DavidXD_XD
20/02/09, 14:02:52
Hola, supongamos que cambias el campo CAMP_FECHA, entonces dentro del valor g_good-value tendrias el nuevo valor, mientras que si lees la tabla interna con la fila que modificaste <fs>-camp_fecha todavia tiene el antiguo valor, ahi puedes realizar una comparacion ...
LOOP AT er_data_changed->mt_good_cells INTO g_good.
READ TABLE itab INDEX g_good-row_id ASSIGNING <fs>.
IF sy-subrc = 0.
... "Aqui tengo la estructura de la linea que contiene la modificacion de la celda
ENDIF.
ENDLOOP.
Gracias x tu ayuda,
creo que le he conseguido..
saludos
RRRSAP
Luis Armando Valdez R.
27/05/11, 18:29:23
Hola amigos, tengo un caso que cuando el usuario captura un documento, yo hago una consulta a la BD y obtengo información, pero la quiero pintar en automatico cuando el de enter.
Ejemplo
Captura Documento ==>enter
Pinta Referencia, Fecha, etc.
Dentro de la línea de registro nueva en mi ALV.
Gracias!
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web