PDA

Ver la Versión Completa : No me salta evento en ALV


elena_mr
08/01/09, 09:59:53
Alguien me sabría decir por qué no me entra en el código del form FOTR_XX_MARCAR_CAMBIOS utilizando los siguiente:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'ALV_STATUS'
i_callback_user_command = 'USER_COMMAND'
is_layout = sg_layout
it_fieldcat = tg_fieldcat[]
i_save = c_save
i_grid_settings = sg_grid_settings
it_events = I_EVENTS
TABLES
t_outtab = it_tabla3.

Donde I_EVENTS sólo tiene 1 línea:
I_EVENTS-NOMBRE = 'LIST MODIFY'
I_EVENTS-FORM = 'FOTR_XX_MARCAR_CAMBIOS'

Teniendo esto, entiendo que se tendría que ir al form indicado cuando modifique alguno de los campos del ALV editable que tengo... pues no lo hace.
Muchas gracias a todos.
Elena

Mauricio Hidalgo
08/01/09, 12:46:57
Lo que sucede es que eso eventos son los que se refieren a los Eventos del programa. TOP-OF-PAGE, END-OF_SELECTION, etc. Y no a eventos propios de la clase cl_gui_alv_grid, como por ejemplo data_changed o data_changed_finished que son los que se gatillan con modificar el dato en la celda del ALV.

Saludos

elena_mr
08/01/09, 13:20:03
Gracias,
he probado con el evento data_changed, pero ahora me sale un damp al modificar el campo del alv diciendome que le paso demasiados parámetros al método METHOD_DATA_CHANGED, ¿qué parámetro le estoy pasando? pongo el código que tengo:

FORM F_FORMATEAR_EVENTOS_ALV USING P_EVENTS TYPE SLIS_T_EVENT.
DATA: L_EVENTS TYPE SLIS_ALV_EVENT.

CLEAR L_EVENTS.
L_EVENTS-NAME = 'DATA_CHANGED'.
L_EVENTS-FORM = 'FOTR_XX_MARCAR_CAMBIOS'.
APPEND L_EVENTS TO P_EVENTS.
L_EVENTS-NAME = 'USER_COMMAND'.
L_EVENTS-FORM = 'USER_COMMAND'.
APPEND L_EVENTS TO P_EVENTS.
ENDFORM. " F_FORMATEAR_EVENTOS_ALV

El call del alv:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'ALV_STATUS'
* i_callback_user_command = 'USER_COMMAND'
is_layout = sg_layout
it_fieldcat = tg_fieldcat[]
i_save = c_save
i_grid_settings = sg_grid_settings
it_events = I_EVENTS
TABLES
t_outtab = it_tabla3.

Sé que es complicado, pero gracias de antemano por vuestra ayuda
Elena

Mauricio Hidalgo
08/01/09, 17:22:31
DATA_CHANGED es un método que puedes usar sólo con OO.