2.2 - Diseño de las pantallas
2.2.1. - Creación de las dynpros o pantallas
Para crear una dynpro se puede utilizar el Screen Painter, mediante la transacción SE51 o directamente acceder a través de la transacción SE80. Sobre el programa “ZPRUEBA_DIALOGO”, se pulsa el botón derecho y se selecciona la opción “Crear%uF0E0Dynpro/Create%uF0E0Screen”.
Una dynpro se identifica mediante un número único dentro de un programa ABAP el cual está formado por cuatro dígitos. Posteriormente, hay que configurar las opciones de la dynpro.
En la pestaña “Atributos/Attributes”, habrá que configurar:
1. Descripción breve/Short description
a. Se asigna una breve descripción acorde al objetivo de la dynpro
2. Tipo de dynpro/Screen type
a. Se declara el tipo de pantalla
i. Normal, ocupará toda la pantalla.
ii. Subscreen, puede mostrarse en un área de cualquier pantalla dentro del module pool.
iii. Ventana de dialogo modal, solo ocupa parte de una pantalla.
3. Dynpro siguiente/Next screen
a. Número de la próxima dynpro que se visualizará
4. Posición del cursor/Cursor position
a. Elemento de la pantalla en donde quedara posicionado el cursor cuando la dynpro se visualice.
5. Grupo de dynpros/Screen group
a. Numero de cuatro caracteres con el cual se puede asignar muchas dynpros a un grupo de dynpros para poder modificarlas a todas de manera uniforme.
En la pestaña “lista de elementos/Element list”, se verá la lista de elementos que componen la dynpro. Al no haberse creado nada aún, solo se verá el correspondiente al tipo de elemento de la pantalla OK, que existirá en toda Dynpro creada. En el campo, se asignará un nombre de variable que contendrá el código de función correspondiente al botón presionado o acción realizada en la pantalla. Por lo general, a este campos se lo denomina “OK_CODE”. En cada una de las dynpros, se tendrá que asignar el “OK_CODE”.
Dentro de esta pestaña, también se encontrarán pestañas “Textos y máscaras de salida/entrada/Text/I/O templates”, “Atributos especiales/Special Attr” y otras más, donde se podrá configurar ciertos aspectos de los elementos que componen a una Dynpro.
En la pestaña “Lógica proceso/Flow logic”, es donde se especificará la lógica de procesamiento de la Dynpro. En un principio, cuando se cree la Dynpro y no se tenga definida una lógica, se visualizará la siguiente pantalla con la declaración de los eventos PBO y PAI.
Una vez configuradas las pestañas, en la configuración general, hay que proceder a crear los elementos. Para ello, hay que acceder al screen painter pulsando el botón “Layout”.
Para modificar o visualizar la dynpro, se utilizará el botón del lápiz. En el panel que se encuentra a la izquierda de la pantalla, aparece los iconos de los elementos que pueden formar parte de una dynpro. Para utilizarlos, hay que pulsar con el ratón en el elemento y volver a pulsar en la pantalla.
Los elementos son los siguientes:
1. Campo de texto/Text field
a. Se utiliza para mostrar textos fijos o estáticos en la pantalla.
b.
c. Al pulsar dos veces sobre el texto, se visualizará una ventana de diálogo donde se configurarán los atributos del texto.
Nombre: Nombre del elemento
Texto: Texto que se mostrará en el elemento
Nombre icono: Se podrá añadir un icono al texto entre los que se visualicen al pulsar el botón derecho del campo
Quick info/Tooltip: Texto que se visualizará si se mantiene el puntero del ratón encima del texto.
Longitud visualización: Cantidad de caracteres que se visualizarán del texto en pantalla.
Dict: Especificar si el campo hace referencia a un campo declarado en el diccionario de datos marcando el tic en la opción “Del Dict”. En este caso, el campo tomara todos los atributos de este. En caso contrario, se puede especificar una rutina de conversión, ayuda de búsqueda, etc.
Programa: Se especificara si el campo es de entrada, salida o entrada/salida. En el caso de un texto, esta opción está deshabilitada. También se pueden configurar ciertos parámetros de la salida como la justificación y los ceros.
Visualización: Se seleccionarán los atributos que tiene que ver con la visualización del elemento en la pantalla como son el brillo, si está visible o no, etc.
2. Campo de entrada/salida (Input/output field)
a. Son campos de entrada, salida o entrada/salida que se utilizan para modificar o visualizar datos
i.
b. Muchos de los atributos de este elemento son los mismos que se describen en los textos. Los propios de este elemento son
i. Dropdown: Se puede configurar al campo como si fuera una lista desplegable de valores.
ii. Scrollable: Se puede configurar la posibilidad de desplazarse en la lista.
c. En la pestaña Dict, se podrá determinar el formato del campo en la opción “Formato”.
d. En la pestaña Programa, se determinará si el campo es de entrada, salida o entrada/salida. En caso de entrada, se puede seleccionar que el campo sea obligatorio, recomendado, posible.
3. Checkbox: Se pueden crear en la dynpro.
a.
b. Los atributos propios de este elemento, son
i. Codigo de función: Se puede especificar un código de función para el checkbox. El sy-ucomm adaptara este código cuando se ejecute la dynpro y se seleccione el checkbox.
4. Radiobutton: Se pueden crear en la dynpro.
a.
b. Los atributos propios de este elemento son los mismos que se utilizan en los checkboxes. Se pueden agrupar varios radiobuttons de modo que solo se pueda seleccionar uno dentro de un grupo de radiobuttons.
i. Para ello, en los radiobuttons se completará la opción “Grupos”.
1.
ii. Se seleccionan todos y sse accede a la opción del menú “Tratar%uF0E0Agrupacion%uF0E0Grupo de botones de selección%uF0E0Definir”
5. Pushbutton: Se pueden crear botones en la dynpro.
a.
b. El atributo mas importante a tener en cuenta es el código de función, que será el valor que tome el “sy-ucomm”, cuando se presione el botón.
6. Tabstrip control y tabstrip control con asistente: Existen dos formas de crearlo, manual o con el asistente
a. Es un control que tiene una colección de una o más pestañas. Cada pestaña u objeto tab de un tabstrip es un objeto separado que los usuarios pueden seleccionar.
b. Utilizando el asistente, se verán las pantalas de crecacion.
i. Segunda pantalla, asignación de nombre al tabstrip
1.
ii. Tercera pantalla, nombres de las pestañas. Como mínimo debe haber dos.
1.
iii. Cuarta pantalla, código de función de cada una de las pestañas
1.
iv. Quinta pantalla, se pueden crear includes de subrutinas para almacenar la lógica de procesamiento.
1.
v. Por último, pulsar el botón finalizar. El sistema informa que se crearán las subscreen 0101, 0102 y 0103.
1.
7. Box: Organizar elementos de la dynpro
a.
b. En el campo texto, se completara el texto que se visualizará en la parte superior izquierda del box. Se puede colocar dentro del box algún elemento de la pantalla, solo habrá que arrastrarlo y soltarlo dentro del box.
8. Subscreen área: Area dentro de una dynpro donde se podrá colocar otra dynpro. Parallamar a una subscreen se utilizarán las opciones
a.
9. Tabla de control y tabla control con asistente: son controles que permiten la visualización y modificación de los datos de una tabla.
a.
10. Custom control: Contenedor de una dynpro en donde se puede mostrar otro elemento de la pantalla.
a.
11. Icono de estado: Se utiliza para mostrar elementos indicado el status gui del programa.
a.
En el momento de crear campos en una dynpro o pantalla de un programa, hay dos posibilidades. Una de las posibilidades es utilizar campos que están guardados en el diccionario de datos, la otra posibilidad es declarar los campos que se van a utilizar en el programa de diálogo.
Si se definen los campos que se van a utilizar en la pantalla dentro del programa de dialogo, lo más conveniente será declarar dentro del include donde se colocan las declaraciones de datos una estructura diferente para cada dynpro del programa. Por ejemplo, si están las dynpros 0100, 0200 y 0300 dentro del programa, entonces se declararán las estructuras, wa_screen0100, wa_screen0200 y wa_screen0300. Estas estructuras contendrán los campos de cada pantalla. Lo único que se debe 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. De esta forma, los campos de la pantalla llevaran el nombre exacto definido en el diccionario de datos. Para configurar esta definición de los campos de la pantalla, se deberá marcar en cada campo de la pantalla la opción “Campo diccionario programa”.