#4
|
|||
|
|||
Creo que lo que necesitas es esto, si es un ALV OO.
Fijate en el hot_spot, no en el DATA_CHANGED, que es para que salte cuando haces modificaciones. ************************************************************************ * Definición de CLASES ************************************************************************ * CLASS lcl_co_application DEFINITION DEFERRED. DATA: g_application TYPE REF TO lcl_co_application. *----------------------------------------------------------------------* * CLASS cl_application DEFINITION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_co_application DEFINITION. PUBLIC SECTION. METHODS: handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid IMPORTING er_data_changed, handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid IMPORTING e_row_id e_column_id es_row_no. ENDCLASS. "cl_application DEFINITION *&---------------------------------------------------------------------* *& Class (Implementation) cl_application *&---------------------------------------------------------------------* * Text *----------------------------------------------------------------------* CLASS lcl_co_application IMPLEMENTATION. METHOD handle_data_changed. * perform f_handle_data_changed using er_data_changed. ENDMETHOD. "handle_data_changed_cli METHOD handle_hotspot_click. * perform f_handle_hotspot_click using e_row_id e_column_id es_row_no. ENDMETHOD. "handle_data_changed_cli ENDCLASS. "cl_application AL CREAR EL CONTENEDOR Y EL ALV ANTES DE LLAMARLO DEBES INCLUIR EL METODO: *&---------------------------------------------------------------------* *& Form F_ALV_0017 *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM f_alv_0017 . DATA: lt_toolbar_excluding TYPE ui_functions. IF g_container_alv IS INITIAL. * Objeto contenedor del ALV CREATE OBJECT g_container_alv EXPORTING container_name = 'ALV_MODELOS_PROYECTOS'. "'ALV_CONTAINER'. * Objeto ALV CREATE OBJECT g_grid EXPORTING i_parent = g_container_alv. * perform f_register_edit_event using g_grid. CREATE OBJECT g_application. SET HANDLER g_application->handle_data_changed FOR g_grid. SET HANDLER g_application->handle_hotspot_click FOR g_grid. y PARA QUE VEAS COMO DECLARAR LOS PARAMETROS FORMALES Y UN PEQUEÑO EJEMPLO : *&---------------------------------------------------------------------* *& Form F_HANDLE_HOTSPOT_CLICK *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_E_ROW_ID text * -->P_E_COLUMN_ID text * -->P_ES_ROW_NO text *----------------------------------------------------------------------* FORM f_handle_hotspot_click USING pi_row_id TYPE lvc_s_row pi_column_id TYPE lvc_s_col pi_row_no TYPE lvc_s_roid. * Ini mod IVALLEJO ******************************************************* CLEAR w_co04_0002. READ TABLE i_co04_0002 INTO w_co04_0002 INDEX pi_row_id. IF sy-subrc = 0. CASE pi_column_id-fieldname. WHEN 'OBSERV'. CALL SCREEN 9010 STARTING AT 130 2. ENDCASE. ENDIF. * End mod IVALLEJO ******************************************************* ENDFORM. " F_HANDLE_HOTSPOT_CLICK SINO INTRODUCE UN "BREAK usuario" y MEDIANTE EL DEBUG ANALIZA LAS TABLA Y VARIABLES Y LOS DATOS A LOS QUE TIENES ACCESO DENTRO DEL FORM. Supongo que esto te servira, suerte. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|