Вы находитесь на странице: 1из 8

Creando un Table Control

 Ingresamos a la Transacción SE11 (Diccionario ABAP)

 Paso 1 (Creando una estructura para el table control)


Digite este nombre de estructura (ZTC_EKKO) y presione crear

Incorporar los campos


que deseas exhibir en
el table control.
El ejemplo utiliza
campos de la tabla
EKKO.
 Paso 2 (Crear el Programa)
Ir a la transacción SE80 (Object Navigator) -> Repository Browser -> Program.

Ingrese el nombre del programa, asegúrate por favor que comience por SAPMZ………pues esto es para
crear el module pool (programa de dialogo). Presione Enter para crear, presione YES ! .

Asegúrate de crear un TOP INCLUDE, luego presiona ENTER.

Aceptar el nombre creado para el TOP INCLUDE, presiona ENTER.

Presiona GUARDAR.
 Paso 3 (Creando el TOP Include)
Doble click en el TOP INCLUDE y digite el siguiente código ABAP.
Tables: ZTC_EKKO.

controls: tc100 type tableview using screen 100.

data: ok_code type sy-ucomm.

data: it_ekko type standard table of ZTC_EKKO initial size 0,


wa_ekko type ZTC_EKKO.

data: ok_code type sy-ucomm.

Presione GUARDAR y luego ACTIVAR.

 Paso 4 (Creando la Screen)


Click derecho en el programa para crear una Screen 100 para el dialogo. Digite una descripción corta,
selecciona en los atributos de la dynpro, en el tipo de la pantalla la opción Normal, luego introduzca 0 o
deje vacio el espacio en el campo Dynpro siguiente (Next Screen).

Después muévete a la Lengüeta Element List (lista elem.) e introduce el OK_CODE (es decir igual que qué
declaraste en el Top Include con datos: tipo sy-ucomm del ok_code).
 Paso 5 (Creando el table control)
Presionar el botón de Disposición (layout) para ver la ventana del editor Screen Painter.

Presione el boton Table control (ubicado en la parte izquierda de el Screen painter) y arrástrelo en la screen,
posteriormente ingrese el nombre del table control creado en el Top Include (TC100).

Ahora presione el botón Amarillo (ventana de atributos) y fije el table control con los siguientes atributos.
 Paso 6 (Llenar el table control )
Presione el botón Naranja (ventana campos). En la ventana que aparece a continuación digite en
Tabla/Nombre campo ZTC_EKKO como se muestra en la imagen y luego presione el botón ‘Get from Dict’
(Traer directamente). Seleccione los campos que deseas sean visualizados en el table control (todos) y
presiona ENTER. Ahora estarán en tu table control.

A continuación el resultado, realizamos el chequeo de sintaxis ahora! …Y revisamos que este correcto. Luego
guardamos y volvemos a nuestra lógica del proceso (código).
 Paso 7 (Creando el control de flujo del proceso )
Dentro de la lógica del flujo de la screen 100, crear dos módulos, uno para seleccionar los datos de la base
de datos y el otro para mover los campos seleccionados en el table control. También insertar las 2
declaraciones de LOOP para llenar y recuperar las líneas del table control.

PROCESS BEFORE OUTPUT.


* MODULE STATUS_0100.
module data_retrieval.
loop at it_ekko into wa_ekko with control TC100.
module populate_screen.
endloop.
*
PROCESS AFTER INPUT.
loop at it_ekko.
endloop.

* MODULE USER_COMMAND_0100.

Dolble click en el modulo data_retrieval para crearlo y luego click YES para el siguiente cuadro emergente.
Asegúrate de que un Nuevo include es creado para contener todos los módulos PBO (defecto). Presiona
ENTER.
El siguiente código selecciona 10 filas de datos de la tabla EKKO y los carga en la tabla interna it_ekko.
Regresar a la lógica del proceso y cargar estos datos en el table control.

*----------------------------------------------------------------------*
***INCLUDE MZ_TCONTROL_DATA_RETRIEVALO01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module data_retrieval OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE data_retrieval OUTPUT.
* select data from ekko table
SELECT ebeln bukrs bstyp bsart
bsakz loekz statu aedat
UP TO 10 ROWS
FROM ekko
INTO CORRESPONDING FIELDS OF TABLE it_ekko.
ENDMODULE. " data_retrieval OUTPUT

Doble click en el modulo populate_screen para crearlo. Ahora mueva los valores en este LOOP del wa_ekko
dentro de el table control con la sentencia move-corresponding.

MODULE populate_screen OUTPUT.


DATA: ld_line TYPE i.

* Set which line of table is a top of displayed table control


IF sy-stepl = 1.
tc100-lines = tc100-top_line + sy-loopc - 1.
ENDIF.

* move fields from work area to scrren fields


MOVE-CORRESPONDING wa_ekko TO ztc_ekko.

ENDMODULE. " populate_screen OUTPUT


 Paso 8 (Creando la Tansacción)
Ahora crearemos una transacción para hacerle pruebas a nuestro programa. Hacemos click derecho en el
programa y luego seleccionamos Create->Transaction (crear transacción).

 Paso 9 (Ejecutar la Transacción )


Ejecute la transacción ZTC.

Вам также может понравиться