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

How to create dynamic internal tables

Former Member
0 Likes
859

hi experts,

i am facing a problem of how to create a internal table of variable size.some what like creating dynamic arrays.

depending upon the data in the database i have to create a internal table of that size.

actually what i am exactly looking at is a internal table having a dynamic structure determining its structure at runtime.

kindly help me out.

thanks in advance.

MA

Edited by: mayank agarwal on Feb 2, 2008 8:53 AM

Edited by: mayank agarwal on Feb 2, 2008 9:06 AM

hi experts,

i am facing a problem of how to create a internal table of variable size.some what like creating dynamic arrays.

depending upon the data in the database i have to create a internal table of that size.

actually what i am exactly looking at is a internal table having a dynamic structure determining its structure at runtime.

kindly help me out.

thanks in advance.

MA

Edited by: mayank agarwal on Feb 2, 2008 8:53 AM

Edited by: mayank agarwal on Feb 2, 2008 9:06 AM

5 REPLIES 5
Read only

former_member31961
Contributor
0 Likes
823

Hi Mayank,

Check this blog, Code to create dynamic internal table and structure explained clearly.

[Dynamic IT|https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2071] [original link is broken] [original link is broken] [original link is broken];

Regards,

Shrinivas

Read only

Former Member
0 Likes
823

Hi

Check this webblog of Dynamic Internal Table

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

Regards

if help full reward points

Read only

SantoshKallem
Active Contributor
0 Likes
823

link: [http://www.saptechnical.com/Tutorials/ABAP/DynamicInternaltable/DynamicInternalTable.htm]

regards.

santhosh reddy

Read only

Former Member
0 Likes
823

Hi,

pls go through this program.

report z_dynamic.

type-pools : abap.

field-symbols: <dyn_table> type standard table,

<dyn_wa>,

<dyn_field>.

data: dy_table type ref to data,

dy_line type ref to data,

xfc type lvc_s_fcat,

ifc type lvc_t_fcat.

selection-screen begin of block b1 with frame.

parameters: p_table(30) type c default 'T001'.

selection-screen end of block b1.

start-of-selection.

perform get_structure.

perform create_dynamic_itab.

perform get_data.

perform write_out.

form create_dynamic_itab.

Create dynamic internal table and assign to FS

call method cl_alv_table_create=>create_dynamic_table

exporting

it_fieldcatalog = ifc

importing

ep_table = dy_table.

assign dy_table->* to <dyn_table>.

Create dynamic work area and assign to FS

create data dy_line like line of <dyn_table>.

assign dy_line->* to <dyn_wa>.

endform.

Regards,

Gowri sankar

if it is usful reward points

Read only

0 Likes
823

form create_fcat .

data: new_table type ref to data ,

new_line type ref to data ,

lwa_fldcat type lvc_s_fcat ,

wa_fldcat type lvc_t_fcat ,

lwa_alv_fcat like line of fcat.

*Workcenter

lv_col_post = lv_col_post + 1.

clear lwa_fldcat.

fcat-col_pos = lv_col_post.

lwa_fldcat-fieldname = 'ARBPL' .

lwa_fldcat-datatype = 'CHAR'.

lwa_fldcat-inttype = 'C'.

lwa_fldcat-intlen = '10'.

lwa_fldcat-ref_table = 'CRHD'.

lwa_fldcat-scrtext_l = 'İşyeri'.

lwa_fldcat-scrtext_m = 'İşyeri'.

lwa_fldcat-scrtext_s = 'İşyeri'.

append lwa_fldcat to wa_fldcat .

*Tanım

lv_col_post = lv_col_post + 1.

clear lwa_fldcat.

fcat-col_pos = lv_col_post.

lwa_fldcat-fieldname = 'KTEXT' .

lwa_fldcat-datatype = 'CHAR'.

lwa_fldcat-inttype = 'C'.

lwa_fldcat-intlen = '10'.

lwa_fldcat-ref_table = 'CRtx'.

lwa_fldcat-scrtext_l = 'Tanım'.

lwa_fldcat-scrtext_m = 'Tanım'.

lwa_fldcat-scrtext_s = 'Tanım'.

append lwa_fldcat to wa_fldcat .

*Gerçekleşen

lv_col_post = lv_col_post + 1.

clear lwa_fldcat.

fcat-col_pos = lv_col_post.

lwa_fldcat-fieldname = 'GMAKS' .

lwa_fldcat-datatype = 'CHAR'.

lwa_fldcat-inttype = 'C'.

lwa_fldcat-intlen = '10'.

  • LWA_FLDCAT-REF_TABLE = 'CRtx'.

lwa_fldcat-scrtext_l = 'Gerçekleşen Makine Süresi'.

lwa_fldcat-scrtext_m = 'Gerçekleşen Makine Süresi'.

lwa_fldcat-scrtext_s = 'Gerçekleşen Makine Süresi'.

append lwa_fldcat to wa_fldcat .

*Gerçekleşen

lv_col_post = lv_col_post + 1.

clear lwa_fldcat.

fcat-col_pos = lv_col_post.

lwa_fldcat-fieldname = 'GISCS' .

lwa_fldcat-datatype = 'CHAR'.

lwa_fldcat-inttype = 'C'.

lwa_fldcat-intlen = '10'.

  • LWA_FLDCAT-REF_TABLE = 'CRtx'.

lwa_fldcat-scrtext_l = 'Gerçekleşen İşçilik Süresi'.

lwa_fldcat-scrtext_m = 'Gerçekleşen İşçilik Süresi'.

lwa_fldcat-scrtext_s = 'Gerçekleşen İşçilik Süresi'.

append lwa_fldcat to wa_fldcat .

*Birim

lv_col_post = lv_col_post + 1.

clear lwa_fldcat.

fcat-col_pos = lv_col_post.

lwa_fldcat-fieldname = 'BIRIM' .

lwa_fldcat-datatype = 'CHAR'.

lwa_fldcat-inttype = 'C'.

lwa_fldcat-intlen = '4'.

  • LWA_FLDCAT-REF_TABLE = 'CRtx'.

lwa_fldcat-scrtext_l = 'Birim'.

lwa_fldcat-scrtext_m = 'Birim'.

lwa_fldcat-scrtext_s = 'Birim'.

append lwa_fldcat to wa_fldcat .

*Doluluk

lv_col_post = lv_col_post + 1.

clear lwa_fldcat.

fcat-col_pos = lv_col_post.

lwa_fldcat-fieldname = 'DLLK' .

lwa_fldcat-datatype = 'CHAR'.

lwa_fldcat-inttype = 'C'.

lwa_fldcat-intlen = '7'.

  • LWA_FLDCAT-REF_TABLE = 'CRtx'.

lwa_fldcat-scrtext_l = 'Makine Doluluk'.

lwa_fldcat-scrtext_m = 'Makine Doluluk'.

lwa_fldcat-scrtext_s = 'Makine Doluluk'.

append lwa_fldcat to wa_fldcat .

sort lt_tar1 by tarih1.

  • clear lwa_fldcat.

loop at lt_tar1.

lwa_fldcat-fieldname = lt_tar1-tarih1.

lwa_fldcat-datatype = 'QUAN'.

lwa_fldcat-inttype = 'P'.

lwa_fldcat-intlen = '000013'.

lwa_fldcat-outputlen = '000018'.

lwa_fldcat-qfieldname = 'MEINS'.

concatenate lt_tar1-tarih1 'M' into lwa_fldcat-scrtext_l .

concatenate lt_tar1-tarih1 'M' into lwa_fldcat-scrtext_m .

concatenate lt_tar1-tarih1 'M' into lwa_fldcat-scrtext_s .

append lwa_fldcat to wa_fldcat .

lwa_fldcat-fieldname = lt_tar1-isci.

lwa_fldcat-datatype = 'QUAN'.

lwa_fldcat-inttype = 'P'.

lwa_fldcat-intlen = '000013'.

lwa_fldcat-outputlen = '000018'.

lwa_fldcat-qfieldname = 'MEINS'.

concatenate lt_tar1-tarih1 'I' into lwa_fldcat-scrtext_l .

concatenate lt_tar1-tarih1 'I' into lwa_fldcat-scrtext_m .

concatenate lt_tar1-tarih1 'I' into lwa_fldcat-scrtext_s .

append lwa_fldcat to wa_fldcat .

endloop.

*-planlanan makine suresi

lv_col_post = lv_col_post + 1.

clear lwa_fldcat.

fcat-col_pos = lv_col_post.

lwa_fldcat-fieldname = 'PMAKS' .

lwa_fldcat-datatype = 'CHAR'.

lwa_fldcat-inttype = 'C'.

lwa_fldcat-intlen = '3'.

  • LWA_FLDCAT-REF_TABLE = 'CRtx'.

lwa_fldcat-scrtext_l = 'Planlanan Makine Süresi'.

lwa_fldcat-scrtext_m = 'Planlanan Makine Süresi'.

lwa_fldcat-scrtext_s = 'Planlanan Makine Süresi'.

append lwa_fldcat to wa_fldcat .

*-planlanan iscilik suresi

lv_col_post = lv_col_post + 1.

clear lwa_fldcat.

fcat-col_pos = lv_col_post.

lwa_fldcat-fieldname = 'PISCS' .

lwa_fldcat-datatype = 'CHAR'.

lwa_fldcat-inttype = 'C'.

lwa_fldcat-intlen = '3'.

  • LWA_FLDCAT-REF_TABLE = 'CRtx'.

lwa_fldcat-scrtext_l = 'Planlanan İşçilik Süresi'.

lwa_fldcat-scrtext_m = 'Planlanan İşçilik Süresi'.

lwa_fldcat-scrtext_s = 'Planlanan İşçilik Süresi'.

append lwa_fldcat to wa_fldcat .

*Doluluk2

lv_col_post = lv_col_post + 1.

clear lwa_fldcat.

fcat-col_pos = lv_col_post.

lwa_fldcat-fieldname = 'DLLK2' .

lwa_fldcat-datatype = 'CHAR'.

lwa_fldcat-inttype = 'C'.

lwa_fldcat-intlen = '7'.

  • LWA_FLDCAT-REF_TABLE = 'CRtx'.

lwa_fldcat-scrtext_l = 'Planlanan Doluluk'.

lwa_fldcat-scrtext_m = 'Planlanan Doluluk'.

lwa_fldcat-scrtext_s = 'Planlanan Doluluk'.

append lwa_fldcat to wa_fldcat .

sort lt_tar2 by tarih1.

  • clear lwa_fldcat.

loop at lt_tar2.

lwa_fldcat-fieldname = lt_tar2-tarih1.

lwa_fldcat-datatype = 'QUAN'.

lwa_fldcat-inttype = 'P'.

lwa_fldcat-intlen = '000013'.

lwa_fldcat-outputlen = '000018'.

lwa_fldcat-qfieldname = 'MEINS'.

concatenate lt_tar2-tarih1 'M' into lwa_fldcat-scrtext_l .

concatenate lt_tar2-tarih1 'M' into lwa_fldcat-scrtext_m .

concatenate lt_tar2-tarih1 'M' into lwa_fldcat-scrtext_s .

append lwa_fldcat to wa_fldcat .

lwa_fldcat-fieldname = lt_tar2-isci.

lwa_fldcat-datatype = 'QUAN'.

lwa_fldcat-inttype = 'P'.

lwa_fldcat-intlen = '000013'.

lwa_fldcat-outputlen = '000018'.

lwa_fldcat-qfieldname = 'MEINS'.

concatenate lt_tar2-tarih1 'I' into lwa_fldcat-scrtext_l .

concatenate lt_tar2-tarih1 'I' into lwa_fldcat-scrtext_m .

concatenate lt_tar2-tarih1 'I' into lwa_fldcat-scrtext_s .

append lwa_fldcat to wa_fldcat .

endloop.

  • Create internal table

  • Create dynamic internal table and assign to FS

call method cl_alv_table_create=>create_dynamic_table

EXPORTING

it_fieldcatalog = wa_fldcat

IMPORTING

ep_table = new_table.

assign new_table->* to .

  • Create dynamic work area and assign to FS

create data new_line like line of .

loop at wa_fldcat into lwa_fldcat.

move-corresponding lwa_fldcat to lwa_alv_fcat.

move: lwa_fldcat-scrtext_l to lwa_alv_fcat-seltext_l,

lwa_fldcat-scrtext_m to lwa_alv_fcat-seltext_m,

lwa_fldcat-scrtext_s to lwa_alv_fcat-seltext_s.

append lwa_alv_fcat to fcat.

endloop.

  • Meins için trik..ref tab. vermeyince conv-exit yapmıyor o yüzdden

*aşağıdaki kod eklendi.

loop at fcat where fieldname = 'MEINS'.

fcat-ref_tabname = 'MSEG'.

modify fcat.

endloop.

endform. " CREATE_FCAT