✒️ABAP La pantalla de selección
ABAP La pantalla de selección
Pantalla de Selección
Parámetros de Selección.
DEF. 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 ella se pueden declarar dos tipos de objetos:
- PARAMETER: para que el usuario ingrese valores individuales.
- SELECT-OPTIONS: el usuario puede ingresar rangos de valores.
NOTA: PARAMETER (para un solo parámetro) o PARAMETERS: (para declarar varios parámetros pero también acepta un único parámetro)
NOTA: la longitud máxima de un parámetro es de 8 caracteres.
OBLIGATORY: el ingreso de ese parámetro es obligatorio para el usuario.
DEFAULT: asigna un valor por defecto al parámetro.
NOTA: Hay una ayuda búsqueda asociada al campo SY-DATUM.
Para cambiar las descripciones de los parámetros: MENU --> PASAR A --> ELEMENTOS DE TEXTO --> TEXTOS DE SELECCIÓN.
NOTA: El programa debe estar activado sino la columna texto aparecerá grisada.
- CHECKBOX: para que el usuario pueda tildar opciones.
- RADIOBUTTON: el usuario selecciona una de las opciones entre las existentes.
NOTA: Tabla útil: KNA1: tabla de datos estándar correspondiente al Maestro de Clientes.
- MARCO para encuadrar los parámetros, donde b1 es el nombre del marco y text-001 es el título que se visualizará en el extremo superior izquierdo del marco:
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
......
.....
SELECTION-SCREEN END OF BLOCK b1.
Clases de Mensajes.
AT SELECTION-SCREEN: en este evento se analiza el contenido de los parámetros, se validan los valores ingresados.
Clase de mensajes: se crea en la SE91. (se utiliza para la creación, modificación y visualización de las clases de mensajes, las cuales nos permiten agrupar los mensajes que utilizaremos en una aplicación).
NOTA: dentro de los mensajes que emitimos por pantalla podemos mostrar el contenido de variables, para ellos usamos el &. Agregamos 'WITH <nombre_variable>'. Cada & puede contener 50 caracteres y cada mensaje puede contener cuatro &, como máximo. Para usar & como texto y no como variable hay que escribirlo dos veces '&&'.
Tipos de Mensajes:
- S (Status): el programa continua sin interrupción. Aparece en la línea de status.
- I (Información): el programa continúa después de la interrupción. Aparece en una ventana de diálogo.
- W (Warning): depende del contexto del mensaje. Aparecen en la barra de status.
- E (Error): depende del contexto del mensaje (puede causar la cancelación de programa). Aparece en la barra de status.
- A (Terminación): el programa termina después de un cuadro de diálogo. Aparece en una ventana de diálogo.
- X (Dump): error en tiempo de ejecución tipo X. Aparece en un Dump.
****************************************************************************************************************
NOTA:
- Una clase de mensaje puede almacenar hasta 999 mensajes ya que utiliza tres dígitos para identificar cada mensaje Los mensajes de la clase de mensajes son textos que son almacenados en la clase. Luego el tipo del mensaje solo dependerá de la letra que anteceda a la clase y número en la sentencia MESSAGE osea si puedes combinar mensaje de cualquier tipo en una misma clase.
- En la clase de mensajes puedes definir un mensaje con: &&&&. Luego al llamar al mensaje desde un programa realizas lo siguiente:
MESSAGE E000(Z_CLASE) WITH 'Hola' 'Buen' 'Dia' 'Adios'.
Estas cuatro palabras corresponden a cada uno de los & del mensaje es decir en nuestro mensaje podemos incluir 4 textos de hasta 50 caracteres.
- El valor desde esta indicado por el campo LOW y el valor hasta esta indicado por el campo HIGH.
Si debagueando un programa que tiene declarado un select options en la pantalla de selección, realizas un doble clic encima del select options vas a ver que estos parametros tienen un formato deteminado cuyos campos son los siguientes: I, EQ, LOW, HIGH
WRITE:/ 'Código de vuelo desde: ', s_connid-low. WRITE:/ 'Código de vuelo hasta: ', s_connid-high.
Los select options son parametros que permiten ingresar rangos en pantalla.
Si debagueando un programa realizas doble clic encima del select options vas a ver que los select options tienen una estructura determinada de campos, es decir son tablas internas, concepto que veremos en detalle en la próxima unidad.
Su estructura de campos es :
SIGN (char de 1 posición)
OPTION (char de 2 posiciones)
LOW (valor individual del tipo de datos del select options)
HIGH (valor individual del tipo de datos del select options)
Ahora bien si en la pantalla de selección ingresamos un rango desde hasta para el select options S_CONNID, por ejemplo AAAA y BBBB entonces los campos contendrán:
SIGN = I
OPTION = BT (Significa between, que quiere decir "entre")
LOW = 'AAAA'
HIGH = 'BBBB'
La cuestión es asi: el evento AT SELECTION-SCREEN OUTPUT se ejecuta dentro de un programa antes que se muestre la pantalla de selección del mismo, por lo que es el momento que nos proporciona SAP para evaluar si queremos modificar alguna de las propiedades de los parámetros de selección de la pantalla.
En las pantallas de los programas existe una estructura estándar del sistema que almacena cada campo de la pantalla de selección y particularmente de ellos sus propiedades, una de las propiedades de los parámetros de la pantalla de selección es la "Visualización".
La lógica ABAP sería la siguiente:
LOOP AT SCREEN.
CASE screen-name.
WHEN 'CAMPO1'.
SCREEN-INVISIBLE = 1. "Campo Invisible"
SCREEN-INPUT = 1. "Permite entrada de datos"
ENDCASE.
ENDLOOP.
Si exactamente para transformar a la fecha en el formato DD.MM.AAAA tenemos que realizar varias operaciones. Te doy un ejemplo de ello:
Si declaramos la variable:
DATA: V_FECHA LIKE SY-DATUM.
Y asigamos el contenido de SY-DATUM a la variable:
V_FECHA = SY-DATUM.
-Para obtener el dia vamos a utilizar la variable V_FECHA, nos vamos a posicionar en la posicion 6 y a partir de alli vamos a tomar 2 caracteres. Esto se traduce a V_FECHA 6(2).
-Para obtener el mes vamos a utilizar la variable V_FECHA, nos vamos a posicionar en la posicion 4 y a partir de alli vamos a tomar 2 caracteres. Esto se traduce a V_FECHA 4(2).
-Para obtener el año vamos a utilizar la variable V_FECHA, nos vamos a posicionar en la posicion 0 y a partir de alli vamos a tomar 4 caracteres. Esto se traduce a V_FECHA 0(4).
DATA: V_FECHA_AUX(10) TYPE C.
CONCATENATE V_FECHA 6(2) V_FECHA 4(2) V_FECHA 0(4) INTO
V_FECHA_AUX SEPARATED BY '/'.
 
 
 
Sobre el autor
Publicación académica de Felipe Estepa Quintero, en su ámbito de estudios para la Carrera Consultor ABAP.
Felipe Estepa Quintero
Profesión: Tecnologo en Gestion Logistica - Colombia - Legajo: QH16V
✒️Autor de: 118 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Certificación Académica de Felipe Estepa