PDA

Ver la Versión Completa : volver pantalla seleccion


javi24
30/05/10, 20:00:12
buenas tardes,

Tengo un programa que lanza un alv mediante unos parametros de selección.
Una vez mostrada la ALV, tengo un botón donde a partir de escojer un resgistro de la ALV, pincho el botón y me va a una dynpro donde me muestra los campos de la linea del alv seleccionado más otros nuevos que tengo que rellenar, una vez rellenos le doy a aceptar y me vuelve a la alv.

El problema viene que en la barra de status del alv, si he pinchado antes el botón para que me aparezca la dynpro para rellenar los campos, al darle al boton de retroceder me vuelve a la dynpro en vez de a la pantalla inicial, que es lo que quiero.

He probado con:
SCREEN 0.
LEAVE SCREEN.

y con

LEAVE TO SCREEN 0

pero siempre me vuelve a la dynpro que llamo para rellenar campos en vez de a la pantalla inicial.

Alguien me podria ayudar??

muchas gracias

calanis
30/05/10, 22:16:42
Hola

Mira no conozco bien el contexto total del problema, pero creo que deberías revisar en que una vez llamado a tú Dynpro y al momento de salir de la misma, no estés llamando nuevamente al ALV, también considero que no es un ALV OO, Verdad?.

Para ser más gráfico:
A-Pantalla de Selección(Dynpro 1000)
B-Lista ALV(Dynpro XXXX)
C-Pantalla que definiste para Carga(Dynpro 0100)
Lo que te sucede es esto al realizar los llamados
A-->B-->C
Lo cual es lo correcto, pero si al salir de C, llamas nuevamente a B
A-->B-->C-->B

Entonces al retornar regresas a C.
Si el problema radica en que no sabes como actualizar el listado ALV una vez modificada la tabla interna que lo cargo, te recomiendo que verifiques este link.
Esa solución es la fácil y aún así hay otra, pero para entender esa es la más adecuada.

Saludos
Carlos Alanis

javi24
01/06/10, 08:16:03
Muchas gracias,
el problema era el refresco del alv, lo hice por obetos y ya esta solucionado.

Jambi
20/09/10, 13:05:38
reavivo este post pq tengo el mismo problema pero no lo he podido solucionar con el refresh.

Tengo una dynpro 100, q contiene una pantalla de seleccion y una subscreen 300. La siguiente es la única manera con la q conseguí q la subscreen funcionase:

PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.

CALL SUBSCREEN SUB_1 INCLUDING sy-repid '0300'.

PROCESS AFTER INPUT.
MODULE exit_0.

CALL SUBSCREEN SUB_1.

MODULE USER_COMMAND_0100.


La subscreen 300, llama a otra dynpro 200, q contiene una ALV. Cuando le doy al botón para retroceder a la pantalla anterior desde la ALV:

MODULE USER_COMMAND_0200 INPUT.

CALL METHOD cl_gui_cfw=>dispatch.

CASE ok_code.

WHEN 'BACK'.
CALL METHOD cl_gui_cfw=>flush.
CALL METHOD obj_grid->refresh_table_display( ).

SET SCREEN 0.

WHEN 'EXIT'.
LEAVE PROGRAM.

ENDCASE.

ENDMODULE. " USER_COMMAND_0200 INPUT

me vuelve a la subscreen (se ejecuta el PBO de la dynpro 100 q contiene la llamada a la subscreen), cuando lo q pretendo es q vuelva a la pantalla de seleccion inicial. cómo lo podria conseguir?
ademas del refresh he probado con Free del container y del grid. pero me da q el problema radica en la llamada a la subscreen en la pbo.

muchas gracias de antemano, un saludo