#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
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. |
#3
|
|||
|
|||
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... |
Herramientas | Buscar en Tema |
Desplegado | |
|
|