#1
|
|||
|
|||
Tabla con columnas dinamicas
Es posible crear en ABAP una tabla que tenga un numero variable de columnas???
Esto seria lo mas comodo para los usuarios.. espero que me puedan ayudar.. saludos! |
#2
|
|||
|
|||
pero que cosa! jejeje
es el primer registro en aparecer en el google.com Saludos!! |
#3
|
|||
|
|||
De todas formas me dice que el tipo global no existe... cl_salv_table...
alguna idea? |
#4
|
|||
|
|||
encontre un ejemplo muy bueno con una amiga mia...
BCALV_TABLE_CREATE es un ejemplo de programa que viene ya en el SAP... ejecutenlo con la se38 espero que a alguien le sirva!!! saludos |
#5
|
||||
|
||||
Hola Aldape, esa clase no existe por problemas de version ... me paso algo similar cuando queria crear un archivo con extension .zip, me salio en el ECC 6.0 pero en el 4.6 no
__________________
David Carballido Córdova |
#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. |
#7
|
||||
|
||||
Hola de nuevo ... aqui he mejorado un poco el codigo que encontró Aldape, pero creo q funciona con una version superior a la 4.6, una tabla interna que me da hasta 80 campos ...
__________________
David Carballido Córdova |
#8
|
|||
|
|||
Hola! muchas gracias por su apoyo!..
problema resuelto :P (Next!!!) saludos! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|