MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Problema At-selection screen (foro/showthread.php?t=25803)

gambitworms 04/11/08 10:22:45

Problema At-selection screen
 
Hola a todos:

El problema es el siguiente: Cuando ingreso un parámetro quiero que me cargue en otro parámetro de la pantalla un dato relacionado con el parámetro que ingrese primero (no se si me explico). Total que la primera vez que lo hago lo hace correctamente...pero la segunda....:confused: Mantiene el parámetro que cargo primero. Adjunto código a ver si me podeis echar una mano gracias!!!

AT SELECTION-SCREEN ON P_TPLNR.
IF P_TPLNR IS INITIAL.
MESSAGE E000 WITH TEXT-010.
ELSE.
SELECT SINGLE EQART LGWID INTO (IFLOT-EQART,IFLOT-LGWID)
FROM IFLOT
WHERE TPLNR = P_TPLNR.
IF SY-SUBRC NE 0.
MESSAGE E000 WITH TEXT-002.
ELSE.
SELECT SINGLE ARBPL INTO P_ARBPL
FROM CRHD
WHERE OBJID = IFLOT-LGWID.
IF SY-SUBRC NE 0.
P_ARBPL = ''.
ENDIF.
ENDIF.
ENDIF.

debugeo y de aquí sale el parámetro con el valor que tiene que tener pero en cuanto pasa por aqui vuelve a poner el que hay en pantalla.

AT SELECTION-SCREEN ON P_ARBPL.
IF P_ARBPL IS INITIAL.
MESSAGE E000 WITH TEXT-010.
ELSE.
SELECT SINGLE ARBPL INTO P_ARBPL
FROM CRHD
WHERE ARBPL = P_ARBPL.
IF SY-SUBRC NE 0.
MESSAGE E000 WITH TEXT-009.
ENDIF.
ENDIF.


Espero haberme explicado con claridad.
Gracias de antemano ;)

Promethevs 04/11/08 12:34:18

En una de esas esto te ayuda..


gambitworms 05/11/08 06:38:27

Muchas gracias por la ayuda. Lo he repasado por activa y por pasiva pero no logro verlo!!. Alguna idea más?? Gracias

DavidXD_XD 05/11/08 14:47:03

Hola, deberias colocar un flag, ya que cuando colocas el AT SELECTION-SCREEN va a pasar por todos esos tipos de eventos, o lo que podrias hacer es invertir el orden de los AT SELECTION-SCREEN, primero coloca el de abajo arriba y viceversa, aver como sale ...

ernestocuba2009 18/02/09 14:34:55

Creo que esto te puede funcionar
 
Hola, Gambitworms:

Te respondo a propòsito del problema que tienes con la actualizaciòn del contenido de un paràmetro en base al valor que toma el primero.
Pues bien... yo estaba creando un programa que gestiona algo màs o menos parecido, y la soluciòn que encontrè fue un rejuego con las diversas opciones del evento AT SELECTION-SCREEN.

Te lo explico con una ejemplo sencillo...
Imagina que tienes una pantalla de selecciòn con dos paràmetros, y de acuerdo al valor que toma el primero, le asignas el mismo valor al segundo paràmetro.
Todo se resuelve con los eventos:

AT SELECTION-SCREEN ON

y

AT SELECTION-SCREEN OUTPUT


---------------------------------

SELECTION-SCREEN BEGIN OF BLOCK TT WITH FRAM TITLE TEXT-002.
PARAMETERS : P1(10) TYPE C,
P2(10) TYPE C.
SELECTION-SCREEN END OF BLOCK TT.

AT SELECTION-SCREEN ON P1.

*Este evento es para gestionar la primera toma de valor del segundo paràmetro
P2 = P1.

AT SELECTION-SCREEN OUTPUT.

*Este evento, en cambio, te permite actualizar el contenido del segundo paràmetro
*cada vez que el primer paràmetro cambia de valor

CLEAR P2.
P2 = P1.

END-OF-SELECTION.


Espero te sirva de ayuda para el problema que tenias.

Mucha suerte y èxitos.


Husos Horarios son GMT. La hora en este momento es 14:15:49.

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