PANTALLA DE SELECCIÓN
5.1. PARAMETERS:
- PARAMETERS parámetro [ (longitud) ] [ TYPE tipo | LIKE var ] [ DECIMALS num ][ DEFAULT valor ] [ MEMORY ID parám ] [ MODIF ID clave] [ FOR TABLE tabla][ NO-DISPLAY ] [ AS CHECKBOX ] [ LOWER CASE ] [ OBLIGATORY ][ RADIOBUTTON GROUP grupo ] [ MATCHCODE OBJECT objeto ][ AS MATCHCODE STRUCTURE ] [ VALUE REQUEST ] [ HELP-REQUEST ].
- Con esta sentencia se declara un parámetro en la pantalla de selección (es aquella, al principio de un programa, en la cual el usuario elige los criterios y condiciones con las que se va a ejecutar el programa). Un PARAMETERS permite que el usuario dé un valor único y concreto a un campo o variable del programa. Parámetros de esta sentencia:
- TYPE tipo | LIKE var: Definición del tipo del parámetro (deben tener un tipo, como las variables) de forma estática (TYPE, dando un tipo) o dinámica (LIKE, toma el tipo de “var”).
- DECIMALS num: Nº de decimales a mostrar (sólo para PARAMETERS de tipo numérico).
- DEFAULT se utiliza para asignar un valor por defecto al parámetro, antes del evento INITIALIZATION. Dicho valor aparecerá en pantalla. El usuario puede cambiarlo si quiere.
- MEMORY ID parám: Permite iniciar un parámetro con el contenido de una var. de memoria.
- MODIF ID clave: La clave (de 3 caracteres máximo) es un “grupo de modificación”. Esta opción asocia un PARAMETERS a un grupo de modificación que podrá ser utilizado por las sentencias de modificación de pantalla (como MODIFY SCREEN). Se da una clave a cada campo de la pantalla, y todos los campos que tengan igual clave (forman el grupo de modificación) se tratarán conjuntamente, usando el campo del sistema SCREEN-GROUP1 = clave. Esto es muy útil para module pool’s.
Ejemplo:
PARAMETERS: test1 (10) MODIF ID sc1, test2 (10) MODIF ID sc2. AT SELECTION-SCREEN OUTPUT. "Evento PBO (por el OUTPUT) * Bucle que recorre todos los campos de la pantalla LOOP AT SCREEN. IF SCREEN-GROUP1 = 'SC1'. SCREEN-INTENSIFIED = '1'. MODIFY SCREEN. ENDIF. ENDLOOP.
- NO-DISPLAY: Este PARAMETERSno será visible, pero existe. Puede dársele valor usando la opción DEFAULT, el evento INITIALIZATION, o al llamar al programa con SUBMIT (esta sentencia tiene opciones para dar valor a los parámetros del prog. llamado).
- AS CHECKBOX: Crea el parámetro con la apariencia y funcionalidad de un checkbox.
- LOWER-CASE: Permite distinguir en el parámetro caracteres en mayúscula y minúscula. Si no se especifica esta opción, al pulsar ENTER se pasa el valor introducido a todo mayúsculas.
- OBLIGATORY: Este campo o parámetro será obligatorio (debe dársele algún valor).
- RADIOBUTTON GROUPgrupo: Crea el parámetro como un botón de selección. Los botones van agrupados, de forma que en el mismo grupo de ellos sólo se puede seleccionar 1.
- MATCHCODE OBJECT objeto. Asigna un objeto de matchcode a un parámetro, para que aparezca un matchcode que, al desplegarlo, nos muestre valores posibles para el campo. (mediante tabla de valores asociada). Como valor para el campo, se puede incluir como comodín el asterisco. Con F4 el efecto es el mismo.
- SELECT-OPTIONS criterio FOR campo [ DEFAULT v1 [ TO v2 ] [ OPTION o SIGN s] ][ MEMORY ID parám ] [ MODIF ID clave] [ NO-DISPLAY ] [ LOWER CASE ][ OBLIGATORY ] [ NO-EXTENSION ] [ NO INTERVALS ] [ NO DATABASESELECTION ] [ MATCHCODE OBJECT objeto] [ VALUE REQUEST [ FOR LOW| HIGH ] ] [ HELP-REQUEST [ FOR LOW | HIGH ] ].
- Con esta sentencia se declara un criterio de selección en la pantalla de selección. El nombre de dicho criterio debe tener 8 caracteres como máximo. Un SELECT-OPTIONS permite que el usuario dé un rango de valores para un campo o variable, o bien varios intervalos, o bien uno o más valores individuales, todo ello entremezclado como se desee. En las condiciones (en IF, opciones WHERE, CHECK, …) que involucren SELECT-OPTIONS se usa el operador IN, ya que chequea si un valor dado está o no en el(los) rango(s) del criterio de selección. La sentencia CHECK SELECT-OPTIONS equivale a CHECK var IN rango (para el SELECT-OPTIONS correspondiente).
Parámetros de esta sentencia:
- DEFAULT v1 [ TO v2 ] [ OPTION o SIGN s ]: Para indicar valores por defecto. v1 es el valor LOW, v2 es el valor HIGH. Para valores de selección simples, las OPTIONs válidas son: EQ, NE, GE, GT, LE, LT, CP o NP (la opción por defecto es EQ). Para intervalos de selección, las OPTIONs válidas son BT (between) y NB (la opción por defecto es BT). Los valores válidos para SIGN son I (inclusive), E (exclusive). El valor por defecto es I.
- MEMORYID parámetro, MODIF ID clave, NO-DISPLAY, LOWER-CASE, OBLIGATORY y MATCHCODE OBJECT objeto: Igual que en PARAMETERS.
- NO-EXTENSION: Limita el criterio de selección a una única entrada en la tabla (o bien 1 valor individual, o 1 rango). Para ello elimina el icono que posibilita las entradas múltiples.
- NO INTERVALS: Limita el criterio de selección a valores simples, es decir, no admite rangos, aunque se pueden poner varios valores individuales.
- NO DATABASE SELECTION: El criterio de selec. no es utilizado en la base datos lógica.
- SELECTION-SCREEN [ POSITION pos ] [ FUNCTION KEY i] [ SKIP [ n ]][ BEGIN OF BLOCKbloque [WITH FRAME [ TITLEtítulo ] ] [NO INTERVALS ] ][ END OF BLOCKbloque] [ BEGIN OF LINE ] [ END OF LINE][ PUSHBUTTON [/] pos (long) nombre USER-COMMAND code [ MODIF ID clave ] ][ COMMENT [ / ] pos (long) nombre [ FOR FIELD f ] [ MODIF ID clave ]][ ULINE [ [ / ] pos (long) ] [ MODIF ID clave ] ].
- Esta sentencia se usa para cambiar la apariencia de la pantalla de selección. Permite colocar marcos, bloques, reorganizar los distintos elementos, ... No es el evento AT SELECTION-SCREEN. Sólo se puede usar uno de sus parámetros a la vez, es decir, que para cada nuevo cambio hay que escribir una sentencia SELECTION SCREEN nueva. Sólo se puede usar en reports (programas tipo 1).
Parámetros:
- POSITION pos: Sirve para colocar el cursor en una posición determinada. Sólo se puede usar anidado entre sentencias SELECTION-SCREEN BEGIN OF LINE y END OF LINE.
- FUNCTION KEY i se usa para crear iconos en el menú o barra de herramientas. Se pueden activar hasta 5 de ellos. Se decide cuál ha pulsado el usuario chequeando el campo del sistema SY-UCOMM en el evento AT SELECTION-SCREEN.
- SKIP [ n ]: Produce n líneas en blanco (una por defecto).
- BEGIN OF BLOCK bloque …: Sirve para crear bloques de elementos de pantalla (para agruparlos), los cuales se pueden anidar. La opción WITH FRAME se usa para crear un marco visible que englobael bloque. Con TITLE se añade un título identificativo en el marco creado. Con NO INTERVALSno se permite al usuario introducir intervalos en ningún campo de entrada del bloque (así no hace falta indicarlo por separado en cada uno de ellos). El bloque se cierra con END OF BLOCK, poniendo el mismo nombre para el bloque.
- BEGIN OF LINE y END OF LINE: Estas dos opciones engloban un bloque de sentencias declarativas (PARAMETERS, SELECT-OPTIONS y/o SELECTION-SCREEN) que aparecerán en la misma línea de la pantalla de selección, en lugar de en columna.
- PUSHBUTTON …: Sirve para crear iconos en la propia pantalla de selección. Con la opción USER-COMMAND se le asocia un código de función. Para asociar texto a un icono debe usarse una sentencia TABLES sscrfields. (tabla que contiene los campos de la pantalla). Para el botón llamado X...X poner: sscrfields-flnctxrt-0x....x.
- COMMENT …: Permite incluir comentarios en la pantalla de selección (textos, labels).
- ULINE …: Permite dibujar líneas horizontales (con subrayados). Se puede asociar la línea a un grupo de modificación (como el resto de elementos de la pantalla de selección.