✒️ABAP La pantalla de selección
ABAP La 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 deberemos 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 valores. En el siguiente ejemplo declaramos los parámetros P_FECHA y P_NOMBRE.
PARAMETERS: p_fecha LIKE sy-datum OBLIGATORY DEFAULT sy-datum,
p_nombre TYPE c OBLIGATORY.
Declaración de parámetros en la pantalla de selección
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 DEFAULT asigna un valor por defecto al parámetro. Si ejecutamos nuestro reporte veremos lo siguiente:
- Las cláusulas OBLIGATORY y DEFAULT
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 .
Si presionamos sobre el ícono o presionamos F4 dentro del campo fecha, se abrirá la siguiente ventana:
Ayuda de búsqueda del calendario para campos de fecha
Aquí estamos viendo la ayuda de búsqueda asociada al campo SY-DATUM el cual es el tipo de nuestro parámetro. El tema de las ayudas de búsqueda lo veremos en detalle en la próxima unidad.
Ahora vamos a cambiar las descripciones de los parámetros que aparecen en pantalla. Para esto vamos a ir a:
PARAMETERS: p_list AS CHECKBOX. "Emitir listado
PARAMETER: p_arg RADIOBUTTON GROUP bot2, "Argetino
p_col RADIOBUTTON GROUP bot2, "Colombiano
p_mex RADIOBUTTON GROUP bot2, "Mejicano
p_esp RADIOBUTTON GROUP bot2, "Español
p_otr RADIOBUTTON GROUP bot2. "Otra Nacionalidad
I Opción del menú para modificar los textos de selección
ingresamos las descripciones que mejor se adapten a nuestro propósito.
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 puede 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.
*crea variable con base a objeto con listado de paises
DATA: v_clavep TYPE land1_gp.
*define seleccion con base a objeto de listado de paises
SELECT-OPTIONS s_clavep FOR v_clavep. "Clave de pais
Imagen 1.8 - Declaración de select-options
De nuevo, si ejecutamos el reporte, a la derecha del campo Clave de país nos aparece el icono , si lo presionamos vemos la ayuda de búsqueda correspondiente al tipo LAND1_GP que es un tipo de la tabla KNA1.
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 datos más.
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 de nuestro reporte y ejecutamos el programa, lo que vamos a querer 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:
- Creación de clases de mensajes a través de la transacción SE91
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.
- Asignamos un texto breve a la clase de mensajes.
Y creamos nuestro primer mensaje.
- Creamos nuestro primer mensaje
Luego en nuestro programa, escribiremos el código correspondiente en el evento AT SELECTION-SCREEN para hacer cumplir con esta validación.
- Escribimos el mensaje en el evento AT SELECTION-SCREEN
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.
- Visualizamos el mensaje en pantalla
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:
Tipo Significado del mensaje Comportamiento El mensaje aparece en
S Status El programa continua sin interrupción La línea de status
I Información El programa continua después de la interrupción Una ventana de diálogo
W Warning Depende del contexto del mensaje Barra de status
E Error Depende del contexto del mensaje (puede causar la cancelación del programa) Barra de status
A Terminación El programa termina después de un cuadro de dialogo Una ventana de diálogo
X Dump Error en tiempo de ejecución tipo X Un dump
Tabla 2.1 - Tipos de mensaje
 
 
 
Sobre el autor
Publicación académica de Alex Francisco Lemos Collazos, en su ámbito de estudios para la Carrera Consultor ABAP.
Alex Francisco Lemos Collazos
Profesión: Ingeniero en Sistemas - Colombia - Legajo: QS36A
✒️Autor de: 174 Publicaciones Académicas
🎓Cursando Actualmente: Master S/4HANA Material Management
🎓Egresado de los módulos:
- Máster Material Management en SAP S/4HANA LOGISTIC
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
- Carrera Consultor en SAP SD Nivel Inicial