Hola ALDAPE.
Te copio un ejemplo de como crear una tabla dinamica.
Pero igual necesitas un numero finito de columnas.
Espero te sirva.
Saludos.
*&---------------------------------------------------------------------*
*& Report ZSVPRUEBAS95
*&---------------------------------------------------------------------*
REPORT ZSVPRUEBAS95.
************************************************************************
* TABLAS DEL SISTEMA.
TABLES: GLT0, SKAT, BSEG, BKPF, T001, BSIS, BSAS, T880.
DATA : BEGIN OF TI_CUENTAS_INTER2 OCCURS 0.
DATA TIPO(1).
DATA CNTRY LIKE T880-CNTRY.
DATA BUKRS LIKE BSIS-BUKRS.
DATA VBUND LIKE BSIS-VBUND.
DATA DMBTR LIKE BSIS-DMBTR.
DATA : END OF TI_CUENTAS_INTER2.
************************************************************************
TYPE-POOLS: SLIS.
DATA: IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,
IS_FCAT LIKE LINE OF IT_FCAT.
DATA: IT_FIELDCAT TYPE LVC_T_FCAT,
IS_FIELDCAT LIKE LINE OF IT_FIELDCAT.
DATA: NEW_TABLE TYPE REF TO DATA.
DATA: NEW_LINE TYPE REF TO DATA.
DATA: POS TYPE I.
FIELD-SYMBOLS: <L_TABLE> TYPE ANY TABLE,
<L_LINE> TYPE ANY,
<L_FIELD> TYPE ANY.
* Build fieldcat
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = 'BSIS'
CHANGING
CT_FIELDCAT = IT_FCAT[].
POS = 1.
IS_FIELDCAT-COL_POS = POS.
IS_FIELDCAT-FIELDNAME = 'TIPO'.
IS_FIELDCAT-REF_FIELD = ''.
IS_FIELDCAT-REF_TABLE = ''.
APPEND IS_FIELDCAT TO IT_FIELDCAT.
POS = 2.
IS_FIELDCAT-COL_POS = POS.
IS_FIELDCAT-FIELDNAME = 'CNTRY'.
IS_FIELDCAT-REF_FIELD = ''.
IS_FIELDCAT-REF_TABLE = ''.
APPEND IS_FIELDCAT TO IT_FIELDCAT.
POS = 3.
LOOP AT IT_FCAT INTO IS_FCAT WHERE NOT REPTEXT_DDIC IS INITIAL.
IF IS_FCAT-FIELDNAME = 'BUKRS' OR
IS_FCAT-FIELDNAME = 'VBUND' OR
IS_FCAT-FIELDNAME = 'DMBTR'.
MOVE-CORRESPONDING IS_FCAT TO IS_FIELDCAT.
IS_FIELDCAT-COL_POS = POS.
IS_FIELDCAT-FIELDNAME = IS_FCAT-FIELDNAME.
IS_FIELDCAT-REF_FIELD = IS_FCAT-FIELDNAME.
IS_FIELDCAT-REF_TABLE = IS_FCAT-REF_TABNAME.
APPEND IS_FIELDCAT TO IT_FIELDCAT.
POS = POS + 1.
ENDIF.
ENDLOOP.
BREAK FMERLOS.
* Create a new Table
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = IT_FIELDCAT
IMPORTING
EP_TABLE = NEW_TABLE.
* Create a new Line with the same structure of the table.
ASSIGN NEW_TABLE->* TO <L_TABLE>.
CREATE DATA NEW_LINE LIKE LINE OF <L_TABLE>.
ASSIGN NEW_LINE->* TO <L_LINE>.
* Test it...
DO 30 TIMES.
ASSIGN COMPONENT 'BUKRS' OF STRUCTURE <L_LINE> TO <L_FIELD>.
<L_FIELD> = SY-INDEX.
INSERT <L_LINE> INTO TABLE <L_TABLE>.
ENDDO.
*LOOP AT <L_TABLE> ASSIGNING <L_LINE>.
* ASSIGN COMPONENT 'SUBRC' OF STRUCTURE <L_LINE> TO <L_FIELD>.
* WRITE <L_FIELD>.
*ENDLOOP.
|