✒️ABAP La pantalla de selección
ABAP La pantalla de selección
Parámetros de selección
Debemos crear una pantalla de selección para introducir las delimitaciones a nuestro programa para que nuestro reporte solo se ejecute para ciertos datos que el usuario deberá introducir en la esa pantalla.
Pantalla de selección
Es un área dentro de los reportes en donde se especifican los parámetros de selección por los que se va a ejecutar el programa.
Se usa para restringir el procesamiento y la salida de los datos, se suele colocar después de la declaración de datos.
Dentro de una pantalla de selección se pueden crear dos tipos de objetos:
-PARAMETER: el usuario podrá ingresar valores individuales
-SELECT-OPTIONS: el usuario podrá ingresar rangos de valores.
En este ejemplo declaramos los parametros 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 queremos declarar en la pantalla de seleccion un solo parametro usaremos la palabra reservada PARAMETER.
Si queremos declarar mas de un parametro en la pantalla de seleccion usaremos la palabra reservada PARAMETERS seguido de dos puntos (:)
Tambien se puede usar PARAMETERS para declarar un solo parametro y el programa compilará igualmente, o tambien declarar varios parametros en la pantalla de seleccion y para cada uno de ellos escribir 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 parametro sea obligatorio.
El agregado de la cláusula DEFAULT asigna un valor por defecto al parametro.
En el ejemplo, al ejecutar el reporte aparece la pantalla de selección que creamos, y veremos que a la derecha de la fecha aparece el icono de ayuda de búsqueda (F4).
Si presionamos ese ícono o el F4 se abre una ventana con el calendario.
Para cambiar las descripciones de los parámetros que aparecen en pantalla vamos a ir a:
Menú: Pasar a-> Elementos de texto-> Textos de selección
Allí ingresamos las descripciones que mejor se adapten a nuestro propósito.
Para poder introducir los correspondientes textos de selección el programa en cuestión debe activarse previamente, de lo contrario la palabra texto correspondiente a la solapa textos de selección aparecerá grisada.
Parametros tipo CHECKBOX: para que el usuario pueda tildar las opciones que prefiera
Parametros tipo RADIOBUTTON: para que el usuario seleccione una de las opciones entre todas las existentes
Ejemplo:
PARAMETERS: p_list AS CHECKBOX. "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.
Ejemplo: declaramos el SELECT-OPTIONS S_CLAVEP.
DATA: v_clavep TYPE land1_gp.
SELECT-OPTIONS s_clavep FOR v_clavep. "Clave de país
En este ejemplo, si ejecutamos el reporte, a la derecha del campo Clave de país nos aparecerá el icono de ayuda de búsqueda que corresponde al tipo LAND1_GP, que es un tipo de la tabla KNA1.
Tabla KNA1
Es una tabla base de datos estándar que corresponde al maestro de clientes. De cada cliente se guarda en SAP información como el numero de cliente, país, nombre, código postal y muchos mas.
Podemos crear un "Marco" que encuadre a los parámetros de la pantalla de selección, para esto debemos colocar a la declaración de los parámetros denro 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 extremos superior izquierdo del marco.
Clases de Mensajes
Una vez que ingresamos todos los parametros de nuestro reporte y ejecutamos el programa, lo que vamos a querer es que dependiendo de los parametros introducidos se produzcan determinadas acciones.
AT-SELECTION-SCREEN: Usamos este evento para analizar el contenido de los parametros, en este evento se validan los valores ingresados en la pantalla de selección.
Si por ejemplo 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, vamos a tener que crear una clase de mensajes a traves de la transacción SE91. Le asignamos una descripcion y la grabamos, de ese modo creamos nuestro nuevo mensaje. Luego en nuestro programa escribiremos el código correspondiente en el evento AT-SELECTION-SCREEN para 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.
Transacción SE91
Esta transacción estándar se usa para la creación, modificación y visualización de las clases de mensajes en SAP, las cuales nos permiten agrupar los mensajes que usaremos en una aplicación.
Dentro de los mensajes que emitimos por pantalla podemos mostrar el contenido de variables, para ello utilizaremos el simbolo ampersand (&). Suponiendo que tomamos el mensaje 000 de la clase de mensajes Z_PRUEBA, el cual dice "La fecha debe ser igual a la fecha actual" y deseamos que al final del mensaje se muestre la fecha del día actual, entonces al final de dicho mensaje vamos a agregar un espacio y el símbolo ampersand. Luego tendremos que modificar la declaración el mensaje en el programa agregando a continuación de la clase de mensaje la cláusula BUID seguida de la variable del sistema sy-datum que contiene la fecha.
Debemos tener en cuenta que cada ampersand puede albergar hasta 50 caracteres y que como maximo los mensajes pueden contener hasta cuatro variables identificadas con ampersand.
Si en un mensaje se desea hacer salir el caracter ampersand como texto y no como variable debemos repetirlo, tipearlo 2 veces juntas.
Los tipos de mensajes existentes son:
Tipo Significado del mensaje Comportamiento El mensaje aparece en
S Status El programa continua sin interrupcion La linea de status
I Informacion El programa continua despues de la interrupcion Una ventana de dialogo
W Warning Depende del contexto del mensaje Barra de status
E Error Depende del contexto del mensaje (puede cancelar) Barra de status
A Terminacion El programa termina despues de un cuadro de dialogo Una ventana de dialogo
X Dump Error en tiempo de ejecución tipo X Un dump
 
 
 
Sobre el autor
Publicación académica de Diamela Serignese, en su ámbito de estudios para la Carrera Consultor ABAP.
Diamela Serignese
Profesión: Consultor Sap Crm / Solman - Argentina - Legajo: AA51D
✒️Autor de: 38 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
Certificación Académica de Diamela Serignese