Ver Mensaje Individual
  #4  
Viejo 30/05/06, 12:17:15
apozosanz apozosanz is offline
Member
 
Fecha de Ingreso: feb 2006
Mensajes: 86
Hola.
En la funcion de visualizar la grid ('REUSE_ALV_GRID_DISPLAY') debes poner un alv_command:

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = prg

*LA SIGUIENTE SENTENCIA SE USA PARA EL EVENTO DE DOBLE CLICK.
i_callback_user_command = 'ALV_USER_COMMAND'
it_fieldcat = fieldcat
it_sort = sortcat
i_save = 'A'
IMPORTING
es_exit_caused_by_user = salida
TABLES
t_outtab = IT_SALIDA
EXCEPTIONS
program_error = 1
OTHERS = 2.

Después generas un perform en el que se ejecuta el doble click:

*---------------------------------------------------------------------*
* FORM ALV_USER_COMMAND *
*---------------------------------------------------------------------*
* ........ *
*---------------------------------------------------------------------*
* --> R_UCOMM *
* --> RS_SELFIELD *
*---------------------------------------------------------------------*
FORM alv_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
* Aqui hago el tratamiento del evento doble click
* CUANDO SE HACE DOBLE CLICK SE VIENE A ESTA SUBRUTINA.
*HAY QUE PREGUNTAR CUAL ES LA CELDA QUE SE HA PINCHADO.
*HACIENDO WHEN '<NOMBRE DEL CAMPO>
*SE USA RS_SELFIELD (CAMPO SELECCIONADO)

CASE RS_SELFIELD-FIELDNAME.
WHEN 'CODSOC'.
EXIT.

WHEN 'NOMBRE'.
EXIT.
ENDCASE.


ENDFORM.


Dentro de los when puedes hacer llamadas a transacciones, submit a reports o lo que tu quieras, ya gestionas los botones de manera normal.
Espero que esto responda un poco a tu pregunta.
Suerte.
Responder Con Cita