Skip to Content
0
Former Member
Jul 12, 2007 at 04:23 PM

Dynamic Internal Table

97 Views

hi,

The below program was taken from the <b>SDN</b> forum, but as a beginner in abap it is difficult for me to understand the assignment of Field Symbols in this program even though the steps are clearly explained here.

So can anyone explain me ,where the internal table is dynamically created also how field symbols are actually helpful in creating the dynamic internal table in this program?.

*Data definitions

  • Tables

DATA: LT_DATA type ref to DATA.

DATA: LT_FIELDCATALOG type LVC_T_FCAT.

  • Structure

DATA: LS_FIELDCATALOG type LVC_S_FCAT.

  • Data References

DATA: NEW_LINE type ref to data,

FS_DATA type ref to data.

  • Field Symbols

FIELD-SYMBOLS: <FS_DATA> type ref to DATA,

<FS_1> type any table,

<FS_2>,

<FS_3>.

*Populating the internal table with fieldnames required for our dynamic

*internal table

LS_FIELDCATALOG-FIELDNAME = 'MANDT'.

append LS_FIELDCATALOG to LT_FIELDCATALOG.

LS_FIELDCATALOG-FIELDNAME = 'CARRID'. "Fieldname

LS_FIELDCATALOG-INTTYPE = 'C'. "Internal Type C-> Character

append LS_FIELDCATALOG to LT_FIELDCATALOG.

LS_FIELDCATALOG-FIELDNAME = 'CONNID'.

LS_FIELDCATALOG-INTTYPE = 'N'.

append LS_FIELDCATALOG to LT_FIELDCATALOG.

LS_FIELDCATALOG-FIELDNAME = 'FLDATE'.

LS_FIELDCATALOG-INTTYPE = 'D'.

append LS_FIELDCATALOG to LT_FIELDCATALOG.

LS_FIELDCATALOG-FIELDNAME = 'PRICE'.

LS_FIELDCATALOG-INTTYPE = 'P'.

append LS_FIELDCATALOG to LT_FIELDCATALOG.

LS_FIELDCATALOG-FIELDNAME = 'CURRENCY'.

LS_FIELDCATALOG-INTTYPE = 'C'.

append LS_FIELDCATALOG to LT_FIELDCATALOG.

*Calling the method CREATE_DYNAMIC_TABLE

call method cl_alv_table_create=>create_dynamic_table

exporting

it_fieldcatalog = LT_FIELDCATALOG

importing

ep_table = FS_DATA

exceptions

generate_subpool_dir_full = 1

others = 2

.

if sy-subrc <> 0.

endif.

*Assigning Field-Symbol to our dynamic internal table

assign LT_DATA to <FS_DATA>.

*Internal Table is ready, now to put data in that table

  • So <FS_1> now points to our dynamic internal table.

assign FS_DATA->* to <FS_1>.

  • Next step is to create a work area for our dynamic internal table.

create data NEW_LINE like line of <FS_1>.

  • A field-symbol to access that work area

assign NEW_LINE->* to <FS_2>.

  • And to put the data in the internal table

select

MANDT

CARRID

CONNID

FLDATE

PRICE

CURRENCY

from SFLIGHT

into corresponding fields of table <FS_1>.

  • Access contents of internal table

loop at <FS_1> assigning <FS_2>.

do 5 times.

assign component sy-index of structure <FS_2> to <FS_3>.

write: <FS_3>.

enddo.

skip 1.

endloop.

TOP-OF-PAGE.

WRITE:/5 'FUJITSU CONSULTING COMPANY' INVERSE COLOR 6,

50 SY-DATUM INVERSE COLOR 6,

70 SY-PAGNO INVERSE COLOR 6.

ULINE.

ganesh