Professional Documents
Culture Documents
* Definicin de variables
DATA: g_it_sflight TYPE TABLE OF sflight,
g_st_sflight TYPE sflight.
* Pantalla de seleccin
PARAMETERS: p01 RADIOBUTTON GROUP rb1 USER-COMMAND uc DEFAULT 'X' .
AT SELECTION-SCREEN OUTPUT.
IF p01 = 'X'.
LOOP AT SCREEN.
IF screen-group1 = 'MD2'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF screen-group1 = 'MD1'.
screen-active = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
APPEND screen TO g_it_screen.
START-OF-SELECTION.
BREAK-POINT.
Que diferencias hay entre los eventos AT SELECTION SCREEN y AT SELECTION SCREEN
OUTPUT? En el primero, el evento se ejecuta cuando se ha dado al botn de ejecutar, mientras
que en el segundo se ejecuta cada vez que se ha hecho un cambio en la pantalla de seleccin.
Deshabilitar el INPUT a un campo de SELECTION-
OPTIONS
En algunos casos, se exige que unos determinados usuarios no puedan utilizar unos campos
especficos en la pantalla de seleccin. En este ejemplo se mostrar como deshabilitar el input de
un campo LOW y HIGH de un SELECTION-OPTIONS.
Para empezar, tendremos los cuatro primeros campos del SELECTION-OPTIONS de la tabla
SFLIGHT (carrid, connid, fldate y price).
A continuacin, se recorre un LOOP AT SCREEN y almacenamos los datos en una tabla auxiliar
para ver los datos iniciales:
LOOP AT SCREEN.
APPEND screen TO g_it_screen.
ENDLOOP.
Una vez conocido los datos de la tabla interna, cambiaremos las propiedades de los campos
INPUT en el primer SELECTION-OPTIONS con un IF.
El cdigo es el siguiente:
REPORT z_sflight.
* Definicin de variables
DATA: g_it_sflight TYPE TABLE OF sflight,
g_st_sflight TYPE sflight.
* Pantalla de seleccin
SELECTION-SCREEN: BEGIN OF BLOCK b01 WITH FRAME.
SELECTION-SCREEN SKIP 1.
INITIALIZATION.
* Deshabilitar un campo
LOOP AT SCREEN.
IF screen-name = 'P01-LOW'.
screen-input = 0.
ELSEIF screen-name = 'P01-HIGH'.
screen-input = 0.
ENDIF.
MODIFY SCREEN.
APPEND screen TO g_it_screen.
ENDLOOP.
START-OF-SELECTION.
BREAK-POINT.
Se observa que ahora los campos input del primer parmetro se han desactivado.