Ver Mensaje Individual
  #6  
Viejo 08/08/08, 20:25:55
Avatar de frankmerlos
frankmerlos frankmerlos is offline
Member
 
Fecha de Ingreso: oct 2006
Localización: San Salvador, El Salvador
Mensajes: 51
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.
Responder Con Cita