2.8. - Tablas de control
2.8.1. - Características de una 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.
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.
Si se ejecuta la transacción SM30, se puede ver un ejemplo, introduciendo el nombre de cualquier tabla.
2.8.2. - Creación de una tabla de control
Hay dos posibilidades para crear una tabla de control en una dynpro:
1. De forma manual
2. Utilizando el asistente “Wizard”.
Wizard
Primeramente, 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.
Después, en el screen painter de la dynpro, habrá que seleccionar el icono “Control tabla med. Wizard”. Aparecerá el asistente, que guiará la construcción del control.
En la primera pantalla, habrá que indicar un nombre para la tabla de control, en este caso, TC_USUARIOS.
En la siguiente pantalla, se deberá especificar el nombre de la tabla interna y de la estructura que se utilizará.
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.
En la siguiente ventana, en la opción “Atributos de 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 se marca “Con cabeceras de columnas”, se visualizarán los títulos de cada columna.
Si se marca “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 selección”.
Se podrá 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 añadirá cuatro botones debajo de la tabla de control con los cuales se podrá desplazar a lo largo y ancho de la tabla.
Se especificarán 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. Hay que tener en cuenta en orden en el que se declaran los includes en el programa principal. Es necesario declarar el primer include, el include TOP, ya que si no se declara en primera posición, habrá problemas de sintaxis, que tiene que ver con la declaración de datos.
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.
El tipo “TABLEVIEW” corresponde a la estructura “CXTAB_CONTROL”.
El tipo “CXTAB_COLUMN” costa de los campos.
En el PBO de la lógica de procesamiento de la dynpro, se verá creado el código:
Mientras que en el PAI de la lógica de procesamiento de la dynpro, se verá el código:
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.
Por último, para llenar la tabla de control con datos, en el PBO de la dynpro se realizará la carga de la misma.
Dentro del módulo “CARGAR_TC_0200” se introducirá el código: