![](/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/77.jpg)
PANTALLA DE SELECCIÓN
PARAMETROS DE SELECCIÓN
Si queremos introducir algunas delimitaciones a nuestro programa de modo que nuestro reporte solo 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 datos. Por lo general se coloca después de la declaración de datos.
Dentro de una pantalla de selección se pueden declaran 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.
*--------------------------------------------------------------------------------------------*
* Pantalla de selección
*--------------------------------------------------------------------------------------------*
PARAMETERS: p_fecha LIKE sy-datum OBLIGATORY DEFAUL sy-datum,
P_nombre(10) TYPE c OBLIGATORY.
La longitud máxima que puede tener el nombre de un parametro 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.
Nota: para cambiar la descripción de los parámetros que aparecen en pantalla, debemos hacer click en pasar a – elementos de texto – textos de selección. Allí ingresamos la descripción que mejor se adapte a nuestro propósito. Ejemplo:
P_FECHA = FECHA DE PAGO
P_NOMBRE = NOMBRE
También se pueden crear parámetros tipos 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:
PARAMETERS: p_list as chechbox. “emitir listado
PARAMETER: p_arg RADIOBUTTON GROUP bot2, “argentino
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
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, aparte de valores individuales. En el siguiente ejemplo, declaramos el SELECT-OPTION S_CLAVEP.
DATA: v_clavep TYPE land1_gr.
SELECT-OPTIONS s_clavep FOR v_clavep. “Clave de país
Si ejecutamos el reporte, a la derecha del campo Clave país nos aparecerá un 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 la siguiente sentencia: SELECTION-SCREEN END OF BLOCK b1.
CLASE DE MENSAJES
Unas vez que ingresemos todos los parámetros de nuestros 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 mensaje a través de la transacción SE91 tal como vemos a continuación:
Clase de mensaje = z_prueba
Mensaje numero = 000
Hacemos clic en el botón crear.
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 un aplicación.
Le asignamos una descripción y la grabamos
Luego en nuestro programa, escribimos el código correspondiente en el evento AY SELECTION-SCREEN para hacer cumplir con esta validación.
*---------------------------------------------------------------------------------------------------------*
AT SELECTION-SCREEN.
*---------------------------------------------------------------------------------------------------------*
IF p_fecha < sy-datum.
MESSAGE e000(z_prueba). “la fecha debe ser mayor o igual a la fecha actual
ENDIF.
Por ultimo ejecutamos nuestro reporte con la fecha de la pantalla de selección anterior a la fecha actual y veremos el siguiente mensaje en el extremo izquierdo de la pantalla.
La fecha debe ser mayor o igual a la fecha actual
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 clase de mensaje entre paréntesis.
Los tipos de mensajes que existen son:
Tipo - significado del mensaje – comportamiento - el mensaje aparece en
S – status - el programa continúa sin interrupción - la línea del estatus
I – información – el programa continua después de la interrupción – una ventana de dialogo
W – warning – después 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 dialogo
 
 
 
Sobre el autor
Publicación académica de Jean Carlos Lopez Uzcategui, en su ámbito de estudios para la Carrera Consultor ABAP.
Jean Carlos Lopez Uzcategui
Profesión: Sistemas - Venezuela - Legajo: HS82J
✒️Autor de: 53 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime