Ver Mensaje Individual
  #1  
Viejo 03/03/08, 11:58:19
tate tate is offline
Senior Member
 
Fecha de Ingreso: feb 2007
Mensajes: 106
Refrescar ALV

Buenas, tengo un programa saca una alv, y al pinchar en el documento de compra, me va a la transaccion ME23N y modifico lo que sea.
El caso esque le doy al boton refrescar y no me hace nada de nada, y ya no se como hacerlo.
He probado a poner: rs_selfield-refresh = 'X'.
lo e puesto en mil sitios para probar y nada de nada, no me refresca , aber si alguien me echa una mano.
Dejo el perfom q uso:

*---------------------------------------------------------------------*
* FORM user_command *
*---------------------------------------------------------------------*
FORM callback_ucomm USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
DATA answer.
CONSTANTS ansy VALUE 'J'.
DATA noborra.

DATA: usuario TYPE r_usuario.
DATA: usuario_altern TYPE r_usuario.

CASE r_ucomm.
WHEN '&REF'.
rs_selfield-refresh = 'X'.
w_res-refresh = 'X'.
WHEN '&IC1'.
* Mostramos el pedido o el listado secundario
SELECT SINGLE * FROM ekko WHERE ebeln = rs_selfield-value.
IF sy-subrc = 0.
rs_selfield-refresh = 'X'.
SET PARAMETER ID 'BES' FIELD rs_selfield-value.
= 'X'.
CALL TRANSACTION 'ME23N'.
ELSE.
READ TABLE i_data INDEX rs_selfield-tabindex.
PERFORM pantalla_historial.
ENDIF.
*- Ini Ins SIS5F 13/10/05
WHEN '&DEL'.
LOOP AT i_data WHERE mark = 'X'.
PERFORM borrado_pos USING i_data
noborra.
* La desmarco en el ALV
IF noborra = 'X'.
i_data-mark = ' '.
CLEAR noborra.
MODIFY i_data.
ELSE.
ENDIF.
ENDLOOP.
PERFORM mostrar_posibles_mod.
IF NOT tab_borrado IS INITIAL.
CALL FUNCTION 'POPUP_TO_CONFIRM_WITH_MESSAGE'
EXPORTING
defaultoption = 'N'
diagnosetext1 = text-006
diagnosetext2 = text-007
diagnosetext3 = text-008
textline1 = text-010
titel = text-009
IMPORTING
answer = answer.

CASE answer.
WHEN ansy.
PERFORM ejecutar_borrado.
MOVE 'X' TO rs_selfield-refresh.
WHEN OTHERS.
*** Cancelada por usuario
MESSAGE s000(zmm) WITH text-014.
ENDCASE.
ENDIF.

********Tratamiento Usuario Alternativo.*************
WHEN '&USU'.
CLEAR: i_data_altern,
usuario,
usuario_altern.
REFRESH i_data_altern[].
LOOP AT i_data WHERE mark = 'X'.
MOVE-CORRESPONDING i_data TO i_data_altern.
APPEND i_data_altern.
ENDLOOP.
IF sy-subrc <> 0.
MESSAGE e000(zmm) WITH 'Seleccione al menos un registro'.
ENDIF.
PERFORM usuario_alternativo USING usuario
usuario_altern.
*6º Vuelvo. al alv (1º refrescar)
MOVE 'X' TO rs_selfield-refresh.
*- FIn Ins SIS5F 5/02/06
WHEN OTHERS.
ENDCASE.
ENDFORM.
Responder Con Cita