MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 16/04/08, 15:15:33
elinarestek elinarestek is offline
Junior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 8
Problema de navegacion entre Dynpros

Tengo serios problemas en la navegación entre pantallas de un programa que abre una pantala de seleccion, de ahí despliega un ALV y a partir de ahi se selecciona un articulo y se despliega su detalle en una pantalla nueva.

En si la problematica esta así, el usuario quiere que al regresar con la tecla Back (flecha verde), se vea el ALV, si se vuelve a presionar la misma tecla entonces lo que debe desplegar es la pantalla de selcción pero se deben conservar los criterios de busqueda introducidos con anterioridad.

He logrado regresar a esta pantalla utilizando las instrucciones CALL SCREEN y CALL TRANSACTION, pero en estos casos aunque aparece la pantalla de selección inicial esta en blanco, no conserva los criterios de busqueda.

La otra forma que he intentado es mediante la instrucción leave to screen 0. Pero en este caso en lugar de mandarme a la pantalla de selección lo que hace es regresarme al detalle del artículo.

Una prueba más la hice utilizando la instrucción CALL SELECTION-SCREEN 1000, en este caso me regresa a la pantalla de selección y conserva sus valores, pero al volver a presionar a tecla 'F8', en lugar de iniciar correctamente y abrir el ALV, me manda hasta la pantalla de detalle del artículo que consulté.

Ya no se que más hacer pido ayuda a los expertos, cualquier sugerencia sera bien recibida.

Gracias
Responder Con Cita
  #2  
Viejo 16/04/08, 15:33:03
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
El problema puede que este al realizar el CALL TRANSACTION para regresar a tu pantalla anterior, es como si la volvieras a llamar desde cero, como estas trabajando tu ALV???, con objetos o con el REUSE_ALV_...??? si trabajas con objetos quiere decir q es un container, ahi seria darle la funcion al BACK

LEAVE TO SCREEN 0.

Si usas la funcion REUSE_ALV_... el boton BACK es estandar y no hay necesidad de programar nada
__________________
David Carballido Córdova
Responder Con Cita
  #3  
Viejo 16/04/08, 15:35:08
abapconsultoria abapconsultoria is offline
Senior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 101
disculpa el circuito es :

Parametros de selección -> ALV -> dympro???


Saludos.

Javier.
__________________




Lo importante no es saber sino saber quien es el que sabe
Responder Con Cita
  #4  
Viejo 16/04/08, 15:38:47
abapconsultoria abapconsultoria is offline
Senior Member
 
Fecha de Ingreso: ene 2008
Mensajes: 101
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
Responder Con Cita
  #5  
Viejo 16/04/08, 16:08:55
elinarestek elinarestek is offline
Junior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 8
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.
Responder Con Cita
  #6  
Viejo 16/04/08, 16:22:37
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
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
Responder Con Cita
  #7  
Viejo 16/04/08, 19:44:30
elinarestek elinarestek is offline
Junior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 8
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.
Responder Con Cita
  #8  
Viejo 16/04/08, 19:48:30
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
Hola, en vez del CALL SCREEN 300. prueba con SET SCREEN 300, me comentas tus resultados
__________________
David Carballido Córdova
Responder Con Cita
  #9  
Viejo 16/04/08, 20:13:00
elinarestek elinarestek is offline
Junior Member
 
Fecha de Ingreso: oct 2007
Mensajes: 8
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)
Responder Con Cita
  #10  
Viejo 16/04/08, 20:20:13
Avatar de DavidXD_XD
DavidXD_XD DavidXD_XD is offline
Moderator
 
Fecha de Ingreso: ago 2006
Localización: Lima - Perú
Mensajes: 1,251
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
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 16:40:48.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web