MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   ALV OO doble click sobre celda (foro/showthread.php?t=45269)

DCErick 14/09/11 18:30:32


Depende de que clase uses para hacerlo. Para la clase que tu usas no recuerdo.

La solucion está para cl_gui_alv_grid.

saludos,

asclevius 14/09/11 18:33:36

si me puedes orientar por cualquier clase te lo agradeceria por que estoy perdido la verdad con esto, ya llevo 3 dias tratandolo de hacer y la verdad soy muy nuevo en ABAP

DCErick 14/09/11 18:37:42


creo que este te ayudara:

asclevius 14/09/11 18:39:49

muchisisisisimas gracias lo voy a revizar ya mismo

asclevius 15/09/11 04:12:39

mira este es el metodo que cree, tiene un problema y es que no he podido poner el evento para una sola columna pero mira tento un metodo que es

------------------------------

method MOSTRARDATOS.


DATA lcl_mostrar type REF TO cl_salv_table.

DATA lr_events TYPE REF TO cl_salv_events_table. ",


call method cl_salv_table=>factory
IMPORTING
R_SALV_TABLE = lcl_mostrar
changing
t_table = IT_vbrk.


* create events object
lr_events = lcl_mostrar->get_event( ).

* setup handler for double click
SET HANDLER HANDLE_DOUBLE_CLICK FOR lr_events.
lcl_mostrar->display( ).


endmethod.


------------------------------------

y esta el otro metodo que hace el call transaction


----------------------------------------------------

method HANDLE_DOUBLE_CLICK.


call TRANSACTION 'FK03' AND SKIP FIRST SCREEN.

endmethod.



espero que te oriente mejor!!!!!!!!!!

DCErick 15/09/11 14:07:13

El doble click funciona para todas las columnas del ALV, el nombre de la columna lo pone en la estructura "column"

class lcl_event_handler definition.


Usa column en la implentación del handler para que valides si el nombre de la columna a la que dieron doble click es la que necesitas. Si lo ocupas para una sola columna deberias de usar mejor el HotSpot como lo comentaron al incio, si es obligatorio el doble click pues como te menciono en "column" tienes la info sobre la columna que clickearon y con eso puedes hacer tus validaciones, si ninguna otra columna tendrá funcionalidad con el doble click podrias usar el parametro "row" para tener el index del registro al que dieron doble click y obtener la informacion de tu tabla interna y hacer tu call.

asclevius 16/09/11 01:24:55




DCErick que pena pero no entendi el post T_T disculpame pero me puedes explicar lo que dijiste????? lo que mi usuario necesita (que me cae mal por que todos los dias me esta cambiando el requisito) es que cuando haga click en un registro de la columna cliente me coja ese dato y se vaya a la transacción FK03 y coloque los datos del cliente


la verdad no se si eso es posible, como te digo soy muy nuevo en abap entonces no se muchas cosas.

se te agradece cualquier ayuda y de cualquiera!!!!!!!!!!!

asclevius 16/09/11 15:21:04

aca esta el alv con el doble click limitado a una columna espero que esto le sirva a la persona que postio inicialmente en el foro :D

A mi me sirvio de maravilla aunque me falta coger el dato de la columna :D


---------------------------------------------------------
method MOSTRARDATOS.


DATA lcl_mostrar type REF TO cl_salv_table.

DATA lr_events TYPE REF TO cl_salv_events_table. ",


call method cl_salv_table=>factory
IMPORTING
R_SALV_TABLE = lcl_mostrar
changing
t_table = IT_vbrk.


* create events object
lr_events = lcl_mostrar->get_event( ).

SET HANDLER HANDLE_DOUBLE_CLICK FOR lr_events.
lcl_mostrar->display( ).


endmethod.



-----------------------------------------------------

method HANDLE_DOUBLE_CLICK.

if column = 'CLIENTE'. " CLIENTE es el nombre en la tabla interna de la columna del avl mostrado
call TRANSACTION 'FK03' AND SKIP FIRST SCREEN.
ENDIF.

--------------------------------------------------------


exitos y mucha suerte

DCErick 19/09/11 13:42:34


En pocas letras era esto xD.


Husos Horarios son GMT. La hora en este momento es 09:31:17.

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