SAP ABAP: Añadir botón en pantalla de selección.

En el tutorial de hoy, vamos a mostrar cómo añadir un botón en la pantalla de selección de un report ABAP.

Aquí tenéis un tutorial de cómo crear un report y algo de información acerca de las pantallas de selección.

Para insertar el botón en nuestra pantalla de selección, deberemos realizar los siguientes pasos:

  1. En el TOP ( o donde incluyamos la lógica de la pantalla de selección) deberemos incluir el siguiente código.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN PUSHBUTTON (20) p_boton USER-COMMAND plantilla.
SELECTION-SCREEN END OF LINE.

2. En el evento INITIALIZATION, incluiremos el siguiente código para dar nombre al botón anteriormente insertado.

INITIALIZATION.
  p_boton = text-002.

3. Además, deberemos incluir lógica en el USER-COMMAND para dotar de funcionalidad a nuestro botón.

El resultado sería el siguiente:

PD: Aquí os dejo algo más de información acerca de SELECTION-SCREEN:

  • 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 (PARAMETERSSELECT-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.

Podéis echar un vistazo a otros tutoriales sobre pantallas de selección ya incluidos en nuestra web:

SAP ABAP: Diálogo selección de fichero en SELECTION-SCREEN (Función F4_FILENAME)

SAP ABAP: Inclusión de iconos en Selection-Screen