Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Dynamic internal table

Former Member
0 Likes
432

Hi all,

I wanna create an internal table based on table name provided in parameter and also i wanna fill and use that internal table.

The code that i did till now is:

TYPES: BEGIN OF x_field,

fieldname LIKE dd03l-fieldname,

position LIKE dd03l-position,

keyflag LIKE dd03l-keyflag,

datatype LIKE dd03l-datatype,

END OF x_field.

DATA: itab type standard table of x_field,

wa type x_field.

SELECTION-SCREEN BEGIN OF LINE.

  • text-TNM - 'Table Name'

SELECTION-SCREEN COMMENT 1(25) text-TNM.

PARAMETERS: tabname LIKE dd02l-tabname DEFAULT 'ZSCARE'.

  • text-SCR - 'Selection'

SELECTION-SCREEN PUSHBUTTON 75(9) text-SCR USER-COMMAND sta1.

SELECTION-SCREEN END OF LINE.

select * from dd03l

into corresponding fields of table itab

where TABNAME = tabname.

loop at itab into wa.

write 😕 wa-fieldname.

endloop.

Tell me how to proceed further....

or any new way...

Regards,

Sachin Bhatnagar.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
398

Hi Sachin,

Your requirement is very much possible. Once Heilman worte a blog. I used the same code and it is working fine. Find the link below.

/people/rich.heilman2/blog/2005/07/27/dynamic-internal-tables-and-structures--abap

All the very best to you.

- Mohan

2 REPLIES 2
Read only

Former Member
0 Likes
398

hey here is the code..

REPORT ZREPORT_TEST.

TYPE-POOLS SLIS.

DATA:

BEGIN OF T_MARC OCCURS 0,

MATNR LIKE MARC-MATNR,

WERKS LIKE MARC-WERKS,

END OF T_MARC.

SELECT MATNR WERKS

FROM MARC

INTO TABLE T_MARC UP TO 10 ROWS.

DATA:

T_FIELDCAT TYPE LVC_T_FCAT WITH HEADER LINE,

T_FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.

data: NEW_table type ref to data.

data: new_line type ref to data.

FIELD-SYMBOLS: <l_table> TYPE table,

<l_line> TYPE ANY,

<l_field> TYPE ANY.

T_FIELDCAT-FIELDNAME = 'MATNR'.

T_FIELDCAT-REF_TABLE = 'MARC'.

APPEND T_FIELDCAT.

T_FIELDCAT-FIELDNAME = 'WERKS'.

T_FIELDCAT-REF_TABLE = 'MARC'.

APPEND T_FIELDCAT.

call method cl_alv_table_create=>create_dynamic_table

exporting

it_fieldcatalog = T_FIELDCAT[]

importing

ep_table = NEW_table .

ASSIGN new_table->* TO <l_table>.

CREATE DATA new_line LIKE LINE OF <l_table>.

ASSIGN new_line->* TO <l_line>.

ASSIGN COMPONENT 'MATNR' OF STRUCTURE <l_line> TO <l_field>.

<L_FIELD> = '12345'.

ASSIGN COMPONENT 'WERKS' OF STRUCTURE <l_line> TO <l_field>.

<L_FIELD> = '1000'.

APPEND <L_LINE> TO <L_TABLE>.

ASSIGN COMPONENT 'MATNR' OF STRUCTURE <l_line> TO <l_field>.

<L_FIELD> = '52349'.

ASSIGN COMPONENT 'WERKS' OF STRUCTURE <l_line> TO <l_field>.

<L_FIELD> = '2000'.

APPEND <L_LINE> TO <L_TABLE>.

*LOOP AT <L_TABLE> INTO <L_LINE>.

*WRITE: / <L_LINE>.

*ENDLOOP.

LOOP AT T_FIELDCAT.

T_FCAT-FIELDNAME = T_FIELDCAT-FIELDNAME.

T_FCAT-REF_TABNAME = T_FIELDCAT-REF_TABLE.

APPEND T_FCAT.

ENDLOOP.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

IT_FIELDCAT = T_FCAT[]

TABLES

t_outtab = <l_table>

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2

.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

Read only

Former Member
0 Likes
399

Hi Sachin,

Your requirement is very much possible. Once Heilman worte a blog. I used the same code and it is working fine. Find the link below.

/people/rich.heilman2/blog/2005/07/27/dynamic-internal-tables-and-structures--abap

All the very best to you.

- Mohan