MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 03/10/09, 10:55:49
miguel.esteban.martin miguel.esteban.martin is offline
Member
 
Fecha de Ingreso: ene 2009
Mensajes: 89
Ayuda eventos alv oo

Hola abaperos.

Tengo una duda sobre el evento del alv oo que tengo que utilizar.

En mi desarrollo quieren que cuando señale una linea del alv compruebe los datos que hay en esa linea y segun lo que halla haga una serie de acciones.

Yo se hacer esto señalando la linea y dando a un boton pero hay algun evento que pueda utilizar que salte segun señalo la linea.
Sin tener que dar a ningun boton ni nada solo que salte al momento que selecciono la linea.

Muhcas gracias.

Un saludo.
Responder Con Cita
  #2  
Viejo 06/10/09, 18:02:52
Henger Abreu Henger Abreu is offline
Junior Member
 
Fecha de Ingreso: jun 2008
Mensajes: 28
Amigo si te entendi bien, lo que quieres es que cuando le des click a una linea de tu ALV te ejecute un evento, bueno lo que tienes que hacer es que cuando ejecutes el ALV "REUSE_ALV_GRID_DISPLAY" activa el USER_COMMAND y creas un Forms USER_COMMAND y ahí, programes lo el evento que tu quieres que haga. Ejemplo:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FIELDCAT
IT_SORT = GT_SORT
* I_SAVE = 'X'
TABLES
T_OUTTAB = T_OUT_TAB
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.

FORM USER_COMMAND USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA: wa_alv LIKE T_OUT_TAB.
CASE r_ucomm.
WHEN '&IC1'. "***********Doble Click********
evento que quiro.
ENDCASE.
ENDFORM.

Espero que te ayude, suerte.
Responder Con Cita
  #3  
Viejo 06/10/09, 19:55:31
martin89 martin89 is offline
Member
 
Fecha de Ingreso: may 2009
Mensajes: 53
Probaste el evento double_click?? o el BUTTON_CLICK??

Saludos
Responder Con Cita
  #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
  #5  
Viejo 19/09/13, 20:40:08
Adriana Anestoso Adriana Anestoso is offline
Junior Member
 
Fecha de Ingreso: abr 2012
Mensajes: 18
Excelente tu respuesta, a mi me pidieron exactamente lo mismo , solo que el mio es un alv oo y el campo sel_mode es A, por lo que automaticamente aparece una columna de seleccion, hice tu ejemplo pero no me funciona no se si me falta algo que declarar las clases y crear el objeto en mi alv.....
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 17:27:36.


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