#6
|
||||
|
||||
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. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|