ALV OO doble click sobre celda

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • DCErick
    Moderator
    • mar
    • 1090

    #16
    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.

    PUBLIC SECTION.

    METHODS:
    on_DOUBLE_CLICK
    FOR EVENT DOUBLE_CLICK OF cl_salv_events_table
    IMPORTING
    row
    column .


    ENDCLASS.
    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.
    -------------------
    ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

    Comentario

    • asclevius
      Member
      • ago
      • 54

      #17
      Originalmente publicado por DCErick
      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.


      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!!!!!!!!!!!

      Comentario

      • asclevius
        Member
        • ago
        • 54

        #18
        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

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


        ---------------------------------------------------------
        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

        Comentario

        • DCErick
          Moderator
          • mar
          • 1090

          #19
          Originalmente publicado por asclevius
          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!!!!!!!!!!!
          En pocas letras era esto xD.
          if column = 'CLIENTE'.
          -------------------
          ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

          Comentario

          Trabajando...