![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP La pantalla de selección
ABAP La pantalla de selección
![ABAP La pantalla de selección ABAP La pantalla de selección](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/497.jpg)
PANTALLA DE SELECCIÓN
Parámetros de selección
Si queremos introducir algunas delimitaciones a nuestro programa de modo que nuestro reporte solo se ejecute para ciertos datos que el usuario deberá introducir en la pantalla entonces debemos crear una pantalla de selección.
PANTALLA DE SELECCIÓN
Es un área dentro de los reportes en donde se especifican los parámetros de selección por los cuales se va a ejecutar el programa. Se utiliza para restringir el procesamiento y la salida de los datos. Por lo general se coloca después de la declaración de datos.
Dentro de una pantalla de selección se pueden declarar dos tipos de objetos: PARAMETER en los cuales el usuario podrá ingresar valores individuales y SELECT-OPTIONS en donde el usuario podrá ingresar rangos de los valores. En el siguiente ejemplo declaramos los parámetros P_FECHA y P_NOMBRE.
*---------------------------------------------------------------------*
Pantalla de selección
*---------------------------------------------------------------------*
PARAMETERS: p_fecha LIKE sy-datum OBLIGATORY DEFAULT sy-datum,
p_nombre(10) TYPE c OBLIGATORY.
Si deseamos declarar en la pantalla de selección 1 solo parámetro entonces utilizaremos la palabra reservada PARAMETER. Si deseamos declarar en la pantalla de selección más de un parámetro, entonces utilizaremos la palabra reservada PARAMETERS seguido de :. Tengamos en cuenta que podemos utilizar también PARAMETERS y declarar un solo parámetro, el programa compilará igualmente o también declarar varios parámetros en la pantalla de selección y para cada uno de ellos describir a la izquierda la palabra reservada PARAMETER.
La longitud máxima que puede tener el nombre de un parámetro es de 8 posiciones.
El agregado de la cláusula OBLIGATORY hace que el parámetro sea obligatorio. El agregado de la cláusula DEFAUL asigna un valor por defecto al parámetro. Si ejecutamos nuestro reporte veremos lo siguiente:
Lo que vemos es que al ejecutar nuestro reporte nos aparece la pantalla de selección que acabamos de crear. Vemos que a la derecha de la fecha nos aparece el icono (pedir dato). Si presionamos sobre el ícono o presionamos F4 dentro del campo fecha, se abrirá la siguiente ventana:
Aquí estamos viendo la ayuda de búsqueda asociada al campo SY-DATUM el cual es el tipo de nuestro parámetro. Ahora vamos a cambiar las descripciones de los parámetros que aparecen en pantalla. Para esto vamos a ir a:
E ingresamos las descripciones que mejor se adapten a nuestro propósito.
Es importante tener en cuenta que para poder introducir los correspondientes textos de selección el programa en cuestión debe activarse previamente de lo contrario la columna texto correspondiente a la solapa textos de selección aparecerá grisada.
También se pueden crear parámetros tipo Checkbox en donde el usuario puede tildar las opciones que prefiera o tipo Radiobutton donde el usuario selecciona una de las opciones entre todas las existentes. Veamos un ejemplo de estos dos tipos de parámetros:
Los cuales se visualizarán de la siguiente manera en pantalla:
Los SELECT-OPTIONS son iguales a los PARAMETER salvo que en ellos se pueden ingresar rangos de valores, es decir, un valor desde y un valor hasta, a parte de valores individuales.
En el siguiente ejemplo, declaramos el SELECT-OPTIONS S_CLAVEP.
DATA: v_clavep TYPE land1_gp.
SELECT-OPTIONS s_clavep FOR v_clavep. "Clave de País
De nuevo, si ejecutamos el reporte, a la derecha del campo Clave de país nos aparece el ícono (pedir dato), si lo presionamos vemos la ayuda de búsqueda correspondiente al tipo LAND1_GP que es un tipo de tabla KNA1.
TABLAS ÚTILES:
Tabla KNA1
La tabla base de datos estándar KNA1 corresponde al Maestro de Clientes. De cada Cliente se guarda en SAP información tal como el número de cliente, el país, el nombre, el código postal y muchos otros más.
SOLO PARA GENIOS: Podemos crear un "Marco" que encuadre a los parámetros de la pantalla de selección. Para ello, debemos colocar a la declaración de los parámetros dentro de las siguientes sentencias:
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
....
..
SELECTION-SCREEN END OF BLOCK b1.
Donde b1 es el nombre del marco y text-001 es el título que se visualizará en el extremo superior izquierdo del marco.
Clases de Mensajes
Una vez que ingresamos todos los parámetros en nuestro reporte y ejecutamos el programa, lo que vamos a quere es que dependiendo de los parámetros introducidos se produzcan determinadas acciones. Para analizar el contenido de los parámetros existe el evento AT SELECTION-SCREEN. En este evento es donde se validan los valores ingresados en la pantalla de selección. Supongamos que queremos que la fecha ingresada por pantalla sea mayor o igual a la fecha actual y que si no es así se emita un mensaje en la pantalla advirtiendo que el valor introducido es incorrecto. Para esto, vamos a tener que crear una Clase de Mensajes a través de la transacción SE91 tal como vemos a continuación:
TRANSACCIONES:
Transacción SE91
La Transacción estándar SE91 se utiliza para la creación, modificación y visualización de las clases de mensajes en SAP, las cuales nos permiten agrupar los mensajes que utilizaremos en una aplicación.
Le asignamos una descripción y grabamos. Y creamos nuestro primer mensaje.
Luego en nuestro programa, escribiremos el código correspondiente en el evento AT SELECTION-SCREEN para cumplir con esta validación.
Por último, ejecutamos nuestro reporte con una fecha de la pantalla de selección anterior a la fecha actual y vemos el siguiente mensaje en el extremo inferior izquierdo de la pantalla.
La fecha debe ser mayor o igual a la fecha actual.
Dentro de los mensajes que emitimos por pantalla podemos mostrar el contenido de variables para ello utilizaremos el símbolo ampersan (&). Supongamos que tomamos el mensaje 000 de la clase de mensaje Z_PRUEBA que utilizamos anteriormente el cual dice "La fecha debe ser mayor o igual a la fecha actual", y deseamos que al final del mensaje se visualice la fecha actual, entonces al final de dicho mensaje vamos a agregar un espacio y el símbolo &. Luego tendremos que modificar la declaración del mensaje en el programa agregando a continuación de la clase de mensaje la cáusula BUILD SY-DATUM que contiene la fecha. Es importante tener en cuenta que cada & puede albergar hasta 50 caracteres y que como máximo los mensajes pueden contener hasta 4 variables identificadas con &. Si en un mensaje se desea hacer salir el caracter & como texto y no se lo desea utilizar como variable debemos repetirlo es decir escribirlo 2 veces juntas.
El mensaje que mostramos es un mensaje de error. Esto está determinado por la letra e que se antecede al número del mensaje y la clase de mensajes entre paréntesis. Los tipos de mensajes existentes son.
SELECTION-SCREEN BEGIN OF BLOCKS Se utilizan para crear marcos o frames en la pantalla de selección. Los marcos o frames se utilizan para diferenciar información que se presenta en la pantalla de selección agrupandolos. Para cada marco podemos asignar un título que estará almacenado en el texto de selección text-001. En este caso el texto del marco es Datos de usuario.
SELECTION-SCREEN BEGIN OF LINE Se utiliza cuando deseamos colocar un texto de selección largo. El texto de selección es el que se muestra a la izquierda de un parámetro.
Dentro de la sentencia SELECTION-SCREEN BEGIN OF LINE se debe escribir la sentencia SELECTION-SCREEN COMMENT en donde se especifíca una posición desde (en este caso 1) y un desplazamiento en este caso 66 que tendrá el texto del parámetro, el cual en este caso se encuentra almacenado en text-002.
AT SELECTION-SCREEN OUTPUT, Se utiliza para determinar en forma dinámica si mostramos o no mostramos un parámetro en la pantalla de selección o también para cambiar alguna de las propiedades de los parámetros de la pantalla de selección.
LOOP AT SCREEN: SCREEN es una palabra reservada del sistema que es una tabla con un formato determinado que en tiempo de ejecución contiene todos los campos y configuraciones de la pantalla. No es necesario declararla.
DISPLAY LIKE para hacerle ver al usuario que hubo un error y no queremos que se salga del programa. Se muestra un mensaje de exito pero que avisa al usuario que hay un error.
WITH.
 
 
 
Sobre el autor
Publicación académica de Vismark Eyner Sevillano Moreno, en su ámbito de estudios para la Carrera Consultor ABAP.
Vismark Eyner Sevillano Moreno
Profesión: Tecnologo en Sistemas - Colombia - Legajo: KN43C
✒️Autor de: 62 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Aprender todo lo relacionado con programación sap abap, para desenvolverme en el área laboral en el sector de programación abap.
Certificación Académica de Vismark Sevillano