|
#1
|
|||
|
|||
En caso que ese sea el circuito no veo la necesidad de el call transaction / call screen para volver(esto depende si es ALV orientado a objetos).
Saludos. Javier.
__________________
Lo importante no es saber sino saber quien es el que sabe |
#2
|
|||
|
|||
hola, de atemano agradezco su ayuda, probablemente no me explique muy bien, la tercer pantalla con el detallle de articulos tambien es un ALV , el circuito es:
Parametros de selección->ALV1->ALV2 Donde: ALV1 es una lista de articulos que se puede seleccionar y ALV2 es la lista de los detalles del articulo seleccionado. en ambos casos los ALV son de objetos, nunca se utiliza el REUSE ALV. Se que en teoría debería poder regresar utilizando el LEAVE TO SCREEN 0. Pero cuando pongo esta instrucción en lugar de regresarme a los parametros de selección, lo que hace es mandarme al ALV2. en otras palabras (lo ideal) el circuito de regreso debería ser ALV2->ALV1->Parametros de selección Pero lo que esta ocurriendo cuando pongo Leave to screen 0. es ALV2-> ALV1-> ALV2 (los parametros de selección nunca regresan). Habia logrado regresar con LEAVE TO CURRENT TRANSACTION pero en este caso la pantalla de Parametros de selección esta vacia. y el usuario insiste que quiere que se conserven los datos que el había metido originalmente. |
#3
|
||||
|
||||
Puedes colocar el codigo al momento de pasar de tu pantalla de seleccion al ALV1, de igual manera la llamada al ALV2, con eso descartamos varias cosas
__________________
David Carballido Córdova |
#4
|
|||
|
|||
en el evento start of selection esta la llamada a la pantalla 200 que es el contenedor del ALV1
start-of-selection. clear: opc1, opc2. IF lifnr IS INITIAL. MESSAGE i007 WITH 'Introducir Proveedor'. else. IF p_man EQ 'X'. if s_matkl[] IS INITIAL. MESSAGE i007 WITH 'Introducir Grupo de Articulos'. else. opc1 = 'X'. perform llena_parametros. perform carga_tablas. perform it_llena_ti_data. CALL SCREEN 200. Luego dentro del modulo MODULE user_command_0200 INPUT. esta la llamada a la pantalla 300 que es el ALV2 CALL SCREEN 300. ahi mismo tengo mas abajo el siguiete código CASE sy-ucomm. WHEN 'EXIT' OR 'CANCEL'." OR 'BACK'. PERFORM f_destruir_objetos. leave to current transaction. WHEN 'BACK'. PERFORM f_destruir_objetos. LEAVE to current transaction. ** WHEN others. WHEN others. este es quien me regresa a la pantalla de Parametros de seleccion con el problema de que la pantalla esta en blanco al llamarla asi. |
#5
|
||||
|
||||
Hola, en vez del CALL SCREEN 300. prueba con SET SCREEN 300, me comentas tus resultados
__________________
David Carballido Córdova |
#6
|
|||
|
|||
Gracias pero sigue el mismo problema supongo que despues de cambiar el CALL SCREEN 300 POR SET SCREEN 300 en la opcion BACK debo colocar el famoso LEAVE TO SCREEN 0, no?.
ya hice eso pero por alguna razon sigue igual cuando doy el back me regresa al ALV2 ya tambien cambie la llamada CALL SCREEN 200 por un SET SCREEN 200 y con todo y eso de todos modos no presenta la pantalla inicial sino que se va siempre al ALV2 (screen 300) |
#7
|
||||
|
||||
Le quitaste la sentencia "leave to current transaction", yo siempre uso LEAVE TO SCREEN 0 para regresar a mi pantalla anterior, como ultima opcion podrias colocar dentro del MODULE de la pantalla 300.
* Pimer caso CASE sy-ucomm. when 'BACK' or 'EXIT'. LEAVE TO SCREEN 0. ENDCASE. * Si no funciona, forzar a regresar a la pantalla 200. CASE sy-ucomm. when 'BACK' or 'EXIT'. SET SCREEN 200. ENDCASE.
__________________
David Carballido Córdova |
Herramientas | Buscar en Tema |
Desplegado | |
|
|