#1
|
|||
|
|||
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.... 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 Úlima edición por gambitworms fecha: 04/11/08 a las 10:55:32. |
#2
|
|||
|
|||
En una de esas esto te ayuda..
|
#3
|
|||
|
|||
Muchas gracias por la ayuda. Lo he repasado por activa y por pasiva pero no logro verlo!!. Alguna idea más?? Gracias
|
#4
|
||||
|
||||
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 ...
__________________
David Carballido Córdova |
#5
|
|||
|
|||
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. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|