08-25-2006 9:27 AM
Hi all,
How to get the structure of an Itab dynamically.
Regards,
bala
08-25-2006 9:29 AM
Hi Krithika,
Check the class CL_ALV_TABLE_CREATE and use the method CREATE_DYNAMIC_TABLE.
To be more clear about the usage, you can check the program BCALV_TABLE_CREATE.
Cheers
JK
08-25-2006 9:36 AM
u mean to say that the itab table structure has to be dynamic. ???
u can refer the followig code.
REPORT ZDINUCOPY_DATA_FROM_CLIENTS .
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
PARAMETERS : P_CLIENT LIKE T000-MANDT OBLIGATORY,
P_TABLE(10) OBLIGATORY,
P_TARGET(10).
SELECTION-SCREEN COMMENT 45(65) TEXT-001 FOR FIELD P_TARGET.
SELECTION-SCREEN SKIP 1 .
PARAMETERS : P_DEL AS CHECKBOX.
PARAMETERS : P_INS AS CHECKBOX.
SELECTION-SCREEN END OF BLOCK B1.
DATA: GP_TABLE TYPE REF TO DATA .
FIELD-SYMBOLS: <GT_TABLE> TYPE TABLE .
FIELD-SYMBOLS: <GS_TABLE> .
DATA : I_STRUCTURE_NAME LIKE DD02L-TABNAME,
CT_FIELDCAT TYPE LVC_T_FCAT.
AT SELECTION-SCREEN.
IF P_TABLE(1) NE 'Z' AND
P_TABLE(1) NE 'Y'.
MESSAGE E000(00) WITH 'Enter a customer table'.
ENDIF.
IF P_TARGET IS INITIAL.
P_TARGET = P_TABLE.
ENDIF.
START-OF-SELECTION.
I_STRUCTURE_NAME = P_TABLE.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_CLIENT_NEVER_DISPLAY = 'X'
CHANGING
CT_FIELDCAT = CT_FIELDCAT[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3 .
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = CT_FIELDCAT
IMPORTING
EP_TABLE = GP_TABLE
EXCEPTIONS
GENERATE_SUBPOOL_DIR_FULL = 1
OTHERS = 2.
ASSIGN GP_TABLE->* TO <GT_TABLE>.
BREAK-POINT.
08-25-2006 9:39 AM
Hi,
i use this:
REPORT ZGRO_TEST.
*
TYPE-POOLS: SLIS.
*
DATA: FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: PROGNAME LIKE SY-REPID.
*
DATA: BEGIN OF IMARA OCCURS 0.
INCLUDE STRUCTURE MARA.
DATA: ebeln like ekpo-ebeln,
END OF IMARA.
*
START-OF-SELECTION.
*
PROGNAME = SY-REPID.
*
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = progname
I_INTERNAL_TABNAME = 'IMARA'
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = progname
CHANGING
CT_FIELDCAT = FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
*
LOOP AT FIELDCAT INTO WA_FIELDCAT.
*
WRITE: / WA_FIELDCAT.
*
ENDLOOP.
*
END-OF-SELECTION.
regards, dieter