PDA

Ver la Versión Completa : ayuda doble click en alv


julianvc
25/04/10, 07:56:26
buenos días.
Tengo un alv que muestra una serie de datos.
Al meter en la llamada al alv :
I_CALLBACK_USER_COMMAND = 'alv_user_command'
y crear el form correspondiente:

FORM alv_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.

*VISUALIZO EL PEDIDO
if rs_selfield-fieldname = 'VBELN' AND R_UCOMM = '&IC1'.
set parameter id: 'AUN' field rs_selfield-value.
call transaction 'VA03' and skip first screen.
ENDIF.
*VISUALIZO EL CLIENTE
if rs_selfield-fieldname = 'KUNNR' AND R_UCOMM = '&IC1'.
set parameter id: 'AUN' field rs_selfield-value.
call transaction 'XD03' and skip first screen.
ENDIF.
*VISUALIZO EL ARTICULO
if rs_selfield-fieldname = 'MATNR' AND R_UCOMM = '&IC1'.
set parameter id: 'AUN' field rs_selfield-value.
call transaction 'MM03' and skip first screen.
ENDIF.
endform.


al hacer doble click me sale el error fatal del pantallazo sap:
"LOAD_PROGRAM_NOT_FOUND".

Alguien me puede ayudar.

Gracias y saludos

juanphys
25/04/10, 10:17:55
Hola,

Pásale el parámetro en mayúsculas:

I_CALLBACK_USER_COMMAND = 'ALV_USER_COMMAND'

Saludos

julianvc
26/04/10, 08:20:58
Muchas gracias por la respuesta, pero me sigue dando el mismo error.

He puesto
I_CALLBACK_USER_COMMAND = 'ALV_USER_COMMAND'

y el form es:

FORM ALV_USER_COMMAND USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.

case r_ucomm.


endcase.

*VISUALIZO EL PEDIDO
if rs_selfield-fieldname = 'VBELN' AND R_UCOMM = '&IC1'.
set parameter id: 'AUN' field rs_selfield-value.
call transaction 'VA03' and skip first screen.
ENDIF.
*VISUALIZO EL CLIENTE
if rs_selfield-fieldname = 'KUNNR' AND R_UCOMM = '&IC1'.
set parameter id: 'AUN' field rs_selfield-value.
call transaction 'XD03' and skip first screen.
ENDIF.
*VISUALIZO EL ARTICULO
if rs_selfield-fieldname = 'MATNR' AND R_UCOMM = '&IC1'.
set parameter id: 'AUN' field rs_selfield-value.
call transaction 'MM03' and skip first screen.
ENDIF.
endform.
Se os ocurre otro motivo?.

Muchas gracias y saludos

caralbgro
26/04/10, 12:39:57
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_interface_check = 'X'
i_callback_program = g_repit
it_fieldcat = LISTADO[]
i_callback_top_of_page = 'TOP_OF_PAGE'
is_layout = s_layout
i_save = 'A'
it_events = events[]
i_callback_user_command = 'USER_COMMAND'
TABLES
* t_outtab = mi_tabla_det_1
t_outtab = mdato
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

---------------------------------------------

FORM USER_COMMAND USING L_UCOMM LIKE SY-UCOMM
L_SELFIELD TYPE SLIS_SELFIELD.

COMMIT WORK.

CASE L_UCOMM.
WHEN '&IC1'. " Doble click
CHECK NOT L_SELFIELD-value IS INITIAL.
READ TABLE mdato INDEX L_SELFIELD-tabindex.
CASE L_SELFIELD-FIELDNAME.
WHEN 'LIFNR'.
SET PARAMETER ID 'LIF' FIELD L_SELFIELD-value.
SET PARAMETER ID 'BUK' FIELD mdato-BUKRS.
CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.
ENDCASE.
ENDCASE.

l_SELFIELD-REFRESH = 'X'.
endform.

------------------------------------------------

julianvc
26/04/10, 14:19:17
Solucionado, muchísimas gracias a todos.

pptavo
19/11/10, 22:17:43
Solucionado, muchísimas gracias a todos.

hola a todos espero esten bien,

en micaso es mas simple supongo es un reporte en forma de listado y en el AT_LINE SELECTION: puse
set parameter id: 'AUN' field variable.
call transaction 'VA03' and skip first screen.

pero al abrir la transaccion va03, me manda un error en la primer pantalla el cual dice

indicar numero de documento.

lo segundo que pasa es que si abro la transaccion directamente con x pedido, cuando la mando llamar desde el reporte siempre abre el pedido que le digite la ultima vez, espero puedan ayudarme

muchas gracias de antemano

saludos!!!