PDA

Ver la Versión Completa : Captura de evento en un table control


fitog4
08/04/08, 08:53:15
Hola a todos,

En una dynpro he creado un table control a traves del wizard, y lo relleno a partir de una tabla interna. Tengo dos preguntas:

1º Cuando dentro del table control muevo la rueda del raton o cuando doy a las flechas de arriba y abajo, el programa me vuelve a la pantalla anterior. ¿Por que ocurre esto?

2º Quiero capturar el evento doble click sobre un registro. Se que hay que usar la funcion 'Get cursor line', pero no se implementarla. ¿Me podriais hechar una mano?

Un saludo.

robert_milan
08/04/08, 09:55:34
1) Puede ser que no limpies el sy-ucomm o la variable del evento que hayas pulsado. o que tengas asignado mal el evento del back.

2) al table control solo ponle que sea sensible al doble click y ya validas el campo y esas cosas.

espero te sirva.

mcarrasco
10/04/08, 13:35:39
Hola, sabes? el table control es mucho mas complicado de usar que un ALV GRID. Podrias implementar uno que te funcione como un table control (agregar, modificar y elimnar registros del listado) y ademas te trae mas opciones y posibilidades..! Yo lo hice... ya que el table control me parecio mucho codigoo y muy poco atractivo. El alv grid tiene mejor presentacion...!

Rodolfo Montiel Rivera
10/04/08, 22:03:20
*Forma 1 Esta forma es con metodo de la clase
MODULE get_cursor INPUT.

CREATE OBJECT fw.

CALL METHOD cl_framework_mm=>get_instance
IMPORTING
ex_instance = obj_cl_framework_mm.

var_cursor = obj_cl_framework_mm->get_cursor( ).

ENDMODULE. " get_cursor INPUT

*&---------------------------------------------------------------------*

*Forma2 Aqui necesitas declarar una variable selec en la pantalla del dynpro
MODULE linea INPUT.


CLEAR: var_documento,
var_posicion.

IF selec = 'X'.

MOVE itab_reporte-ebelp TO var_posicion.
MOVE itab_reporte-ebeln TO var_documento.

ENDIF.

ENDMODULE.

*&---------------------------------------------------------------------*

MODULE user_command_0100 INPUT.

CLEAR: ok_code.

ok_code = sy-ucomm.

CASE sy-dynnr.

WHEN '0100'.

CASE ok_code.

WHEN 'CLIC'.

*Forma 3 Declaras en el menu esa codigo de funcion y utilizas el get cursor
GET CURSOR LINE var_posicion.

var_documento = itab_reporte-ebeln.

PERFORM ejecutar_busqueda USING var_documento var_posicion

ENDCASE.

ENDCASE.

ENDMODULE.

*----------------------------------------------------------------------*
* Definición de Variables
*----------------------------------------------------------------------*

DATA: var_ebeln LIKE ekko-ebeln,
var_documento LIKE ekko-ebeln,
var_posicion LIKE ekpo-ebelp.

DATA: obj_cl_framework_mm TYPE REF TO cl_framework_mm,
var_cursor TYPE mmpur_cursor_position.


Suerte!!