MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Control de selección de filas en un table control (foro/showthread.php?t=4744)

jplozano 03/04/07 11:12:20

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 03/04/07 12:16:05

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.

jplozano 03/04/07 13:16:38

Si, es lo que me temía.

Muchas gracias por tú ayuda.

Atlas 17/08/07 08:43:57

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

zain 21/11/08 12:09:22

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

vickxo 23/11/08 22:40:17

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.






Husos Horarios son GMT. La hora en este momento es 16:10:11.

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