MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   ALV con objetos (foro/showthread.php?t=16620)

diego1975 23/09/08 19:42:47

ALV con objetos
 
Buenas tardes, el problema que tengo es que al modificar un campo y cambiar a otro no me dispara el evento changed.
alguien me podria decir como hacer para forzar a que se dispare el metodo. gracias.

Mike 23/09/08 19:45:15

El metodo CHECK_CHANGED_DATA del ALV hace que se vuelva a llamar los eventos change

saludos,
Mike

diego1975 23/09/08 19:48:37

y en que momento lo deberia llamar?
 
Para ver si puedo ser un poco mas claro
modifico un valor y sin que pase por el field changed quiero duplicar esa linea. primero pasa por el data changed y caudno quiere duplicar la linea no encuetra cual es la fila que quiereo duplicar.
es como si no se refrescara la informacion. ahora si primero cambio la info y desues intento duplicar la linea esto funciona correctamente.

mcarrasco 24/09/08 12:28:23

CL_GUI_ALV_GRID - Tiene todo!
 
amigo, si modificas una linea va a disparar el evento data changed, no hay nada que puedas hacer.. ahora puedes decidir en que momento se dispara este evento:

*-- Muestro el ALV
call method grid->set_table_for_first_display
exporting
i_save = 'A'
is_variant = gs_repid
is_layout = gs_layout
it_toolbar_excluding = lt_exclude
changing
it_fieldcatalog = gt_fieldcat
it_outtab = tb[].

*---Hay 2 opciones. CUANDO SE PRESIONA ENTER

*--- Registro el evento ENTER, para que verifique consistencia de datos
*-- cuando se presione enter
call method grid->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_enter.

*-- O CUANDO SE MODIFICA UNA CELDA

*--- Registro el evento ENTER, para que verifique consistencia de datos
*-- cuando se modifique una celda
call method grid->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_modified.

*---> Ahi podrias hacer llamado al metodo:

call method ir_data_changed->modify_cell
exporting i_row_id = ls_mod_cells-row_id
i_fieldname = 'CODACTVT'
i_value = l_codactvt.

Y se actualiza el ALV... ahora para modificar la tabla interna tienes que hacerlo manualmente y si quieres q el alv tome los cambios tendras que llamar al metodo REFRESH_TABLE_DISPLAY


Husos Horarios son GMT. La hora en este momento es 08:36:59.

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