ALV OO doble click sobre celda

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • smartin
    Member
    • ene
    • 51

    #1

    ALV OO doble click sobre celda

    Amigos foreros,

    tengo un ALV OO, y necesito que cuando se de doble click sobre una celda tome el dato que tiene (en este caso una factura) y llame a una transaccion, no se como debo hacerlo; agradeceria que me enviaran un ejemplo.


    gracias de antemano
  • asclevius
    Member
    • ago
    • 54

    #2
    hola smartin!!!!!!

    te cuento que yo tambien estoy en las mismas, si ves mi post de ayer, estoy haciendo lo mismo que tu y lo unico que he encontrado y me ha "servido" (por que aun no lo he terminado) es que el evento doble clic debe ser manejada con la clase CL_SALV_EVENTS_TABLE y que en esta clase hay un metodo que es GET_EVENT.

    estoy leyendo sobre este metodo para mayor claridad pero aun no he implementado nada que me sirva, si lo termino primero que tu te posteare el codigo pero si tu lo terminas te pido que porfavor postees el codigo para yo tambien salir de la duda

    Espero que te haya sido de ayuda almenos un poco

    Comentario

    • X200
      Junior Member
      • nov
      • 24

      #3
      Lo que deberias preguntarte primero es:

      ¿Por que debe ser doble click?

      ¿Es por un requerimiento en especial?

      De lo contrario, si solo necesitas la informacion de una columna en especial, lo mejor seria hacer esa columna "hotspot". Con lo cual podrias crear el evento hotspot, handlear ese evento y crear una rutina que haga un read a la tabla con los parametros que la misma le proporciona. Y una vez hecho esto, hacer un CALL TRANSACTION de la transaction que necesitas, con los datos de esa celda en particular.

      Saludos
      -When you have eliminated the impossible, whatever remains, however improbable, must be the truth.-

      Comentario

      • DCErick
        Moderator
        • mar
        • 1090

        #4
        Originalmente publicado por X200
        Lo que deberias preguntarte primero es:

        ¿Por que debe ser doble click?

        ¿Es por un requerimiento en especial?

        De lo contrario, si solo necesitas la informacion de una columna en especial, lo mejor seria hacer esa columna "hotspot". Con lo cual podrias crear el evento hotspot, handlear ese evento y crear una rutina que haga un read a la tabla con los parametros que la misma le proporciona. Y una vez hecho esto, hacer un CALL TRANSACTION de la transaction que necesitas, con los datos de esa celda en particular.

        Saludos
        Estoy de acuerdo contigo xD.

        Ademas ese tema ya se respondio muchas veces en el foro.
        -------------------
        ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

        Comentario

        • asclevius
          Member
          • ago
          • 54

          #5
          pues la verdad para mi es doble click por un requerimiento del cliente, y ademas DCErick porfavor si esta duda ya se repondio muchas veces en este foro me podrias colaborar diciendome en que parte ya que he revizado las primeras 40 paginas y no lo he visto.

          te lo agradeceria enormemente

          Comentario

          • DCErick
            Moderator
            • mar
            • 1090

            #6
            Originalmente publicado por asclevius
            pues la verdad para mi es doble click por un requerimiento del cliente, y ademas DCErick porfavor si esta duda ya se repondio muchas veces en este foro me podrias colaborar diciendome en que parte ya que he revizado las primeras 40 paginas y no lo he visto.

            te lo agradeceria enormemente
            Eventos en ALV OO
            EVENTOS ALV OO
            -------------------
            ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

            Comentario

            • DCErick
              Moderator
              • mar
              • 1090

              #7
              EVENTOS ALV OO Foro ABAP.es
              -------------------
              ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

              Comentario

              • DCErick
                Moderator
                • mar
                • 1090

                #8
                EVENTOS ALV OO MUNDOSAP
                -------------------
                ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                Comentario

                • DCErick
                  Moderator
                  • mar
                  • 1090

                  #9
                  Originalmente publicado por asclevius
                  hola smartin!!!!!!

                  te cuento que yo tambien estoy en las mismas, si ves mi post de ayer, estoy haciendo lo mismo que tu y lo unico que he encontrado y me ha "servido" (por que aun no lo he terminado) es que el evento doble clic debe ser manejada con la clase CL_SALV_EVENTS_TABLE y que en esta clase hay un metodo que es GET_EVENT.

                  estoy leyendo sobre este metodo para mayor claridad pero aun no he implementado nada que me sirva, si lo termino primero que tu te posteare el codigo pero si tu lo terminas te pido que porfavor postees el codigo para yo tambien salir de la duda

                  Espero que te haya sido de ayuda almenos un poco
                  ¿Estas usando la clase cl_salv_table?
                  -------------------
                  ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                  Comentario

                  • asclevius
                    Member
                    • ago
                    • 54

                    #10
                    si estoy usando la clase cl_salv_table para crear el ALV y la clase CL_SALV_EVENTS_TABLE para el evento boble click



                    Otra cosita:

                    de hecho tenias razon, ya esta resuelto pero no por OO sino por call function
                    Editado por última vez por asclevius; 14/09/2011, 18:31:43.

                    Comentario

                    • DCErick
                      Moderator
                      • mar
                      • 1090

                      #11
                      Originalmente publicado por asclevius
                      sep , de hecho tenias razon, ya esta resuelto pero no por OO
                      Depende de que clase uses para hacerlo. Para la clase que tu usas no recuerdo.

                      La solucion está para cl_gui_alv_grid.

                      saludos,
                      -------------------
                      ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                      Comentario

                      • asclevius
                        Member
                        • ago
                        • 54

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

                        Comentario

                        • DCErick
                          Moderator
                          • mar
                          • 1090

                          #13
                          Originalmente publicado por asclevius
                          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
                          creo que este te ayudara:
                          CL_SALV_TABLE - how to trigger Double_Click
                          -------------------
                          ¿Dudas para descargar manuales? Ver este tema -> Cómo descargar manuales de la sección "Descargas" ?

                          Comentario

                          • asclevius
                            Member
                            • ago
                            • 54

                            #14
                            muchisisisisimas gracias lo voy a revizar ya mismo

                            Comentario

                            • asclevius
                              Member
                              • ago
                              • 54

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

                              Comentario

                              Trabajando...