MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 13/10/10, 20:00:17
jorgeABAP29 jorgeABAP29 is offline
Member
 
Fecha de Ingreso: oct 2010
Mensajes: 33
sy-ucomm

Holaa, aca les dejo el siguiente código (desde el alv llama a esta subrutina que maneja la interaccion del usuario con el reporte por medio del sy-ucomm, este tiene el codigo de la funcion asociada al evento):

FORM user_command USING us_ucomm TYPE sy-ucomm
us_selfield TYPE slis_selfield.

TABLES: zm23n.
DATA: e_m23n LIKE zm23n.

READ TABLE ts_mostrar INTO e_mostrar INDEX
us_selfield-tabindex. " probar con field symbols

IF syst-subrc IS INITIAL.
CASE us_ucomm.
WHEN '&IC1'. "Doble click

IF us_selfield-fieldname EQ 'EBELN'.

CALL FUNCTION 'ENQUEUE_EZOBJ2'
EXPORTING
mode_zm23n = 'E'
mandt = sy-mandt
* EBELN =
* USUARIO =
* FECHA =
* HORA =
* X_EBELN = ' '
* X_USUARIO = ' '
* X_FECHA = ' '
* X_HORA = ' '
* _SCOPE = '2'
* _WAIT = ' '
* _COLLECT = ' '
EXCEPTIONS
foreign_lock = 1
system_failure = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.

CLEAR e_m23n.

MOVE: e_mostrar-ebeln TO e_m23n-ebeln,
sy-uname TO e_m23n-usuario,
sy-datum TO e_m23n-fecha,
sy-uzeit TO e_m23n-hora.



INSERT INTO zm23n VALUES e_m23n.

COMMIT WORK.

CALL FUNCTION 'DEQUEUE_EZOBJ2'
EXPORTING
mode_zm23n = 'E'
mandt = sy-mandt.
* EBELN =
* USUARIO =
* FECHA =
* HORA =
* X_EBELN = ' '
* X_USUARIO = ' '
* X_FECHA = ' '
* X_HORA = ' '
* _SCOPE = '3'
* _SYNCHRON = ' '
* _COLLECT = ' '

IF sy-subrc IS INITIAL.

SET PARAMETER ID 'BES' FIELD e_mostrar-ebeln.
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.

ENDIF.

ENDIF.



ENDIF.

WHEN ' '.
write: 'holaaaaaa'.

ENDCASE.
ENDIF.


ENDFORM. "user_command


Quiero que cuando haga doble click, inserte en una tabla z un registro, y cuando presiona enter otra cosa, como hago?? (no me toma el enter). Ademas me gustaría que me expliquen como hago para saber los distintos valores del sy-ucomm.

espero por sus respuestas..., muchas gracias de nuevo.
Responder Con Cita
  #2  
Viejo 14/10/10, 05:45:41
jtristan jtristan is offline
Senior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 240
Creo que estás trabajando con un alv normal. En tal caso, el sy-ucomm, si no me equivoco, sólo responde a acciones de botones o del pf-status. Es decir, no responde a eventos propiamente dichos como el doble click. Tendrías que tener una opción en el pf-status con cada una de las opciones que quieres recibir. Cuando declarás el "botón-opción de menú" le indicas un valor en el campo código de la función. Ese es el valor que te va a devolver el sy-ucomm cuando clikees en el mismo.
Para capturar el doble click tendrías que trabajar con un alv grid orientado a objetos.

Un saludo.
Responder Con Cita
  #3  
Viejo 14/10/10, 12:52:00
jorgeABAP29 jorgeABAP29 is offline
Member
 
Fecha de Ingreso: oct 2010
Mensajes: 33
Hola jcristian, muchas gracias por responder.

Es verdad estoy trabajando con un alv, mas precisamente con alv REUSE_ALV_GRID_DISPLAY. El evento del doble click lo captura perfectamente este alv, el que no captura es el boton 'enter' (capaz q otros tampoco), se puede capturar el evento de presionar el boton enter?. igual gracias por lo de sy-ucomm me quedo un poco mas claro, igual me gustaría que sigan respondiéndome sobre este campo (sy-uccom).

espero por mas respuestas...
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 04:27:33.


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