Control de tabla SAP ABAP con ejemplos

Tabla de contenido

Los controles de tabla y los bucles de pasos son objetos para la visualización de la tabla de pantalla que agrega a una pantalla en Screen Painter.
Desde el punto de vista de la programación, los controles de la mesa y los bucles de pasos son casi exactamente iguales. Los controles de tabla son simplemente bucles de pasos mejorados que muestran datos con el aspecto asociado con las tablas en las aplicaciones de escritorio.
Con los controles de la mesa, el usuario puede:

  • Desplácese por la tabla vertical y horizontalmente
  • Cambiar el tamaño del ancho de una columna
  • Desplazarse dentro de un campo (cuando el contenido del campo es más ancho que el campo)
  • Seleccionar filas o columnas de la tabla
  • Reordenar la secuencia de columnas
  • Guarde la configuración de pantalla actual para uso futuro

Los controles de tabla también ofrecen funciones de formato especiales (algunas automáticas, otras opcionales) que facilitan la visualización y el uso de las tablas. Table Control proporciona:

  • cambio de tamaño automático de la mesa (vertical y horizontal) cuando el usuario cambia el tamaño de la ventana
  • líneas de separación entre filas y entre columnas (vertical y horizontal)
  • campos de encabezado de columna para todas las columnas

Una característica de los bucles de pasos es que las filas de la tabla pueden abarcar más de una línea en la pantalla. Una fila de un control de tabla, por otro lado, siempre debe estar contenida en una sola línea (aunque es posible desplazarse).
En general, muchas de las características proporcionadas por el control de tabla son manejadas localmente por la interfaz SAPgui de su sistema, por lo que no necesita programarlas usted mismo. La única excepción notable a esto es el desplazamiento vertical .
Ejemplo (transacción TZ60)


Sintaxis
Para manejar controles de tabla en programas ABAP, debe declarar un control en la parte de declaración del programa para cada control de tabla usando la siguiente declaración:

CONTROLES  TIPO DE TABLA VISTA UTILIZANDO LA PANTALLA 

donde es el nombre del control de tabla en una pantalla en el programa ABAP. El control permite al programa ABAP leer los atributos del control de la tabla e influir en el control. Aquí, es el número de pantalla donde se cargan los valores iniciales de la tabla.
La posición del cursor para un control de tabla se puede configurar de las siguientes maneras:
En PBO, puede colocar el cursor en un campo específico de una fila específica de un control de tabla.

AJUSTAR CURSOR CAMPO  LINE 
 [OFFSET ]

Con la opción OFFSET adicional, puede ingresar la compensación del cursor en el campo como se describe en Configuración de la posición del cursor.
En PAI puede leer la posición actual del cursor.

OBTENER CURSOR FIELD  LINE 

Además de la información proporcionada en Cómo averiguar la posición del cursor, el campo contiene información sobre en qué fila del control de tabla se encuentra actualmente el cursor. También puedes usar

OBTENGA LA LÍNEA DEL CURSOR 
.

para determinar la fila del control de la tabla. SY-SUBRC le permite verificar si el cursor está colocado en una fila de un control de tabla.
Para obtener la línea correspondiente de la tabla interna:

OBTENGA la línea del CURSOR 
.ind =  -line_top + 
 - 1.Leer tabla  index ind.

La variable de sistema stepl - contiene el índice de línea de la tabla actual en un bucle… endloop. Loopc: contiene el número de líneas visibles en la tabla.
Para crear un control de tabla
1.Agregue un elemento de control de tabla a su pantalla.
2. Dé un nombre al control de tabla. En el programa ABAP declarar una estructura con la misma (CONTROLS tipo TABLEVIEW USING SCREEN )
3. Para crear campos vaya a la función Dict./Program fields.

  • Ingrese el nombre de la estructura cuyos campos desea. (Si desea seleccionarlo del diccionario de su programa, haga clic en el botón correspondiente).
  • En la lista de campos, elija los campos que desee y elija Aceptar.
  • Haga clic en el área de control de la tabla

Si desea una columna de selección, marque la casilla de verificación correspondiente en los atributos y asígnele un nombre. Cree el campo en el programa ABAP.
En la PBO deberías tener la declaración

BUCLE en  USANDO CONTROL .ENDLOOP.

En el PAI deberías tener.

LOOP en .ENDLOOP.

Es dentro de los bucles donde ocurre la transferencia de datos entre la pantalla y la tabla interna.Cuando llene la tabla interna use DESCRIBE TABLE LINES -lines, para almacenar el número total de líneas en el control. se puede usar para controlar cuándo ocurre la transferencia de datos.
Para cambiar los atributos de celdas individuales, cambie temporalmente la tabla SCREEN en el PBO. Puede cambiar los atributos de la estructura creada por la declaración CONTROLS

 -fixed_cols, etc.son los atributos del control -cols-index, etc. son los atributos de las columnas. -cols-screen-invisible, etc. son los atributos de pantalla de cada columna.

Articulos interesantes...