Ver Mensaje Individual
  #4  
Viejo 08/10/09, 03:33:57
Jonathan Barrio Jonathan Barrio is offline
Junior Member
 
Fecha de Ingreso: nov 2008
Mensajes: 25
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.
Responder Con Cita