✒️ABAP El diseño de las pantallas
ABAP El diseño de las pantallas
3.2. Screen Painter
Para crear una pantalla se deben seguir los siguientes pasos:
- Definir las características básicas de una pantalla (atributos de pantalla)
- Diseñar el formato de pantalla (en el editor fullscreen)
- Definir los atributos de campos (lista de campos)
- Escribir el flujo de pantalla (lógica de flujo)
Los componentes más importantes del programa ABAP/4 se encuentran en los siguientes objetos:
- Datos globales o estructuras de Diccionario en el programa "Top Include" (declaraciones de datos)
- Módulo PBO (Proceso antes de presentar pantalla)
- Módulo PAI (Proceso después de entrada de datos)
- Subrutinas (solo sí son requeridas).
2.1. Module Pool
El flujo lógico de pantalla está dividido en dos eventos para cada pantalla:
- El evento "Process Before Output" (PBO) es ejecutado antes de que la pantalla sea desplegada
- El evento Process After Input (PAI) es ejecutado después de que el usuario ha presionado la tecla Enter.
El sistema procesa los módulos de un evento en forma secuencial.
En cada módulo el control pasa del procesador de diálogo al procesador ABAP/4. Después del procesamiento el control es regresado al procesador de diálogo.
Cuando todos los módulos de PBO han sido procesados, el contenido de los campos del área de trabajo ABAP/4 es copiado a un campo con nombre idéntico en el área de trabajo de pantalla.
Antes de que el módulo PAI sea procesado, el contenido de los campos del área de trabajo de pantalla es copiado a los campos nombrados idénticamente en el área de trabajo de ABAP/4.
2.3. Definición de Pantallas
Así tras acceder al Screen Painter desde el ABAP/4 Workbench, tendremos que introducir el programa y el número de pantalla que deseamos mantener. Una vez hecho esto aparecerá el editor de pantallas ‘Fullscreen Editor’.
Si estamos creando el dynpro por primera vez, nos pedirá los atributos de pantalla.
Se introduce un texto corto que describa a la pantalla, se elige el tipo de pantalla y por último se especifica el número de la pantalla siguiente.
2.4. Diseño de Pantallas
Generalmente se definen los campos de una pantalla utilizando los atributos de campos que ya existen en el Diccionario de ABAP/4. Así mismo tambien puedes utilizar los atributos de campos que ya fuerón definidos en el module pool.
Existen dos modos de funcionamiento de editor de pantallas: el modo gráfico y el modo alfanumérico, dependiendo de la interfase gráfico sobre el que funcione SAP.
En este capítulo se describe el uso del Screen Painter en modo gráfico (versión 3.0), ya que se le considera como el más cómodo y avanzado, siendo además soportado por los interfaces gráficos mas extendidos (MS WINDOWS y X11/MOTIF UNIX). De cualquier modo la funcionalidad de ambos modos del editor es la misma.
Para activar o desactivar el modo gráfico de pantallas se deben seguir la siguiente ruta:
Settings -> Graphical Fullscreen
El Screen Painter gráfico contiene funciones fácil-de-usar para definir los elementos de las pantallas (por ejem. Campos de entrada/salida, textos de campo, cajas, etc.). Se elige cada elemento de pantalla y se posiciona en pantalla utilizando el mouse.
Para borrar elementos de pantalla, se selecciona el elemento con el mouse y entonces se elige el botón Delete.
Para mover elementos de pantalla, se usa el mouse arrastrando el elemento a la posición requerida.
En el editor de pantallas podemos observar tres áreas diferenciadas.
- La cabecera: con datos sobre la pantalla y el campo que se esta manteniendo en ese preciso instánte.
- La barra de objetos (columna izquierda): Lista de los objetos que se pueden crear en la pantalla: textos, entrada de datos, ‘checkboxes’, ‘frames’, ‘subscreens’…
- El área de dibujo: Es el área donde se dibuja la pantalla que estamos diseñando.
2.5. Creando objetos en la pantalla.
Para dibujar un objeto en la pantalla tendremos que colocarlo en el área de trabajo y posteriormente definir sus características (atributos). Para ello tendremos que pulsar el botón correspondiente en la barra de objetos y marcar el área donde vamos a situar el objeto. Si queremos cancelar la creación de un objeto pulsaremos el botón Reset de la misma barra de objetos.
Objetos disponibles:
- Textos: Textos,literales,…que son fijos en pantalla y no pueden ser manipulados por el usuario. Para considerar varias palabras como un mismo texto, tendremos que colocar un símbolo ‘_’ entre ellas, ya que de otro modo las considerará como objetos de texto completamente distintos.
- Objetos de entrada/salida (‘Templates’): Son campos para introducir o visualizar datos. Pueden hacerse opcionales u obligatorios. Los caracteres de entrada especifican con el símbolo ‘_’, pudiendo utilizar otros caracteres para dar formato a la salida. Por ejemplo una hora podemos definirla como: _:_:_.
- Radio-buttons: Son pequeños botones redondos que permiten una entrada de dos valores sobre una variable (marcado o no marcado). Los podemos agrupar, de forma que la selección de uno implique que no se pueda seleccionar ningún otro.
- Check-boxes: Es como un Radio-button pero de apariencia cuadrada en vez de redonda. La diferencia respecto a los Radio-buttons deriva en su utilización en grupos, ya que se pueden seleccionar tantos Checks-boxes como se quiera dentro de un grupo.
- Pushbuttons: Es un botón de tipo pulsador. Se le asocia a una función de forma que en el momento que se pulsa el Pushbutton se ejecute la función.
- Frames (Cajas): Son las cajas que agrupan grupos de objetos dentro de una pantalla como por ejemplo un conjunto de Radio-buttons.
- Subscreens: Son áreas de la pantalla sin ningún campo que se reservan para la salida de otras pantallas (Subscreens) en tiempo de ejecución. Para definir está área, nos colocaremos el punto de la pantalla donde queremos situar el ángulo superior izquierda de la subscreen, seleccionaremos Edit -> Subscreen, indicándole el nombre que le vamos a dar, y finalmente señalaremos con Doble-Click, el ángulo inferior derecho de la ventana. Posteriormente será en los módulos PBO y PAI cuando le indicaremos con la instrucción CALL SUBSCREEN, que pantalla aparecerá en el área de subscreen que hemos definido.
Una vez situados los objetos sobre el área de trabajo, podremos modificar su tamaño, moverlos o borrarlos.
Todos los textos, pushbuttons…pueden incorporar iconos en su salida por pantalla. Los iconos tienen una longitud de dos caracteres y están representados por símbolos estándares. El icono será un atributo más de los campos y por tanto se definiran junto al resto de atributos del objeto.
2.6. Lista de vistas de campos
Para el mantenimiento de los atributos de campos de pantalla existen seis diferentes tipos de listas. Alternativamente, se pueden definir los campos por medio de una de estas listas. Es posible también efectuar el mantenimiento de atributos de un campo en el editor de pantallas (editor fullscreen).
En el editor de pantallas, se usan tipos de datos externos. Los tipos de datos externos de los campos seleccionados en el Diccionario ABAP/4 son desplegados en la columna ´Format´. En el caso de campos (plantillas) que no tienen ninguna referencia al Diccionario ABAP/4, el usuario puede definir un tipo de dato externo.
Se puede encontrar una correspondencia de tipos de datos externos con tipos de datos internos (por ejem. Tipos de datos ABAP/4), al consultar la documentación referente a la palabra reservada "TABLES". Ejemplos, es esto son:
Tipo de datos en Diccionario ABAP/4 Tipo de datos en programas ABAP/4
CHAR C
NUMC N
2.7. Creando objetos desde el diccionario de datos.
En la pantalla que estamos diseñando, podemos utilizar campos que estan guardados en el Diccionario de Datos o declarados en el Module Pool. Para ello tendremos que seleccionar: Dict/Program fields.
Aparecerá una pantalla de selección de datos en la que indicaremos el campo o la tabla de la cual queremos obtener datos. Además se deberá seleccionar, si queremos ver la descripción de cada campo (indicando la longitud) y si queremos realizar una entrada de datos (‘templates’) de dicho campo por pantalla. Finalmente pulsaremos el botón correspondiente a crear desde el diccionario de datos o desde un programa.
Marcaremos el campo que queremos incorporar a nuestra pantalla y los copiaremos cobre el área de trabajo, situándolos en la posición que creamos más conveniente.
2.8. Definiendo los atributos individuales de cada campo.
Los atributos de los objetos definen las caracteristicas de estos.
- Podemos mantener los atributos desde el mantenimiento de atributos de campo o desde listas de campos.
- Podemos distinguir entre atributos generales, de diccionario, de programa y de visualización.
Atributos Generales.
- MatchCode : Permite especificar un MatchCode para la entrada de un campo.
- References : Especificamos la clave de la moneda en caso de que el campo sea de tipo cantidad (CURR o QUAN).
- Field Type : Tipo de Campo.
- Field Name : Nombre del Campo. Con este nombre se identificarán desde el programa.
- Field Text : Texto del Campo. Si queremos utilizar un icono en vez de texto dejaremos este valor en blanco.
- With Icon : Si queremos utilizar iconos en la entrada de datos (‘templates’).
- Icon name : Identifica el nombre de un icono para un campo de pantalla.
- Rolling (Scrolling): Convierte un campo en desplegable, cuando su longitud real es mayor que su longitud de visualización.
- Quick Info : Es el texto explicativo que aparece cuando pasamos por encima de un icono con el ratón.
- Line : Especifica la línea donde el elemento aparecerá. El sistema completa este valor automáticamente.
- Cl : Especifica la columna donde el elemento aparecerá. El sistema completa este valor automáticamente.
- Ht : Altura en lineas. El sistema completa este valor automáticamente.
- DLg : Longitud del campo.
- VLg : Longitud de visualización.
- FctCode : Codigo de función (código de 4 dígitos). Atributo sólo para pushbuttons.
- FctType : Especifica el tipo de evento en el cual el campo será tratado.
- Ltype : Tipo de Step Loop (fijo o variable). El tipo variable significa que el tamaño del step loop se ajusta según el tamaño de la pantalla, mientras que fijo no ajusta el step loop.
- Lcnt : Número de líneas de un step loop.
- Groups : Identifica grupos de modificación para poder modificar varios campos simultáneamente. Podemos asignar un campo a varios (4) grupos de modificación.
Atributos de Diccionario:
- Format : Identifica el tipo del campo. Determina el chequeo que realiza el sistema en la entrada de los datos.
- Frm DICT. : El sistema rellena este atributo en el caso de que el campo lo hayamos creado a partir de un campo del diccionario de datos.
- Modific. : El sistema rellena este campo si detecta alguna diferencia entre la definición del campo en el diccionario de datos y su utilización en pantalla.
- Conv. Exit : Si queremos utilizar una rutina de conversión de datos no estándar, especificamos aquí el código de esta.
- Param. ID : Código del parámetro SET / GET. (ver siguiente atributo).
- SET Param GET Param: Los parámetros SPA (Set Parameter) y GPA (Get Parameter), nos permiten visualizar valores por defecto en campos. Si marcamos el atributo SET param, el sistema guardará en un parámetro ID lo que entremos entremos en este campo. Si marcamos el atributo GET param, el sistema inicializa el campo, con el valor del parámetro ID que tenga asignado en el atributo anterior.
- Up../Lower : El sistema no convierte la entrada a mayúsculas.
- W/o template : Marcamos este atributosi queremos que los caracteres especilaes se traten como textos literales.
- Foreign Key : Si queremos que sobre el campo el sistema realicen chequeo de llave externa. (hayque definir previamente las claves externas en el diccionario de datos).
Atributos de Programa:
- Input field : Campo de entrada.
- Output field : Permite visualización. Se puede utilizar nen combinación con el anterior.
- Output only : Sólo Visualización
- Required field: Atributo para campos obligatorios. Se distinguen con un ¿.
- Poss. Entry : El sistema marca este atributo si hay un conjunto de valores para el campo. No es posible modificar el contenido del atributo.
- Poss. Entries : Indica como podemos ver la flecha de entradas posibles en un campo.
- Right-Justif : Justifica cualquier salida del campo a la derecha.
- Leading Zero : Rellena con ceros por la izquierda en el caso de salidas numéricas.
- *-Entry : Permite la entrada de un asterisco en la primera posición de un campo. Si se introduce un *se podrá hacer un tratamiento en un módulo: FIELD MODULE ON *-INPUT.
- No Reset : Cuando activamos este atributo, la entrada de datos no podrá ser cancelada mediante el carácter !.
Atributos de Visualización:
- Fixed Font :Visualiza un campo de salida en un tamaño fijo (no proporcioal). Sólo se puede utilizar en campos Output only.
- Bright : Visualiza un campo en color intenso.
- Invisible : Oculta un campo.
- 2-Dimens : Visualiza un campo en dos dimensiónes en vez de en tres.
 
 
 
Sobre el autor
Publicación académica de Carlos Piles Rosell, en su ámbito de estudios para la Carrera Consultor ABAP.
Carlos Piles Rosell
Profesión: Analista de Sistemas y Programador - España - Legajo: GZ57B
✒️Autor de: 24 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: PartTime
Certificación Académica de Carlos Piles