MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Tabla con columnas dinamicas (foro/showthread.php?t=15588)

aldape 08/08/08 16:58:43

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!

aldape 08/08/08 17:00:41

pero que cosa! jejeje

es el primer registro en aparecer en el google.com





Saludos!!

aldape 08/08/08 17:36:04

De todas formas me dice que el tipo global no existe... cl_salv_table...
alguna idea?

aldape 08/08/08 18:00:59

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

DavidXD_XD 08/08/08 19:12:23

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 :(

frankmerlos 08/08/08 20:25:55

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.

DavidXD_XD 08/08/08 21:23:41

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 ...


aldape 11/08/08 15:59:21

Hola! muchas gracias por su apoyo!..

problema resuelto :P (Next!!!)


saludos!


Husos Horarios son GMT. La hora en este momento es 13:27:44.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web