Control de selección de filas en un table control

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jplozano
    Member
    • feb
    • 31

    #1

    Control de selección de filas en un table control

    Hola a todos:

    Tengo un problemilla que no se como puedo resolver.

    La idea es que cuando seleccione una fila en un table control se muestren unos datos en otro table control que tengo en la misma pantalla. El problema es que no se puedo controlar el evento de las selección de filas en el table control, para introducir hay el código para cargar el otro table control.

    Muchas gracias a todos.
  • Vique
    Pregúntame por las Bolas Vique
    • mar
    • 146

    #2
    buenas,
    creo que "seleccionar una fila" no es exactamente un evento. Tendrás que seleccionar la fila que quieras y después dar un intro para que la pantalla se refresque y ya te muestre el table control de abajo con los datos que quieras.... o poner un botón para que te muestre el detalle en el table control de abajo... no sé que te resultaria más sencillo.

    Espero haber servido de ayuda.
    Un saludo.
    ¿Pero nadie me va a preguntar por las bolas Vique?

    Comentario

    • jplozano
      Member
      • feb
      • 31

      #3
      Si, es lo que me temía.

      Muchas gracias por tú ayuda.

      Comentario

      • Atlas
        Senior Member
        • ago
        • 107

        #4
        Perdon por tardar en contestar jejejeje pero no lo he leido hasta ahora, espero que a alguien le sirva de ayuda.He echo algo parecido hace poco y hay que tener en cuenta varias cosas para hacer lo que piedes:

        Para que se reconozca el doble click tienes que asignar un valor a la tecla de funcion F2, y asi cuando pulses doble click podras controlar este evento.

        Una vez echo esto tendras que recuperar la linea de la tabla interna relacionada con el table control, para ello primero utilizando la sentencia:

        get cursor line g_line.

        Obtendras la linea del table control sobre la que se ha echo doble click, pero no te equivoques, no tiene por que coincidir con la linea de la tabla interna, ya que si se pulsa la barra de desplazamiento las lineas mostradas seran distintas y el numero de linea que te devuelbe es el de la linea mostrada.

        Para ello tendremos que controlar cual es la primera linea mostrada del teble control con la variable nombre_del_table_control-current_line y asi podremos obtener la linea de la tabla interna relacionada de la siguiente forma:

        g_table_line_subfam = nombre_del_table_control-current_line + ( g_line - 1 ).

        Espero que le sirva a alguien

        Comentario

        • zain
          Junior Member
          • feb
          • 1

          #5
          a mi me ha venido que ni pintado.
          muchas gracias por tomarte la molestia de dejarlo para el que lo necesite mas adelante.

          Comentario

          • vickxo
            Senior Member
            • nov
            • 118

            #6
            Lo que se me ocurre...

            Vaya en principio el manejo de un evento que no dispara la funcion de debuggin hace que se complique todo asi que por que no probar creando un nuevo evento, aclaro estoy divagando, mira:

            Hay sólo 3 maneras de disparar un evento

            1) Transacción SM64
            2) Llamar la función BP_RAISE_EVENT desde dentro un programa.
            3) Controlar el programa "sapevt" desde el sistema operativo

            Puede crear un evento con SM62
            Pero tiene que urilizar a este event en un programa que usa la función BP_RAISE_EVENT
            El ejemplo siguiente puede ayudar:
            Eventid = 'ZYPAYEVNT'. (Nombre de evento)
            Eventparm = ' SUCCESS'. (Identificación de evento)


            FORM RAISE_EVNT.

            CALL FUNCTION 'BP_EVENT_RAISE'
            EXPORTING
            EVENTID = EVENTID
            EVENTPARM = EVENTPARM
            TARGET_INSTANCE = ' '
            EXCEPTIONS
            BAD_EVENTID = 1.

            ENDFORM. " RAISE_EVNT


            Una vez que evento es creado, puede programar jobs en background para esperar a que el evento sea disparado.

            Sintaxis y argumentos del programa sapevt pueden ser encontrado en la documentación de SAP.




            el tema esta en hacer la pregunta correcta...

            Comentario

            Trabajando...