Está en la página 1de 2

*& AUTOR: Crounly

*& FECHA: 14/12/2006


*& e-MAIL: DESKTER@HOTMAIL.COM

*& Agradecimientos: Spinete, foro de mundo SAP

*& Descripcion:
*& ------------
*& Este es un ejemplo de creacion de tablas internas dinamicas en ABAP
*& Este codigo crea en tiempo de ejecucion una tabla interna identica
*& a una dada del diccionario, despues copia todos los datos de la tabla
*& del diccionario en la tabla interna y los muestra por pantalla.

*& Para crear la tabla utilizamos dos datos referenciados, uno
referenciara
*& a la tabla y otro a un campo estructurado que hara las funciones de
cabecera
*& de la tabla interna.

*& Para acceder a los contenidos de la tabla utilizamos 3 field-simbols



DATA: pv_tabla TYPE dd02l-tabname,
generic_table TYPE REF TO data,
generic_line TYPE REF TO data.

FIELD-SYMBOLS: <table> TYPE ANY TABLE,
<wa> TYPE ANY,
<field> TYPE ANY.

*& en pv_tabla almacenamos el nombre de la tabla del diccionario
pv_tabla = 'spfli'.

*& Referenciamos la estructura de la tabla
CREATE DATA generic_table TYPE STANDARD TABLE OF (pv_tabla).
ASSIGN generic_table->* TO <table>.

*& Referenciamos la cabecera de la tabla
CREATE DATA generic_line TYPE (pv_tabla).
ASSIGN generic_line->* TO <wa>.

*& Rellenamos la tabla interna creada dinamicamente
SELECT * INTO CORRESPONDING FIELDS OF TABLE <table> FROM (pv_tabla).

*& Recorremos la tabla creada dinamicamente
LOOP AT <table> INTO <wa>.
DO.

*& Como no conocemos los campos de la tabla hasta la ejecucion
*& assignamos a <field> un campo de la estructura en cada bucle
*& cuando sy-index supere el n de campos de la estructura
*& sy-subrc = 4 con lo que sale del bucle
ASSIGN COMPONENT sy-index OF STRUCTURE <wa> TO <field>.
IF sy-subrc <> 0.
EXIT.
ENDIF.
WRITE <field>.
ENDDO.
NEW-LINE.
ENDLOOP.

También podría gustarte