✒️ABAP El diseño de las pantallas
ABAP El diseño de las pantallas
1.- Creación de las dynpros o pantallas.
SE51: Transacción para poder acceder al Screen Painter mediante.
También podemos realizarlo mediante la transacción SE80, tal y como lo realizaremos generalmente.
- Presionamos click derecho sobre el programa que deseamos crear la dynpro, Después CREAR/DYNPRO.
- Ingresamos un número de dynpro que se identifica mediante un número único dentro de un programa ABAP que siempre sera de 4 digitos y presionamos continuar.
En la pestaña Atributos completaremos lo siguiente:
- Descripción breve: Ingresamos una descripción breve acorde al objetivo de la dynpro.
- Tipo de dynpro: Aquí declaramos el tipo de pantalla:
- Normal. Una dynpro de este tipo ocupará toda la pantalla.
- Subscreen: Es una pantalla que puede mostrarse en una área de cualquier pantalla dentro del Module Pool.
- Ventana de diálogo modal: Es una pantalla que solo ocupa una parte de una pantalla.
- Otros atributos
- Dynpro siguiente: Especificaremos el número de la próxima dynpro que se visualizará.
- Posición del cursor: Especificaremos el elemento de la pantalla en donde quedará posicionado el cursor cuando la dynpro se visualice.
- Grupo de dynpros: Número de 4 caracteres con el cual podemos asygnar muchas dynpros a un grupo de dynpros para poder modificarlas a todas de manera uniforme.
En la pestaña Lista de Elementos:
- Aquí visualizaremos la lista de elementos que componen a la dynpro. Por default veremos el correspondiente al tipo de la pantalla OK que existirá en cada dynpro que creemos.
- En este campo asignaremos un nombre de variable que, al momento de ejecutarse la dynpro, contendrá el código de función correspondiente al botón presionado o acción realizada en la pantalla. En cada una de las dynpros que creamos tendremos que asignar el OK_CODE.
- Existen otra pestañas como Textos y Máscaras de entrada/salida, Atributos especiales y otras más en donde podremos configurar ciertos aspectos de los elementos que componen a una dynpro.
En la pestaña Lógica Proceso
- Especificaremos la lógica de procesamiento de la dynpro. Al inicio cuando se crea la dynpro y no se tiene una lógica definida aparecen la declaración de los eventos PBO y PAI.
Al igual que los programas, las dynpros deben activarse para poder ejecutarse dentro de un programa de diálogo.
Para acceder al Screen Painter presionando el botón Layout o Disposición del menu. Para modificar o visualizar la dynpro utilizaremos el botón lápiz. En la barra del lado izquierdo vemos los iconos de los elementos que pueden formar parte de una dynpro. Los elementos son los siguientes:
- Campo de texto: Se usa para mostrar textos fijos o estáticos en pantalla.
- Nombre: Nombre del elemento
- Texto: Texto que se mostrará en el elemento.
- Nombre Icono: Aquí se puede agregar un icono al texto .
- Quick info: Es el texto que se visualizará si mantenemos el puntero del mouse encima del texto.
- Logitud de visualización: Podemos seleccionar la cantidad de caracteres que se visualizan del texto en pantalla.
Existen 3 pestañas del lado derecho en la parte inferior:
- Dict: Podremos especificar si el campo hace referencia a un campo declarado en el diccionario de datos marcando la opción Del Dict, en cuyo caso tomará todos los atributos de este. en caso contrario podemos especificar uan rutina de conversión, ayuda de búsqueda y demás
- Programa: Aquí especificamos si el campo es de entrada, salida o entrada/salida. En el caso de un texto esta opción está deshabilitada. También podemos configurar ciertos parámetros de la salida como la justificación y los ceros.
- Visualización: Aquí seleccionaremos atributos que tienen que ver con la visualización del elemento en la pantalla como son el brillo, si esta visible o no, etc.
- Campo de entrada/salida (Input/Ouput Field). Se utilizan para modificar o visualizar datos. Los atributos propios de estos elementos son: Dropdown: Aquí podemos configurar al campo como si fuera una lista desplegable de valores. Scrollable: Con esta opción configuramos la posibilidad de desplazarnos en la lista.
- En la pestaña Dict: Podemos determinar el formato del campo en la opción Formato.
- En la pestaña Programa Determinamos si el campo es de entrada, salida o entrada/salida.
Checkbox: Código de función: Atributo propio de este elemento, aquí podemos especificar un código de función para el checkbox. El SY-UCOMM adaptará este código cuando se ejecute la dynpro y se seleccione el checkbox.
Radio Button: Un atributo propio de este elemento es que podemos agrupar varios Radiobutton de modo que solo se pueda seleccionar uno dentro de un grupo de Radiobutton. Seleccionamos a todos y vamos a la opción del MENU/TRATAR/AGRUPACION/GRUPO DE BOTONES DE SELECCON/DEFINIR.
AudioTip:
- Diferencia RadioButton VS Checkbox: Los Radio Button's son pequeños botones redondos que permiten la entrada de dos valores sobre una variable, es decir marcado o NO marcado, en cambio los checkbox's son de apariencia cuadrada la diferencia con los radiobutton's derivada en su utilización en grupos, ya que se pueden seleccionar tantos checkboxs como se requieran dentro de un grupo, lo que NO sucede con los RadioButtons.
Pushbutton: El atributo más importante para este componente es el Código de función que será el valor que tome eñ SY.UCOMM cuando presionemos este botón.
Tabstrip Control y Tabstrip Control con asistente (with wizard): Es un control que tiene una colección de una o más pestañas o solapas. Cada pestaña o objeto Tab de un TabStrip es un objeto separado que los usuarios pueden seleccionar .
Atributos del Tabstrip.
- Box: Se utiliza para organizar los elementos de la dynpro. Texto se visualizará en la parte superior izquierda del Box. Si queremos colocar dentro del Box algún elemento de la pantalla solo tendremos que arrastrarlo y soltarlo dentro del Box.
- Subscreen area. Una subscreen es una área dentro de una dynpro donde vamos poder colocar otra dynpro. CALL SUBSCREEN SUBS1 (Nombre del Área del Subscreen)
Tabla de Control y Tabla de Control con asistente (with wizard): los Table Control son controles que permiten la visualización y modificación de los datos de una tabla. Este control es de suma importancia y presenta cierta dificultad en relación a los otros .
Custom Control: Es un contenedor de una dynpro en donde podemos mostrar otro elemento de la pantalla.
Icono de estado (Status Icon): Se utiliza para mostrar elementos indicando el Status Gui del programa.
Audio Tip: Al momento de crear campos tenemos 2 opciones, una es utilizar campos que estan guardados en el diccionario de datos ABAP y la otra posibilidad es declarar los campos que vamos a utilizar en el programa de dialogo.
- Declaración de campos: Para esta opción lo más conveniente será declarar dentro del Include donde colocamos las declaraciones de datos una estructura diferente para cada dynpro del programa. Ejemplo: Si tenemos 3 dynpros, la 0100,0200 y 0300 dentro de nuestro programa, entonces declararemos las estructuras: wa_screen_0100, wa_screen_0200 y wa_screen_0300 dichas estructuras contendrán los campos de cada pantalla, lo único que debemos de tener en cuenta es que los campos deben usar nombres idénticos en las pantallas y en el programa de diálogo
- La otra posibilidad es definir campos en las pantallas provenientes del diccionario de datos ABAP, de esta forma los nombres de la pantalla llevarán el nombre exacto del campo definido en el diccionario de datos, para configurar esta opción deberemos tildar en cada campo de la pantalla CAMPO / DICCIONARIO / PROGRAMA
Para crear una ayuda de búsqueda para el campo ESTADO_CIVIL tenes varias opciones.
Te comento la que me parece más simple:
1-Primero recuperas los valores del dominio del campo, para ello ejecutas la función GET_DOMAIN_VALUES de la siguiente forma:
DATA: tl_codigos_postales LIKE STANDARD TABLE OF dd07v WITH HEADER LINE.
CALL FUNCTION 'GET_DOMAIN_VALUES'
EXPORTING
domname = 'SZBMETH'
TABLES
values_tab = tl_codigos_postales
EXCEPTIONS
no_values_found = 1
OTHERS = 2.
2-
En PAI, al final de todo..........
PROCESS ON VALUE-REQUEST.
FIELD WA_SCREEN_0300-CODIGO_POSTAL MODULE help_codigo_postal.
En MODULE help_codigo_postal INPUT.
Ejecutas la función CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' para ejecutar la ayuda de búsqueda:
DATA: BEGIN OF ret_tab OCCURS 0.
INCLUDE STRUCTURE ddshretval.
DATA: END OF ret_tab.
CLEAR ret_tab.
REFRESH ret_tab.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'CODIGO_POSTAL'
window_title = 'Códigos Postales'
value_org = 'S'
TABLES
value_tab = ti_codigos_postales
return_tab = ret_tab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE ret_tab INDEX 1.
WA_SCREEN_0300-CODIGO_POSTAL = ret_tab-fieldval.
ENDIF.
Donde WA_SCREEN_0300-CODIGO_POSTAL es el nombre del campo "Código Postal" en la dynpro 0300.
Saludos Ezequiel
 
 
 
Agradecimiento:
Ha agradecido este aporte: Luis Martínez Mejía
Sobre el autor
Publicación académica de Gustavo Alberto Ramirez Franco, en su ámbito de estudios para la Carrera Consultor ABAP.
Gustavo Alberto Ramirez Franco
Profesión: Ingeniero en Sistemas Computacionales - Mexico - Legajo: TA38Q
✒️Autor de: 38 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Gustavo Ramirez