✒️ABAP / Las tablas de control Por Roberto Fluder Ahumada
ABAP Las tablas de control

lección "Las tablas de control":
• ¿Qué es una Tabla de control y cuáles son sus características?
â—¦ Una Tabla de control es un control integral utilizado para la modificación y visualización de datos dentro de una dynpro en SAP. Su diseño intuitivo, similar al de una hoja de cálculo, permite a los usuarios interactuar directamente con datos de tablas internas, tablas de base de datos u otras estructuras SAP. Este tipo de control facilita la edición, inserción y eliminación de registros de manera visual, lo que lo convierte en una herramienta fundamental para las aplicaciones de diálogo. Por ejemplo, la transacción SM30 es un claro uso de este control, permitiendo a los consultores y desarrolladores visualizar y mantener datos de tablas directamente en pantalla.
• La creación de una Tabla de Control
â—¦ La creación de una Tabla de Control puede realizarse de dos maneras: manual o utilizando el asistente. Si bien el método manual ofrece control total, requiere que el desarrollador escriba toda la lógica de interacción de forma explícita, lo que puede ser un proceso propenso a errores y que consume mucho tiempo. Por esta razón, el asistente es el método preferido, ya que automatiza la generación de gran parte del código ABAP necesario, como la declaración del control y los módulos de PBO/PAI, reduciendo la complejidad y acelerando significativamente el desarrollo de interfaces de usuario.
â—¦ Declaración de la tabla interna:
â–ª Lo primero es declarar una tabla interna (ej. TI_USUARIOS) y su estructura de trabajo (ej. WA_USUARIOS), ambas del mismo tipo.
â–ª Al inicio de la tabla interna, se debe incluir un campo de tipo caracter de 1 posición (ej. MARCA), que servirá para la columna de selección en la tabla de control.
â–ª El resto de los campos de la tabla de control se declaran a continuación de este campo de selección en la estructura, siguiendo la secuencia de las columnas deseadas.
â—¦ Selección del control en Screen Painter:
â–ª Pasos para seleccionar el control en Screen Painter:
1. Acceda al Screen Painter de la dynpro donde desea crear la tabla de control.
2. Localice y seleccione el ícono "Control Tabla (med. Wizard)" entre los elementos disponibles en la paleta de herramientas.
3. Arrastre este ícono a la dynpro y, manteniendo presionado el botón del mouse, aumente su tamaño hasta la dimensión deseada en la pantalla.
â—¦ Asistente de creación:
â–ª Una vez que el ícono de la tabla de control es arrastrado a la dynpro, el asistente se ejecuta automáticamente para guiar al desarrollador. Este proceso interactivo presenta una serie de pantallas consecutivas, cada una solicitando información específica para configurar la tabla. Los pasos incluyen desde asignar un nombre al control y vincularlo a una tabla interna hasta definir su comportamiento y apariencia en la pantalla, lo que simplifica enormemente la implementación.
â—¦ Asignación de nombre:
â–ª Durante el proceso guiado por el asistente, es un paso crucial introducir un nombre identificativo para la Tabla de Control, como por ejemplo, "TC_USUARIOS". Este nombre no solo sirve como un alias para el control dentro del programa, sino que también es utilizado por el sistema para generar las variables y los módulos ABAP asociados, asegurando una referencia clara y única para su manipulación posterior en el código. Es fundamental elegir un nombre que sea descriptivo y fácil de entender para futuras referencias.
â—¦ Especificación de tabla interna y estructura:
â–ª En esta etapa del asistente, debe definir los nombres de la tabla interna (ej. TI_USUARIOS) y la estructura de trabajo (ej. WA_USUARIOS) que se vincularán a la tabla de control.
â–ª Estos elementos son fundamentales para el flujo de datos entre el programa ABAP y los campos mostrados en la pantalla, permitiendo que la tabla de control acceda y manipule los datos.
â—¦ Selección de campos a visualizar:
â–ª Debe seleccionar los campos de la tabla interna que desea que se muestren como columnas en la Tabla de Control.
â–ª Es crucial excluir el campo de selección (ej. MARCA) de esta lista, ya que tiene una función diferente en la tabla de control, dedicada a la interacción del usuario para marcar filas.
â—¦ Configuración de atributos de entrada/salida:
â–ª Aquí se define si la Tabla de control será de solo salida (visualización) o si también permitirá la entrada de datos, lo cual impacta en la interactividad del usuario.
â–ª También puede activar la opción "Con cabeceras de columnas" para que se muestren los títulos de cada columna, mejorando la legibilidad.
â–ª Además, se puede marcar la opción "Con columna de selección" y especificar el campo correspondiente (ej. MARCA) para habilitar una columna de selección en el lado izquierdo de la tabla.
â—¦ Funciones estándar de la Tabla de control:
â–ª El asistente permite seleccionar funciones predefinidas que la Tabla de control puede incluir, facilitando la navegación y manipulación de datos.
â–ª Estas funciones varían dependiendo de si la tabla está configurada para entrada o salida de datos, optimizando la experiencia del usuario.
â–ª Por ejemplo, al seleccionar el checkbox "PasarPág", se añaden cuatro botones de navegación debajo de la tabla, que permiten desplazarse por los datos horizontal y verticalmente, como "Página Siguiente", "Página Anterior", "Inicio" y "Fin".
â—¦ Especificación de includes:
â–ª Se deben especificar los includes donde el asistente generará el código ABAP de la Tabla de control.
â–ª Si alguno de estos includes no existe previamente en el sistema, se crearán automáticamente para asegurar que todos los componentes de código necesarios estén disponibles y correctamente estructurados en el programa.
â—¦ Visualización de la tabla de control creada:
â–ª Una vez finalizado el asistente, la tabla de control se visualizará en la dynpro con el diseño inicial, mostrando las columnas seleccionadas y un tamaño predefinido.
â–ª En este punto, es posible modificar el ancho de las columnas y los títulos arrastrando y soltando o editando sus propiedades para adaptarlos a la visualización deseada y mejorar la presentación al usuario final.
â—¦ Código generado automáticamente:
â–ª El sistema genera automáticamente una cantidad considerable de código ABAP indispensable para el funcionamiento de la tabla de control, ahorrando tiempo de desarrollo.
â–ª Esto incluye la declaración de la tabla de control misma (por ejemplo, CONTROLS TC_USUARIOS TYPE TABLEVIEW USING SCREEN '0100'), así como módulos específicos que se insertan en los eventos Process Before Output (PBO) y Process After Input (PAI) de la dynpro.
â–ª Por ejemplo, en el PBO se crean módulos como TC_USUARIOS_CHANGE_TC_ATTR para atributos del control y TC_USUARIOS_GET_LINES para gestionar las líneas, y en el PAI, TC_USUARIOS_MARK para el manejo de selecciones y TC_USUARIOS_USER_COMMAND para acciones del usuario.
â—¦ Uso de LOOP-ENDLOOP:
â–ª La sentencia LOOP-ENDLOOP es esencial y obligatoria en los eventos PBO y PAI de cada Tabla de control en la pantalla.
â–ª Su función principal es iterar sobre los elementos de la tabla y facilitar la copia de los campos entre el programa ABAP y la pantalla y viceversa, garantizando la sincronización de los datos mostrados.
â–ª Dentro de esta sentencia, se pueden incluir otras como FIELD para validación de campos, MODULE para ejecutar lógica específica, SELECT para recuperar datos, VALUES para listas desplegables y CHAIN-ENDCHAIN para validaciones agrupadas. En el PBO, la variable del sistema SY-LOOPC contiene el número actual de líneas de la tabla de control, mientras que en el PAI, contiene el número de líneas actualmente llenas.
â—¦ Carga de datos en el PBO:
â–ª La carga de datos en la Tabla de Control se realiza en el evento PBO de la dynpro, usualmente mediante un módulo específico como CARGAR_TC_0200, que se ejecuta antes de que la pantalla sea mostrada.
â–ª Este módulo se encarga de recuperar los datos de una tabla de base de datos (ej. ZTABLA_USUARIOS) utilizando una sentencia SELECT.
â–ª Posteriormente, los registros recuperados se asignan a la tabla interna (ej. TI_USUARIOS) que está vinculada a la tabla de control, haciendo que se visualicen en la pantalla de forma ordenada y accesible para el usuario.
 
 
 
Sobre el autor
Publicación académica de Roberto Fluder Ahumada, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Avanzado.
Roberto Fluder Ahumada
Profesión: Analista de Sistemas - Chile - Legajo: TD38U
✒️Autor de: 59 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Roberto Fluder






Disponibilidad Laboral: FullTime


















