✒️ABAP / Las tablas de control Por Lisimaco Prieto Herrera
ABAP Las tablas de control

Las tablas de control
¿Que es una tabla de control y cuáles son sus características?
Es un control que se usa para la modificación y visualización de los datos de un tabla interna, de una tabla BD u otra estructura de datos de SAP en la pantalla.
El aspecto de una tabla de control es similar al de una hoja de cálculo. Un ejemplo de una Tabla de control lo tenemos cuando introducimos datos a través de la vista de una tabla.
Si ejecutamos la transacción SM30, introducimos el nombre de una tabla cualquiera, por ejemplo la tabla BD ZTABLA_USUARIOS y hacemos clic en el botón Visualizar veremos la siguiente pantalla:
Este es un ejemplo de una Tabla de Control.
La creación de una Tabla de Control
Para crear una Tabla de control en una dynpro tenemos dos posibilidades: hacerlo de forma manual o usar el asistente. A continuación como crear una tabla de control con el asistente, ya que hacerlo de esta forma nos evita tener que escribir las lógicas de cada una de las funcionalidades de forma manual y en consecuencia ahorramos tiempo.
Lo primero que haremos será crear un include de datos y declararemos la tabla interna TI_USUARIOS junto con la estructura WA_USUARIOS del mismo tipo que la tabla interna. Dentro de la tabla interna declaramos al comienzo de la misma, el campo marca de tipo caracter de 1 posición, que se usará para agregar una columna de selección a la tabla de control y luego el resto de los campos que tendrá la tabla de control.
Luego en el Screen Painter de la dynpro seleccionamos el icono Control Tabla (med. Wizard) tal como vemos en la siguiente imagen:
A continuación, se ejecutará el asistente que nos guiará en la construcción del control. En la primera pantalla hacemos clic en el botón Continuar.
Luego ingresamos un nombre para la Tabla de control que será TC_USUARIOS.
Ahora especificamos el nombre de la tabla interna y de la estructura que usaremos para trabajar junto con la tabla de control, que será la tabla interna TI_USUARIOS y la estructura WA_USUARIOS.
Marcamos los campos de la tabla que se mostrarán en la Tabla de control sin tener en cuenta al campo de selección.
Dentro de los Atributos de entrada/salida determinamos si la Tabla de control será de salida d datos, es decir visualización o de entrada de datos. Para nuestro ejemplo marcamos la opción Solo salida.
Marcamos el check Con cabecera de columna para que visualicen los títulos de cada columna.
Y marcamos el check Con columnade selección de modo que la Tabla de control tendrá la columna de selección, cuyo campo Campo columna selección será MARCA.
Luego podemos seleccionar algunas funciones de la Tabla de control, las cuales dependerán de que la tabla sea de entrada o salida.
En este caso seleccionamos el check PasarPág que agregará cuatro botones debajo de la Tabla de control con los cuales nos podemos desplazar a lo largo y ancho de la tabla.
Ahora especificamos los include en donde se creará el código de la Tabla de control.
En caso de que alguno de los includes no exista, se crearán

Finalmente veremos la tabla de control creada en la dynpro.

Modificamos el ancho de las columnas y las descripciones de los títulos para que se visualicen de la siguiente manera.

Automáticamente se ha creado en nuestro programa una enorme cantidad de código entre lo que encontraremos la declaración de la Tabla de control.

En el PBO de la lógica de procesamiento de la dynpro veremos creado el siguiente código con los MODULE TC_USUARIOS_CHANGE_TC_ATTR y TC_USUARIOS_GET_LINES

En el PAI de la lógica de procesamiento de la dynpro veremos creado el siguiente código con los MODULE TC_USUARIOS_MARK y TC_USUARIOS_USER_COMMAND.

Usaremos la sentencia LOOPENDLOOP para recorrer cada elemento de la tabla de control. Dentro de esta sentencia pueden 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 la variable del sistema SY-LOOPC contiene el número de líneas de la tabla de control. En el PAI, contiene el número de líneas actualmente llenas.
Finalmente para llenar la tabla de control de datos, en el PBO de la dynpro realizaremos la carga de la misma mediante el MODULE CARGAR_TC_0200 tal como vemos en la siguiente imagen.

Y dentro del MODULE CARGAR_TC_0200 introducimos el siguiente código para recuperar los datos de la tabla BD ZTABLA_USUARIOS.

Y en siguiente el código para pasar esos registros a la tabla interna TI_USUARIOS que es la que usa la tabla de control.

 
 
 
Sobre el autor
Publicación académica de Lisimaco Prieto Herrera, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Avanzado.
Lisimaco Prieto Herrera
Profesión: Ingeniero de Sistemas - Colombia - Legajo: DV67X
✒️Autor de: 96 Publicaciones Académicas
🎓Egresado de los módulos:
Presentación:
Ingeniero de sistemas con amplia experiencia en el desarrollo de software para el sistema sap r/3 en lenguaje de programación abap.
Certificación Académica de Lisimaco Prieto






Disponibilidad Laboral: FullTime


















