![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Las tablas de control
ABAP Las tablas de control
![ABAP Las tablas de control ABAP Las tablas de control](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/34.jpg)
Unidad-2-Lección-8: Tablas de Control 1) Características de una Tabla de Control
Tabla de control: Es un control que se utiliza para la modificación y visualización de los datos de una tabla interna, tabla de base de datos u otra estructura de datos de SAP.
El aspecto de una tabla de control es similar al de una hoja de cálculo. Un ejemplo de tabla de control es cuando se introducen datos a través de la vista de una tabla. Desde la transacción SM30, se puede ver cualquier tabla.
Este es un ejemplo de una Tabla de Control.
2) Creación de una tabla de control
Tenemos dos posibilidades para crear una tabla de control en una dynpro: hacerlo de forma manual o a través del asistente o “Wizard”. Los pasos para crearlos a través del Wizard son los siguientes:
Primero habrá que crear un include de datos y declarar la tabla interna junto con una estructura del mismo tipo que la tabla interna. Dentro de la tabla interna, habrá que declarar al comienzo el campo “marca” de tipo carácter de 1 posición, que se utilizará para añadir una columna de selección a la tabla de control.
Seguidamente, en el Screen Painter de la dynpro, seleccionamos el ícono Control tabla (med. Wizard), lo ponemos en la pantalla y aumentamos el tamaño manteniendo el botón del mouse presionando las dimensiones de control, después de lo cual aparece el asistente que guiará la construcción del control.
En la primera pantalla hacemos click en continuar, y luego habrá que indicar un nombre para la tabla de control, en este caso, TC_USUARIOS (Continuar)
En la siguiente pantalla, se deberá especificar el nombre de la tabla interna y de la estructura que se utilizará. (Continuar)
Después habrá que marcar los campos de la tabla que se mostrarán en la tabla de control, sin tener en cuenta al campo de selección. (Continuar)
En la siguiente ventana, en la opción Atributos entrada/salida, se determinará si la tabla de control será de salida de datos, es decir, de visualización o de entrada de datos.
Si marcamos Con cabeceras de columnas, se visualizarán los títulos de cada columna.
Si marcamos Con columna de selección, se creará en la tabla de control la columna de selección, en cuyo caso se deberá indicar el nombre del campo MARCA en Campo columna selec. (Continuar)
Luego podemos seleccionar algunas funciones estándar de la tabla de control, las cuales dependerán de que la tabla sea de entrada o de salida. En este caso, se seleccionará PasarPag, que agregará cuatro botones debajo de la tabla de control con los cuales nos podremos desplazar a lo largo y ancho de la tabla. (Continuar)
Ahora nos toca indicar los includes en donde se creará el código de la tabla de control. En caso que no exista alguno de ellos, se crearán. (Continuar)
Nota (Audio tip): Un error común que sucede en la creación de programas de diálogo, tiene que ver con el orden en el que declaramos los includes en el programa principal.
Supongamos que creamos un include para las declaraciones de datos TOP, un include para las declaraciones de subrutinas del PBO y un include para las declaraciones de subrutinas del PAI. Si no declaramos primero de los tres al include TOP nuestro programa no va a activar ya que el sistema nos informará de errores de sintaxis, que tienen que ver con la declaración de datos que están declarados en el TOP, pero al estar declarados posteriormente a la utilización de los mismo en los include del PBO y el PAI generan inconsistencias en la sintaxis.
Una vez creada la tabla de control, se creará en el programa una enorme cantidad de código entre lo que se encontrará la declaración de la tabla de control. (Finalizar)
Ahora podremos ver la tabla de control creada en nuestro dynpro.
Automáticamente se ha creado en nuestro programa una gran cantidad de código, entre el cual tenemos la declaración de la Tabla de Control (en el Include de Datos):
En el PBO de la lógica de procesamiento de la dynpro, encontramos creado el siguiente código:
PROCESS BEFORE OUTPUT. |
En el PAI de la lógica de procesamiento de la dynpro, encontramos creado el siguiente código:
PROCESS AFTER INPUT. |
Se utilizará la sentencia LOOP-ENDLOOP, para recorrer cada elemento de la tabla de control. Dentro de esta sentencia, puede haber otras sentencias como FIELD, MODULE, SELECT, VALUES y CHAIN-ENDCHAIN.
Debe existir una sentencia LOOP-ENDLOOP tanto en el PBO como en el PAI para cada tabla de control de la pantalla. Esto se debe a que mediante esta sentencia se copian los campos entre el programa ABAP y la pantalla y viceversa.
En el PBO, el campo del sistema SY-LOOPC contiene el número actual de líneas de la tabla de control. En el PAI, contiene el número de líneas actualmente llenas.
3) Lógica para el llenado de la tabla de control
Para llenar la tabla de control con datos, en el PBO de la dynpro se realizará la carga de la misma. Añadimos la línea de código
MODULE cargar_tc_200. |
Y en el módulo cargar_tc_200 que se crea, introducimos el siguiente código:
MODULE CARGAR_TC_200 OUTPUT. |
Nota (Audio Tip): Un error común que sucede en la creación de programas de dialogo, tiene que ver con el orden en el que declaramos los includes en el programa principal. Supongamos que creamos un include para la declaración de datos TOP, un include para las declaraciones de subrutinas del PBO y un include para las declaraciones de subrutinas del PAI. Si no declaramos primero de los tres al include top, nuestro programa no va a activar ya que el sistema nos informara de errores de sintaxis que tienen que ver con la declaración de datos que están declarados en el TOP pero al estar declarados posteriormente en la utilización de los mismos en los include del PBO y el PAI generan inconsistencias en la sintaxis.
Si el usuario hace click en el botón de Modificar o el de Cancelar, se ejecuta el código del módulo USER_COMMAND_0200. Aquí se trata el OK_CODE y, si el usuario hizo click en Modificar se determina si el usuario selecciono algún registro:
MODULE USER_COMMAND_0200 INPUT. |
Si el usuario hizo click en Cancelar el control se devuelve a la dynpro 0100.
Si el usuario no seleccionó registro y presionó Modificar se emite un mensaje de error. Si el usuario seleccionó registro y hace click en Modificar se llama a la dynpro 0300.
4) Lógica para la carga de los campos para visualizar/modificar
Al llamarse la dynpro 0300 debemos asignar los valores del registro seleccionado a los campos de la dynpro 0300. Para ello añadimos la línea de código en su lógica de procesamiento:
MODULE cargar_campos_0300. |
Luego, en el módulo del PBO cargar_campos_0300 agregamos el código siguiente
MODULE CARGAR_CAMPOS_0300 OUTPUT. |
Luego se muestra la dynpro 0300 con los datos, listos para ser modificados.
Aquí, si el usuario hace click en Cancelar, se llama al dynpro 0100, el inicial. Si hace click en Confirmar Modificación, se muestra una ventana “pop up” de confirmación.
Si el usuario hace click en No se llama a la dynpro 0100. Si lo hace en Si, se graban los datos y se llama a la dynpro-0100. Todo este proceso se lleva
 
 
 
Sobre el autor
Publicación académica de Ninoska Marquez, en su ámbito de estudios para la Carrera Consultor ABAP.
Ninoska Marquez
Profesión: Ing. de Sistema - Honduras - Legajo: FU90M
✒️Autor de: 99 Publicaciones Académicas
🎓Egresado de los módulos:
Presentación:
Me llamo ninoska marquez tengo 44 anos, tengo varios años de trabajar para una empresa donde me desempeño con el cargo de programador junior, soy perseverante, amable, tranquila
Certificación Académica de Ninoska Marquez