#1
|
|||
|
|||
Ayuda!!!
Hola,
Estoy intentando leer el método CL_GUI_ALV_GRID->get_modified_cells , para poder obtener la tabla que contiene los valores que he puesto en un ALV y no he dado al intro para guardar y me dice que no se puede usar porque es un método protegido. Alguien sabe si hay manera de usar ese método protegido? y si no como puedo saber antes de guardar el ALV los valores que ha metido el usuario y no ha dado al INTRO para actualizar. GRACIAS. |
#2
|
|||
|
|||
El metodo esta protegido precisamente para eso, para que no lo puedas utilizar
En este caso en particular las unicas clases que podrian utilizar los metodos protected serian las que aparecieran en la pestaña FRIENDS de la clase CL_GUI_ALV_GRID Para obtener los datos que se han modificado en un ALV debes hacer lo siguiente Declarar un metodo receptor de eventos que reciba el evento HANDLE_DATA_CHANGED_FINISHED de la clase CL_GUI_ALV_GRID Enlazar el evento a tu metodo con SET HANDLER nombre_metodo for cl_gui_alv_grid for all instances. Asi cuando el usuario cambie algo pasara por el metodo que hayas puesto para recepcionar el handle_data_changed_finished y te viene una tabla como parametro que contiene todas las celdas que se han modificado |
#3
|
|||
|
|||
Ayuda!!
Como declaro el método? Podias ponerme el código?
Declarar un metodo receptor de eventos que reciba el evento HANDLE_DATA_CHANGED_FINISHED de la clase CL_GUI_ALV_GRID Gracias. |
#4
|
|||
|
|||
no estoy seguro, pero no te sirve este post??
fijate esto en particular: * Registramos el evento cuando se modificar el dato por si acaso no * pulsan el ENTER call method obj_grid2->register_edit_event EXPORTING i_event_id = cl_gui_alv_grid=>mc_evt_modified. |
#5
|
|||
|
|||
Ayuda!!!
Mi ALV no es OO, se me olvido mencionar ese detalle.....
|
#6
|
|||
|
|||
Solución
Hola,
Por si a alguien le vale de ayuda al final lo consegui de la siguiente manera: Se recupera el objeto asociado al ALV ( Mi ALV no es orientado a objetos ): DATA: l_ref_alv TYPE REF TO cl_gui_alv_grid. CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' IMPORTING e_grid = l_ref_alv. Y una vez recuperado ese objeto, usamos el siguiente método: CALL METHOD l_ref_alv->CHECK_CHANGED_DATA. Este evento comproyeba si ha habido cambios en el ALV y llama al evento DATA CHANGE para que los actualice. A mi me fue muy util, espero que sirva de ayuda. |
#7
|
|||
|
|||
Muchas gracias gotelyn, a mi me ha servido de mucha ayuda!!
|
#8
|
|||
|
|||
gracias.
en mi caso no utilice la función y solo lo iguale al objeto grid del ALV, y ya con eso puedo mandar llamar la clase de actualización cada vez que lo necesite
Saludos.
__________________
Ing, Fernando Sandoval Parra. Sr. ABAP/4 developer Consultant |
Herramientas | Buscar en Tema |
Desplegado | |
|
|