PDA

Ver la Versión Completa : refrescar pantalla en ALV


Patri
06/06/06, 14:37:22
Hola foro,

He echo un alv y cuando realizo doble clik sobre una linea, me lleva a la pantalla de otra transacción donde me permite modificar los datos de esa linea en concreto..el problema esta, que cuando modifico y le doy a grabar y vuelvo al listado, los campos que he modificado siguen teniendo el valor antiguo,y toman los valores nuevos cuando retrocedo a la pantalla de seleccion del listado y vuelvo a entrar en el mismo.
Lo que quiero hacer es que se me refresque la pantalla justo cuando salgo de la pantalla de modificación "No del listado por completo"
Se que hay una estructura la slis_selfield que tiene un campo llamado refresh que si le marcas con una X supuestamente deberia refrescarte la pantalla..pero no me funciona.
Alguien tiene una idea de algo???

Aron
06/06/06, 16:48:08
Hola, una forma como he tratado ese tema es creando un boton que posea la función refresh, y cuando yo realice alguna modificacion a algún regiatro de un ALV, simplemente pulsando este boton se realiza el refresh, ejecutandose en el user-command donde vuelvo a llamar al form que cargo los datos, al form donde se encuentra la llamada a la funcion: REUSE_ALV_GRID_DISPLAY, y terminando con un seteo a los dympros: SET SCREEN 0. LEAVE SCREEN.
como indico lienas abajo, espero te pueda servir.

*---------------------------------------------------------------------*
* FORM USER_COMMAND_01 Process Call Back Events (Begin) *
*---------------------------------------------------------------------*
FORM USER_COMMAND_01 USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.

READ TABLE GT_OUTTAB INDEX SELFIELD-TABINDEX.
CHECK SY-SUBRC = 0.
CASE UCOMM.
WHEN 'REFRESH'.
PERFORM CARGA_DATA.
PERFORM MOSTRAR_ALV_01.
SET SCREEN 0.
LEAVE SCREEN.
ENDCASE.

Saludos

Aron

carlosalcala
06/06/06, 21:20:15
Si quieres cambiarla y hacerla con objetos te copio un ejemplo,de esta forma tienes un método para modificar y refrescar la alv.

Salu2!

jguzmah
07/06/06, 04:34:41
Patri, aqui la solucion a tu problema:

FORM USER_COMMAND_01 USING UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.

dentro de este parrafo solo debes asignar esta instruccion
RS_SELFIELD-REFRESH = 'X'. esto hace que se actualice la pantalla automaticamente dentro del ALV.

endform.

Saludos cordiales,
Juan Alberto :cool:
Desarrollador Gpsa Abap/4.

Patri
07/06/06, 08:40:34
Muchas gracias.....probelma solucionado!!!

Saludos.

gabrielros
28/06/06, 13:59:56
Hola Amigos,

Tengo un problema con un ALV, tengo un campo editable dentro de mi alv, y necesito que cuando modifique el valor de este campo se calcule un valor en otra columna, el problema radica en que no consigo un evento al momento del enter que me permita actualizar otro valor. Estoy utilizando la función REUSE_AVL_GRID_DISPLAY y tengo activo el parametro i_callback_user_command. Entonces consigo que cuando le doy doble click a la linea se ejecute el User_Command, pero cuando modifico el valor de la columna y le doy enter no se activa el User_Command.

A alguien le ha pasado este problema? Cualquier ayuda será muy agradecida.

Saludos.

agv1976
30/06/06, 12:51:08
Hola a todos, tengo un problema, tengo una ALV con columnas dinamicas, que las hize con fields symbols, la columna es de tipo dats, le asigno el calendario mediante un matchcode, me lo muestra pero no me pone el dato , en el fieldcat pongo:

F4AVAILABL = 'X'.
REF_FIELD = 'F_CURSO'.
REF_TABLE = 'ZEP_ALV_DATOS'.
edit = 'X'.

Con eso consigo que me muestre el calendario pero no el valor en la celda.

Yo pienso que el problema es por el REF_FIELD = 'F_CURSO' porque mi tabla interna no tiene el campo F_CURSO, porque el nombre de todos los campos es dinamico tambien, gracias.

lasinpar
29/11/06, 08:53:23
Hola me gustaria saber como hacer un alv con columnas dinamicas. Muchas gracias....

robert_milan
29/02/08, 12:55:32
siempre se aprende algo nuevo, ya vi que es viejisimo pero UTIL!!!!!!!!!!


Saludos a los que vean esto y escribieron la solucion.

Saludos!!!

vickxo
01/03/08, 19:49:05
GabrielRos, cuanod tu modificas un valor en tabla interna q viene ligada a tu ALV se carga el valor, el tema esta en que no le indicas a tu ALV q tiene q desplegar los datos de salida, marca la opcion REFRESH = 'X' q comentan aqui, con eso seguro que veras el cambio en tu ALV.
Ahora con respocto al user-command, debes de considerar q al momento de dar enter el sy-ucomm me parece..trae espacio.
Espero t sirva

MariLu
06/03/08, 15:15:13
Hola me gustaria saber como hacer un alv con columnas dinamicas. Muchas gracias....

Hola! yo he tenido que hacer uno hace poco si quieres te lo mando por mail

larmadovr
06/03/08, 16:07:38
Podrías enviarme tu ejemplo por favor.

larmandovr@hotmail.com

Gracias.

tere90210
12/12/11, 15:47:55
Patri, aqui la solucion a tu problema:

FORM USER_COMMAND_01 USING UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.

dentro de este parrafo solo debes asignar esta instruccion
RS_SELFIELD-REFRESH = 'X'. esto hace que se actualice la pantalla automaticamente dentro del ALV.

endform.

Saludos cordiales,
Juan Alberto :cool:
Desarrollador Gpsa Abap/4.


Este código iría justo después del CALL TRANSACTION, o en qué parte?

Agradezco su atención.

¡Saludos!