<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Dyanamic Internal table in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/dyanamic-internal-table/m-p/2379712#M528034</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My internal table structure will be changing every time based on the input user inputs.Some times it may have 10 fields some times it may have 20 fields hope the only solution is using dynamic internal table .Can any one send me how to create dynamic internal table.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 12 Jun 2007 06:22:04 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-12T06:22:04Z</dc:date>
    <item>
      <title>Dyanamic Internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dyanamic-internal-table/m-p/2379712#M528034</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My internal table structure will be changing every time based on the input user inputs.Some times it may have 10 fields some times it may have 20 fields hope the only solution is using dynamic internal table .Can any one send me how to create dynamic internal table.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:22:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dyanamic-internal-table/m-p/2379712#M528034</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T06:22:04Z</dc:date>
    </item>
    <item>
      <title>Re: Dyanamic Internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dyanamic-internal-table/m-p/2379713#M528035</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this Weblog by Rich.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/people/rich.heilman2/blog/2005/07/27/dynamic-internal-tables-and-structures--abap&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Atish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:25:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dyanamic-internal-table/m-p/2379713#M528035</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T06:25:17Z</dc:date>
    </item>
    <item>
      <title>Re: Dyanamic Internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dyanamic-internal-table/m-p/2379714#M528036</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi raghvendra ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i had one report regarding dynamic itab,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;just copy this code paste in your se38 report and debugg to know the functionality,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZMM_SUPP_FORE_R&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report  zmm_supp_fore_r no standard page heading message-id zsmep.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;Purpose:&lt;/P&gt;&lt;P&gt;*&amp;amp;        This report will provide a summary of the materials and their&lt;/P&gt;&lt;P&gt;*&amp;amp;  associated forecast for a supplier.&lt;/P&gt;&lt;P&gt;*&amp;amp;  Based upon the entered selection parameters, the report will display&lt;/P&gt;&lt;P&gt;*&amp;amp;  a listing of the materials associated with the supplier for each&lt;/P&gt;&lt;P&gt;*&amp;amp;  requirements exists.  A single line will be provided for each material.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*types declaration...&lt;/P&gt;&lt;P&gt;types: begin of t_tab_marc,&lt;/P&gt;&lt;P&gt;       matnr type matnr,&lt;/P&gt;&lt;P&gt;       werks type werks_d,&lt;/P&gt;&lt;P&gt;       ekgrp type ekgrp.&lt;/P&gt;&lt;P&gt;types: end of t_tab_marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types: begin of t_tab_t024,&lt;/P&gt;&lt;P&gt;       ekgrp type ekgrp,&lt;/P&gt;&lt;P&gt;       eknam type eknam.&lt;/P&gt;&lt;P&gt;types: end of t_tab_t024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types: begin of t_tab_globe,&lt;/P&gt;&lt;P&gt;        matnr  type  matnr,&lt;/P&gt;&lt;P&gt;        maktx  type  maktx,&lt;/P&gt;&lt;P&gt;        ekgrp  type  ekgrp,&lt;/P&gt;&lt;P&gt;        eknam  type  eknam,&lt;/P&gt;&lt;P&gt;        pln_q  type  mng01,&lt;/P&gt;&lt;P&gt;        sal_r  type  mng01,&lt;/P&gt;&lt;P&gt;        pro_r  type  mng01.&lt;/P&gt;&lt;P&gt;types:  end of t_tab_globe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;type-pools: slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;field-symbols: &amp;lt;dyn_table&amp;gt; type standard table,&lt;/P&gt;&lt;P&gt;               &amp;lt;dyn_wa&amp;gt;,&lt;/P&gt;&lt;P&gt;               &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;*data statements declaration...&lt;/P&gt;&lt;P&gt;data: g_tab_marc type table of t_tab_marc,&lt;/P&gt;&lt;P&gt;      g_wa_marc  type t_tab_marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: g_tab_t024 type table of t_tab_t024,&lt;/P&gt;&lt;P&gt;      g_wa_t024  type t_tab_t024.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: g_tab_globe type table of t_tab_globe,&lt;/P&gt;&lt;P&gt;      g_wa_globe  type t_tab_globe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: g_ven_name   type lfa1-name1,&lt;/P&gt;&lt;P&gt;      g_plant_name type t001w-name1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: g_tab_mt61d type table of mt61d,&lt;/P&gt;&lt;P&gt;      g_wa_mt61d  type mt61d,&lt;/P&gt;&lt;P&gt;      g_crpes     like crpes,&lt;/P&gt;&lt;P&gt;      g_pastdue   type  mdps-mng01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: "g_wa_globe TYPE ty_final_s,&lt;/P&gt;&lt;P&gt;      gv_vendor type lfa1-name1,&lt;/P&gt;&lt;P&gt;      gv_plant type t001w-name1,&lt;/P&gt;&lt;P&gt;      gv_period,&lt;/P&gt;&lt;P&gt;      gv_perhdr type dd03p-reptext,&lt;/P&gt;&lt;P&gt;      gv_count type i,&lt;/P&gt;&lt;P&gt;      gv_lastwk type kweek,&lt;/P&gt;&lt;P&gt;      gv_frstwk type kweek,&lt;/P&gt;&lt;P&gt;      gv_frstqt type kweek,&lt;/P&gt;&lt;P&gt;      gv_lastqt type kweek,&lt;/P&gt;&lt;P&gt;      gv_pastdue type  mdps-mng01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: i_fromdate type sydatum.&lt;/P&gt;&lt;P&gt;data: i_mdkex type table of mdke.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: s_date type range of sy-datum,&lt;/P&gt;&lt;P&gt;      s_date_line like line of s_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: report type sy-repid,&lt;/P&gt;&lt;P&gt;      l_pos type i,&lt;/P&gt;&lt;P&gt;      l_tab_fieldcatlog  type slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      lt_fieldcatlog type table of lvc_s_fcat,&lt;/P&gt;&lt;P&gt;      wa_fieldcat type lvc_s_fcat,&lt;/P&gt;&lt;P&gt;      l_list_top_of_page type slis_t_listheader,&lt;/P&gt;&lt;P&gt;      g_variant          like disvariant,&lt;/P&gt;&lt;P&gt;      g_events           type slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: l_wa_fieldcatlog type slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: l_tab_mdke  type table of mdke,&lt;/P&gt;&lt;P&gt;        l_wa_mdke   type mdke,&lt;/P&gt;&lt;P&gt;        l_tab_mdpsx type table of mdps with header line,&lt;/P&gt;&lt;P&gt;        l_wa_mdpsx  type mdps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*constants declaration...&lt;/P&gt;&lt;P&gt;constants: c_top_of_page type slis_formname value 'TOP_OF_PAGE',&lt;/P&gt;&lt;P&gt;           c_formname_top_of_page type slis_formname value 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*selection-screen declaration...&lt;/P&gt;&lt;P&gt;selection-screen: begin of block b1 with frame title text-001,&lt;/P&gt;&lt;P&gt;                  begin of block b2 with frame.&lt;/P&gt;&lt;P&gt;parameters:       p_lifnr type lfa1-lifnr obligatory,&lt;/P&gt;&lt;P&gt;                  p_werks type marc-werks obligatory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;selection-screen comment 1(20) for field p_fromdt.&lt;/P&gt;&lt;P&gt;selection-screen position 31.&lt;/P&gt;&lt;P&gt;parameters :     p_fromdt type sy-datum obligatory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen position 50.&lt;/P&gt;&lt;P&gt;selection-screen comment 50(10) for field p_todt.&lt;/P&gt;&lt;P&gt;parameters :     p_todt   type sy-datum obligatory.&lt;/P&gt;&lt;P&gt;selection-screen end of line.&lt;/P&gt;&lt;P&gt;selection-screen:end of block b2,&lt;/P&gt;&lt;P&gt;                 begin of block b3 with frame title text-002.&lt;/P&gt;&lt;P&gt;parameters:      p_qua radiobutton group gr,&lt;/P&gt;&lt;P&gt;                 p_mon radiobutton group gr,&lt;/P&gt;&lt;P&gt;                 p_wee radiobutton group gr.&lt;/P&gt;&lt;P&gt;selection-screen:end of block b3,&lt;/P&gt;&lt;P&gt;                 end of block b1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if p_fromdt gt p_todt.&lt;/P&gt;&lt;P&gt;    message e123(zsmep).&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*start-of-selection event...&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*call function module md_selection_mdkp...&lt;/P&gt;&lt;P&gt;  perform call_fm_mdkp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*get the header details...&lt;/P&gt;&lt;P&gt;  perform head_dtls.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*move to the GLOBE table...&lt;/P&gt;&lt;P&gt;  perform move_globe_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*calculating quantity and requirements...&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM calc_quan.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*header details of the alv grid....&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM build_eventcatalog USING g_events[].&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform build_comment using l_list_top_of_page[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*display the output in alv grid...&lt;/P&gt;&lt;P&gt;  perform alv_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  call_fm_mdkp&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form call_fm_mdkp .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'MD_SELECTION_MDKP'&lt;/P&gt;&lt;P&gt;   exporting&lt;/P&gt;&lt;P&gt;     iwerks                  = p_werks&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IBERID                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IDISPO                   =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     ilifnr                  = p_lifnr&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IMPOBJ                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IMAOBJ                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DISPLAY_LIST_MDKEX       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      mdkex                  = l_tab_mdke .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not l_tab_mdke[] is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fetch the data from marc....&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select matnr&lt;/P&gt;&lt;P&gt;           werks&lt;/P&gt;&lt;P&gt;           ekgrp&lt;/P&gt;&lt;P&gt;           from marc&lt;/P&gt;&lt;P&gt;           into table g_tab_marc&lt;/P&gt;&lt;P&gt;           for all entries in l_tab_mdke&lt;/P&gt;&lt;P&gt;           where&lt;/P&gt;&lt;P&gt;           matnr = l_tab_mdke-matnr&lt;/P&gt;&lt;P&gt;           and&lt;/P&gt;&lt;P&gt;           werks = p_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fetch the data from t024....&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select ekgrp&lt;/P&gt;&lt;P&gt;           eknam&lt;/P&gt;&lt;P&gt;           from t024&lt;/P&gt;&lt;P&gt;           into table g_tab_t024&lt;/P&gt;&lt;P&gt;           for all entries in g_tab_marc&lt;/P&gt;&lt;P&gt;           where&lt;/P&gt;&lt;P&gt;           ekgrp = g_tab_marc-ekgrp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.                    " call_fm_mdkp&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  head_dtls&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form head_dtls .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select single name1 from lfa1&lt;/P&gt;&lt;P&gt;                      into g_ven_name&lt;/P&gt;&lt;P&gt;                      where&lt;/P&gt;&lt;P&gt;                      lifnr = p_lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select single name1 from t001w&lt;/P&gt;&lt;P&gt;                      into g_plant_name&lt;/P&gt;&lt;P&gt;                      where&lt;/P&gt;&lt;P&gt;                      werks = p_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " head_dtls&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  move_globe_itab&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form move_globe_itab .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at l_tab_mdke  into l_wa_mdke .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    move: l_wa_mdke-matnr to g_wa_globe-matnr,&lt;/P&gt;&lt;P&gt;          l_wa_mdke-maktx to g_wa_globe-maktx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table g_tab_marc into g_wa_marc with key matnr = l_wa_mdke-matnr.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;      move  g_wa_marc-ekgrp to g_wa_globe-ekgrp.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table g_tab_t024 into g_wa_t024 with key ekgrp = g_wa_globe-ekgrp.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;      move  g_wa_t024-eknam to g_wa_globe-eknam.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    append g_wa_globe to g_tab_globe.&lt;/P&gt;&lt;P&gt;    clear: g_wa_t024,g_wa_mt61d,g_wa_globe.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.                    " move_globe_itab&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  alv_grid&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form alv_grid .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform call_fieldcat.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; calculating quantity and requirements...&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform calc_quan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform call_alv_grid.&lt;/P&gt;&lt;P&gt;endform.                    " alv_grid&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_fieldcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form call_fieldcat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform build_catlog using l_pos 'G_TAB_GLOBE' 'MATNR' '18' text-010.&lt;/P&gt;&lt;P&gt;  perform build_catlog using l_pos 'G_TAB_GLOBE' 'MAKTX' '40' text-011.&lt;/P&gt;&lt;P&gt;  perform build_catlog using l_pos 'G_TAB_GLOBE' 'EKGRP' '10' text-012.&lt;/P&gt;&lt;P&gt;  perform build_catlog using l_pos 'G_TAB_GLOBE' 'EKNAM' '20' text-013.&lt;/P&gt;&lt;P&gt;  perform build_catlog using l_pos 'G_TAB_GLOBE' 'PLN_Q' '10' text-014.&lt;/P&gt;&lt;P&gt;  perform dyn_column.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform build_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at lt_fieldcatlog into wa_fieldcat .&lt;/P&gt;&lt;P&gt;    move-corresponding wa_fieldcat to l_wa_fieldcatlog.&lt;/P&gt;&lt;P&gt;    move wa_fieldcat-reptext to l_wa_fieldcatlog-reptext_ddic.&lt;/P&gt;&lt;P&gt;    append l_wa_fieldcatlog to l_tab_fieldcatlog.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.                    " build_fieldcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_catlog&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_L_POS  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0439   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0440   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0441   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_TEXT_010  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_catlog  using    u_pos         type any&lt;/P&gt;&lt;P&gt;                            value(u_0439) type any&lt;/P&gt;&lt;P&gt;                            value(u_0440) type any&lt;/P&gt;&lt;P&gt;                            value(u_0441) type any&lt;/P&gt;&lt;P&gt;                            u_text        type any.&lt;/P&gt;&lt;P&gt;  add 1 to u_pos.&lt;/P&gt;&lt;P&gt;  if  u_0440  eq 'MATNR' .&lt;/P&gt;&lt;P&gt;    wa_fieldcat-hotspot = 'X' .&lt;/P&gt;&lt;P&gt;    wa_fieldcat-key     = 'X' .&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    clear:  wa_fieldcat-hotspot, wa_fieldcat-key .&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; wa_fieldcat-col_pos         = u_pos.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_fieldcat-tabname         = u_0439.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname       = u_0440.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-outputlen       = u_0441.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-reptext         = u_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  append wa_fieldcat to lt_fieldcatlog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " build_catlog&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  call_alv_grid&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form call_alv_grid .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: l_wa_events LIKE LINE OF g_events.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR: g_events.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; l_wa_events-name = slis_ev_top_of_page.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; l_wa_events-form = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND l_wa_events TO g_events.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  report = sy-repid.&lt;/P&gt;&lt;P&gt;  if &amp;lt;dyn_table&amp;gt;[] is initial.&lt;/P&gt;&lt;P&gt;    message i024(zsmep).&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    call function 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_INTERFACE_CHECK                 = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BYPASSING_BUFFER                = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BUFFER_ACTIVE                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    i_callback_program                = report&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_CALLBACK_PF_STATUS_SET          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  i_callback_user_command           = 'USER_COMMAND'&lt;/P&gt;&lt;P&gt;  i_callback_top_of_page            = 'TOP_OF_PAGE'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  i_callback_html_top_of_page       = 'TOP_OF_PAGE'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_CALLBACK_HTML_END_OF_LIST       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_STRUCTURE_NAME                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BACKGROUND_ID                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_GRID_TITLE                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_GRID_SETTINGS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_LAYOUT                         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    it_fieldcat                       = l_tab_fieldcatlog[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EXCLUDING                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_SPECIAL_GROUPS                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_SORT                           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_FILTER                         =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_SEL_HIDE                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_DEFAULT                         = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  i_save                            = 'X'&lt;/P&gt;&lt;P&gt;  is_variant                        = g_variant&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  it_events                         = g_events[]&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EVENT_EXIT                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_PRINT                          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_REPREP_ID                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_START_COLUMN             = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_START_LINE               = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_END_COLUMN               = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_END_LINE                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_HTML_HEIGHT_TOP                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_HTML_HEIGHT_END                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_ALV_GRAPHICS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_HYPERLINK                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_ADD_FIELDCAT                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EXCEPT_QINFO                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IR_SALV_FULLSCREEN_ADAPTER        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  E_EXIT_CAUSED_BY_CALLER           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ES_EXIT_CAUSED_BY_USER            =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   tables&lt;/P&gt;&lt;P&gt;     t_outtab                          = &amp;lt;dyn_table&amp;gt;&lt;/P&gt;&lt;P&gt;  exceptions&lt;/P&gt;&lt;P&gt;  program_error                     = 1&lt;/P&gt;&lt;P&gt;  others                            = 2&lt;/P&gt;&lt;P&gt;           .&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " call_alv_grid&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form top_of_page .&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_logo             = 'ENJOYSAP_LOGO'&lt;/P&gt;&lt;P&gt;      it_list_commentary = l_list_top_of_page.&lt;/P&gt;&lt;P&gt;endform.                    "TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_comment&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_G_LIST_TOP_OF_PAGE[]  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_comment  using    pc_top_of_page type slis_t_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data:   l_line       type slis_listheader,&lt;/P&gt;&lt;P&gt;          l_vendornum  type string,&lt;/P&gt;&lt;P&gt;          l_vendorname type string,&lt;/P&gt;&lt;P&gt;          l_plant      type string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh pc_top_of_page.&lt;/P&gt;&lt;P&gt;  clear l_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  concatenate 'Vendor:' p_lifnr into l_vendornum&lt;/P&gt;&lt;P&gt;                              separated by space.&lt;/P&gt;&lt;P&gt;  l_line-typ = 'S'.&lt;/P&gt;&lt;P&gt;  l_line-info = l_vendornum.&lt;/P&gt;&lt;P&gt;  append l_line to pc_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  concatenate 'Name:' g_ven_name into l_vendorname&lt;/P&gt;&lt;P&gt;                                separated by space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear l_line.&lt;/P&gt;&lt;P&gt;  l_line-typ = 'S'.&lt;/P&gt;&lt;P&gt;  l_line-info = l_vendorname.&lt;/P&gt;&lt;P&gt;  append l_line to pc_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  concatenate 'Plant:' p_werks l_plant into l_plant&lt;/P&gt;&lt;P&gt;                                 separated by space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear l_line.&lt;/P&gt;&lt;P&gt;  l_line-typ = 'S'.&lt;/P&gt;&lt;P&gt;  l_line-info = l_plant.&lt;/P&gt;&lt;P&gt;  append l_line to pc_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear l_line.&lt;/P&gt;&lt;P&gt;  l_line-typ = 'S'.&lt;/P&gt;&lt;P&gt;  l_line-info = 'S.R: Sales Requirements'.&lt;/P&gt;&lt;P&gt;  append l_line to pc_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear l_line.&lt;/P&gt;&lt;P&gt;  l_line-typ = 'S'.&lt;/P&gt;&lt;P&gt;  l_line-info = 'P.R: Production Requirements'.&lt;/P&gt;&lt;P&gt;  append l_line to pc_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " build_comment&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_eventcatalog&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_G_EVENTS[]  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_eventcatalog  using    pc_events type slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_events type slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_list_type = 0&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      et_events   = pc_events.&lt;/P&gt;&lt;P&gt;  read table pc_events with key name = c_top_of_page&lt;/P&gt;&lt;P&gt;                       into l_events.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    move c_formname_top_of_page to l_events-form.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MODIFY pc_events FROM l_events INDEX sy-tabix.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    append l_events to pc_events.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " build_eventcatalog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  user_command&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;UCOMM      text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;SELFIELD   text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form user_command using ucomm like sy-ucomm&lt;/P&gt;&lt;P&gt;                       selfield type slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: p_prreg type t158-prreg,&lt;/P&gt;&lt;P&gt;          l_matnr type matnr.&lt;/P&gt;&lt;P&gt;  p_prreg = 'ZN'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table &amp;lt;dyn_table&amp;gt; into &amp;lt;dyn_wa&amp;gt; index selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_matnr = &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; HIDE p_werks.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  check sy-subrc = 0.&lt;/P&gt;&lt;P&gt;  case ucomm.&lt;/P&gt;&lt;P&gt;    when '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;      if selfield-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;        set parameter id 'MAT' field l_matnr.&lt;/P&gt;&lt;P&gt;        set parameter id 'WRK' field p_werks.&lt;/P&gt;&lt;P&gt;        call transaction 'MD04' and skip first screen.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;endform.                    "USER_COMMAND&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  dyn_column&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form dyn_column.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: lv_monate type f,&lt;/P&gt;&lt;P&gt;        lv_month(2),&lt;/P&gt;&lt;P&gt;        lv_year(4),&lt;/P&gt;&lt;P&gt;        lv_quart(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not p_wee is initial.&lt;/P&gt;&lt;P&gt;    call function 'DATE_GET_WEEK'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       date = p_enddat&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         date = p_todt&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        week = gv_lastwk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'DATE_GET_WEEK'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       date = i_fromdate&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         date = p_fromdt&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        week = gv_frstwk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  elseif not p_mon is initial.&lt;/P&gt;&lt;P&gt;    call function 'MONTHS_BETWEEN_TWO_DATES'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       i_datum_bis   = p_enddat&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       i_datum_von   = i_fromdate&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;        i_datum_bis = p_todt&lt;/P&gt;&lt;P&gt;        i_datum_von = p_fromdt&lt;/P&gt;&lt;P&gt;        i_kz_incl_bis = ' '&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        e_monate      = lv_monate.&lt;/P&gt;&lt;P&gt;    gv_count  =  lv_monate.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   lv_month = i_fromdate+4(2).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   lv_year  = i_fromdate+0(4).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    lv_month = p_fromdt+4(2).&lt;/P&gt;&lt;P&gt;    lv_year  = p_fromdt+0(4).&lt;/P&gt;&lt;P&gt;    case lv_month.&lt;/P&gt;&lt;P&gt;      when '01' or '02' or '03'.&lt;/P&gt;&lt;P&gt;        lv_quart = '01'.&lt;/P&gt;&lt;P&gt;      when '04' or '05' or '06'.&lt;/P&gt;&lt;P&gt;        lv_quart = '02'.&lt;/P&gt;&lt;P&gt;      when '07' or '08' or '09'.&lt;/P&gt;&lt;P&gt;        lv_quart = '03'.&lt;/P&gt;&lt;P&gt;      when others.&lt;/P&gt;&lt;P&gt;        lv_quart = '04'.&lt;/P&gt;&lt;P&gt;    endcase.&lt;/P&gt;&lt;P&gt;    concatenate lv_year lv_quart into gv_frstqt.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   lv_month = p_enddat+4(2).&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   lv_year  = p_enddat+0(4).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    lv_month = p_todt+4(2).&lt;/P&gt;&lt;P&gt;    lv_year  = p_todt+0(4).&lt;/P&gt;&lt;P&gt;    case lv_month.&lt;/P&gt;&lt;P&gt;      when '01' or '02' or '03'.&lt;/P&gt;&lt;P&gt;        lv_quart = '01'.&lt;/P&gt;&lt;P&gt;      when '04' or '05' or '06'.&lt;/P&gt;&lt;P&gt;        lv_quart = '02'.&lt;/P&gt;&lt;P&gt;      when '07' or '08' or '09'.&lt;/P&gt;&lt;P&gt;        lv_quart = '03'.&lt;/P&gt;&lt;P&gt;      when others.&lt;/P&gt;&lt;P&gt;        lv_quart = '04'.&lt;/P&gt;&lt;P&gt;    endcase.&lt;/P&gt;&lt;P&gt;    concatenate lv_year lv_quart into gv_lastqt.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not p_qua is initial.&lt;/P&gt;&lt;P&gt;    gv_period = 'Q'.&lt;/P&gt;&lt;P&gt;  elseif not p_mon is initial.&lt;/P&gt;&lt;P&gt;    gv_period = 'M'.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    gv_period = 'W'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  i_fromdate = p_fromdt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " dyn_column&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_report&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form build_report .&lt;/P&gt;&lt;P&gt;  data: index(3) type c.&lt;/P&gt;&lt;P&gt;  data: lv_fromdate type sy-datum,&lt;/P&gt;&lt;P&gt;        lv_todate   type sy-datum.&lt;/P&gt;&lt;P&gt;  data: lv_strtper(2) type c.&lt;/P&gt;&lt;P&gt;  data: lv_strtyear(4) type c,&lt;/P&gt;&lt;P&gt;        lv_count type i,&lt;/P&gt;&lt;P&gt;        lv_frstwk type kweek,&lt;/P&gt;&lt;P&gt;        lv_frstqt type kweek,&lt;/P&gt;&lt;P&gt;        l_wa_fieldcatlog type lvc_s_fcat,&lt;/P&gt;&lt;P&gt;        new_line type ref to data,&lt;/P&gt;&lt;P&gt;        new_table type ref to data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR g_wa_globe.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear lv_fromdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  move i_fromdate to lv_fromdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not p_mon is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'RP_CALC_DATE_IN_INTERVAL'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        date      = lv_fromdate&lt;/P&gt;&lt;P&gt;        days      = '00'&lt;/P&gt;&lt;P&gt;        months    = '01'&lt;/P&gt;&lt;P&gt;        signum    = '-'&lt;/P&gt;&lt;P&gt;        years     = '00'&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        calc_date = lv_fromdate.&lt;/P&gt;&lt;P&gt;    add 1 to gv_count.&lt;/P&gt;&lt;P&gt;    do gv_count times.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      call function 'RP_CALC_DATE_IN_INTERVAL'&lt;/P&gt;&lt;P&gt;        exporting&lt;/P&gt;&lt;P&gt;          date      = lv_fromdate&lt;/P&gt;&lt;P&gt;          days      = '00'&lt;/P&gt;&lt;P&gt;          months    = '01'&lt;/P&gt;&lt;P&gt;          signum    = '+'&lt;/P&gt;&lt;P&gt;          years     = '00'&lt;/P&gt;&lt;P&gt;        importing&lt;/P&gt;&lt;P&gt;          calc_date = lv_fromdate.&lt;/P&gt;&lt;P&gt;      move lv_fromdate+4(2) to lv_strtper.&lt;/P&gt;&lt;P&gt;      move lv_fromdate+0(4) to lv_strtyear.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      do 2 times.&lt;/P&gt;&lt;P&gt;        index = sy-index.&lt;/P&gt;&lt;P&gt;        clear l_wa_fieldcatlog.&lt;/P&gt;&lt;P&gt;        lv_count = index mod 2.&lt;/P&gt;&lt;P&gt;        if lv_count = 1.&lt;/P&gt;&lt;P&gt;          concatenate 'SR' '_' gv_period lv_strtper '_' lv_strtyear into l_wa_fieldcatlog-fieldname .&lt;/P&gt;&lt;P&gt;          concatenate lv_strtper '/' lv_strtyear into l_wa_fieldcatlog-reptext.&lt;/P&gt;&lt;P&gt;          concatenate 'S.R' gv_period l_wa_fieldcatlog-reptext&lt;/P&gt;&lt;P&gt;                                into l_wa_fieldcatlog-reptext separated by space.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          concatenate 'PR' '_' gv_period lv_strtper '_' lv_strtyear into l_wa_fieldcatlog-fieldname .&lt;/P&gt;&lt;P&gt;          concatenate lv_strtper '/' lv_strtyear into l_wa_fieldcatlog-reptext.&lt;/P&gt;&lt;P&gt;          concatenate 'P.R' gv_period l_wa_fieldcatlog-reptext&lt;/P&gt;&lt;P&gt;                                into l_wa_fieldcatlog-reptext separated by space.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        condense l_wa_fieldcatlog-fieldname no-gaps.&lt;/P&gt;&lt;P&gt;        l_wa_fieldcatlog-datatype = 'CHAR'.&lt;/P&gt;&lt;P&gt;        l_wa_fieldcatlog-intlen = 16.&lt;/P&gt;&lt;P&gt;        l_wa_fieldcatlog-outputlen = 14.&lt;/P&gt;&lt;P&gt;        append l_wa_fieldcatlog to lt_fieldcatlog.&lt;/P&gt;&lt;P&gt;      enddo.&lt;/P&gt;&lt;P&gt;    enddo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  elseif not p_wee is initial.&lt;/P&gt;&lt;P&gt;    clear gv_count.&lt;/P&gt;&lt;P&gt;    lv_frstwk = gv_frstwk.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   lv_frstwk = lv_frstwk - 1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    do.&lt;/P&gt;&lt;P&gt;      add 1 to gv_count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      move lv_frstwk+4(2) to lv_strtper.&lt;/P&gt;&lt;P&gt;      move lv_frstwk+0(4) to lv_strtyear.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      do 2 times.&lt;/P&gt;&lt;P&gt;        index = sy-index.&lt;/P&gt;&lt;P&gt;        clear l_wa_fieldcatlog.&lt;/P&gt;&lt;P&gt;        lv_count = index mod 2.&lt;/P&gt;&lt;P&gt;        if lv_count = 1.&lt;/P&gt;&lt;P&gt;          concatenate 'SR' '_' gv_period lv_strtper '_' lv_strtyear into l_wa_fieldcatlog-fieldname .&lt;/P&gt;&lt;P&gt;          concatenate lv_strtper '/' lv_strtyear into l_wa_fieldcatlog-reptext.&lt;/P&gt;&lt;P&gt;          concatenate 'S.R' gv_period l_wa_fieldcatlog-reptext&lt;/P&gt;&lt;P&gt;                                into l_wa_fieldcatlog-reptext separated by space.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          concatenate 'PR' '_' gv_period lv_strtper '_' lv_strtyear into l_wa_fieldcatlog-fieldname .&lt;/P&gt;&lt;P&gt;          concatenate lv_strtper '/' lv_strtyear into l_wa_fieldcatlog-reptext.&lt;/P&gt;&lt;P&gt;          concatenate 'P.R' gv_period l_wa_fieldcatlog-reptext&lt;/P&gt;&lt;P&gt;                                into l_wa_fieldcatlog-reptext separated by space.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        condense l_wa_fieldcatlog-fieldname no-gaps.&lt;/P&gt;&lt;P&gt;        l_wa_fieldcatlog-datatype = 'CHAR'.&lt;/P&gt;&lt;P&gt;        l_wa_fieldcatlog-intlen = 16.&lt;/P&gt;&lt;P&gt;        l_wa_fieldcatlog-outputlen = 14.&lt;/P&gt;&lt;P&gt;        append l_wa_fieldcatlog to lt_fieldcatlog.&lt;/P&gt;&lt;P&gt;      enddo.&lt;/P&gt;&lt;P&gt;      if lv_frstwk = gv_lastwk.&lt;/P&gt;&lt;P&gt;        exit.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      call function 'NEXT_WEEK'&lt;/P&gt;&lt;P&gt;        exporting&lt;/P&gt;&lt;P&gt;          current_week = lv_frstwk&lt;/P&gt;&lt;P&gt;        importing&lt;/P&gt;&lt;P&gt;          next_week    = lv_frstwk&lt;/P&gt;&lt;P&gt;          monday       = lv_fromdate&lt;/P&gt;&lt;P&gt;          sunday       = lv_todate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    enddo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear gv_count.&lt;/P&gt;&lt;P&gt;    lv_frstqt = gv_frstqt - 1.&lt;/P&gt;&lt;P&gt;    do.&lt;/P&gt;&lt;P&gt;      add 1 to gv_count.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      add 1 to lv_frstqt.&lt;/P&gt;&lt;P&gt;      if lv_frstqt+4(2) &amp;gt; 4.&lt;/P&gt;&lt;P&gt;        lv_frstqt&lt;EM&gt;0(4) = lv_frstqt&lt;/EM&gt;0(4) + 1.&lt;/P&gt;&lt;P&gt;        lv_frstqt+4(2) = 1.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      move lv_frstqt+4(2) to lv_strtper.&lt;/P&gt;&lt;P&gt;      move lv_frstqt+0(4) to lv_strtyear.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      do 2 times.&lt;/P&gt;&lt;P&gt;        index = sy-index.&lt;/P&gt;&lt;P&gt;        clear l_wa_fieldcatlog.&lt;/P&gt;&lt;P&gt;        lv_count = index mod 2.&lt;/P&gt;&lt;P&gt;        if lv_count = 1.&lt;/P&gt;&lt;P&gt;          concatenate 'SR' '_' gv_period lv_strtper '_' lv_strtyear into l_wa_fieldcatlog-fieldname .&lt;/P&gt;&lt;P&gt;          concatenate lv_strtper '/' lv_strtyear into l_wa_fieldcatlog-reptext.&lt;/P&gt;&lt;P&gt;          concatenate 'S.R' gv_period l_wa_fieldcatlog-reptext&lt;/P&gt;&lt;P&gt;                                into l_wa_fieldcatlog-reptext separated by space.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          concatenate 'PR' '_' gv_period lv_strtper '_' lv_strtyear into l_wa_fieldcatlog-fieldname .&lt;/P&gt;&lt;P&gt;          concatenate lv_strtper '/' lv_strtyear into l_wa_fieldcatlog-reptext.&lt;/P&gt;&lt;P&gt;          concatenate 'P.R' gv_period l_wa_fieldcatlog-reptext&lt;/P&gt;&lt;P&gt;                                into l_wa_fieldcatlog-reptext separated by space.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        condense l_wa_fieldcatlog-fieldname no-gaps.&lt;/P&gt;&lt;P&gt;        l_wa_fieldcatlog-datatype = 'CHAR'.&lt;/P&gt;&lt;P&gt;        l_wa_fieldcatlog-intlen = 16.&lt;/P&gt;&lt;P&gt;        l_wa_fieldcatlog-outputlen = 14.&lt;/P&gt;&lt;P&gt;        append l_wa_fieldcatlog to lt_fieldcatlog.&lt;/P&gt;&lt;P&gt;      enddo.&lt;/P&gt;&lt;P&gt;      if lv_frstqt = gv_lastqt.&lt;/P&gt;&lt;P&gt;        exit.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    enddo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create dynamic internal table and assign to FS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method cl_alv_table_create=&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      it_fieldcatalog = lt_fieldcatlog&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      ep_table        = new_table.&lt;/P&gt;&lt;P&gt;  assign new_table-&amp;gt;* to &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create dynamic work area and assign to FS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  create data new_line like line of &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  assign new_line-&amp;gt;* to &amp;lt;dyn_wa&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " build_report&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  calc_quan&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form calc_quan .&lt;/P&gt;&lt;P&gt;  data:   e_matnr  type  rm61r-matnr,&lt;/P&gt;&lt;P&gt;          e_werks  type  rm61r-werks,&lt;/P&gt;&lt;P&gt;          e_crpes  type  crpes,&lt;/P&gt;&lt;P&gt;          i_mt61d  type  mt61d,&lt;/P&gt;&lt;P&gt;          t_mdpsx  type standard table of mdps with header line,&lt;/P&gt;&lt;P&gt;          lv_begdt type sy-datum,&lt;/P&gt;&lt;P&gt;          lv_enddt type sy-datum,&lt;/P&gt;&lt;P&gt;          lv_curyr(4),&lt;/P&gt;&lt;P&gt;          lv_currper(2),&lt;/P&gt;&lt;P&gt;          lv_fname1 type lvc_fname,&lt;/P&gt;&lt;P&gt;          lv_fname2 type lvc_fname,&lt;/P&gt;&lt;P&gt;          index type sy-index,&lt;/P&gt;&lt;P&gt;          lv_count type i,&lt;/P&gt;&lt;P&gt;          lv_fromdate type sy-datum,&lt;/P&gt;&lt;P&gt;          lv_frstwk type kweek,&lt;/P&gt;&lt;P&gt;          lv_frstqt type kweek.&lt;/P&gt;&lt;P&gt;  data: l_index type i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at g_tab_globe into g_wa_globe.&lt;/P&gt;&lt;P&gt;    clear lv_fromdate.&lt;/P&gt;&lt;P&gt;    call function 'RP_CALC_DATE_IN_INTERVAL'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        date      = i_fromdate&lt;/P&gt;&lt;P&gt;        days      = '00'&lt;/P&gt;&lt;P&gt;        months    = '01'&lt;/P&gt;&lt;P&gt;        signum    = '-'&lt;/P&gt;&lt;P&gt;        years     = '00'&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        calc_date = lv_fromdate.&lt;/P&gt;&lt;P&gt;    lv_frstwk = gv_frstwk.&lt;/P&gt;&lt;P&gt;*BEGIN OF KKUMAR 01.17.2007&lt;/P&gt;&lt;P&gt;    call function 'LAST_WEEK'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        current_week = lv_frstwk&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        last_week    = lv_frstwk.&lt;/P&gt;&lt;P&gt;*END OF KKUMAR 01.17.2007&lt;/P&gt;&lt;P&gt;    lv_frstqt = gv_frstqt - 1.&lt;/P&gt;&lt;P&gt;    clear l_index.&lt;/P&gt;&lt;P&gt;    l_index = sy-tabix.&lt;/P&gt;&lt;P&gt;    clear: e_matnr,&lt;/P&gt;&lt;P&gt;           e_werks,&lt;/P&gt;&lt;P&gt;           i_mt61d,&lt;/P&gt;&lt;P&gt;           t_mdpsx.&lt;/P&gt;&lt;P&gt;    refresh: t_mdpsx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    e_matnr  =  g_wa_globe-matnr.&lt;/P&gt;&lt;P&gt;    e_werks = p_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'MD_ABBL_REPORTING'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        ematnr          = e_matnr&lt;/P&gt;&lt;P&gt;        ewerks          = e_werks&lt;/P&gt;&lt;P&gt;        ecrpes          = e_crpes&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        imt61d          = i_mt61d&lt;/P&gt;&lt;P&gt;      tables&lt;/P&gt;&lt;P&gt;        mdpsx           = t_mdpsx&lt;/P&gt;&lt;P&gt;      exceptions&lt;/P&gt;&lt;P&gt;        error_matmaster = 1&lt;/P&gt;&lt;P&gt;        others          = 2.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at t_mdpsx where dat00 &amp;lt; sy-datum.&lt;/P&gt;&lt;P&gt;      case t_mdpsx-delkz.&lt;/P&gt;&lt;P&gt;        when 'AR'.&lt;/P&gt;&lt;P&gt;          if t_mdpsx-plumi = '-'.&lt;/P&gt;&lt;P&gt;            gv_pastdue  = gv_pastdue - t_mdpsx-mng01.&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            gv_pastdue  = gv_pastdue + t_mdpsx-mng01.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        when 'VC' or 'VE' or 'VI' or 'VJ'.&lt;/P&gt;&lt;P&gt;          if t_mdpsx-plumi = '-'.&lt;/P&gt;&lt;P&gt;            gv_pastdue  = gv_pastdue - t_mdpsx-mng01.&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            gv_pastdue  = gv_pastdue + t_mdpsx-mng01.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;      endcase.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear: t_mdpsx, g_wa_globe-pln_q.&lt;/P&gt;&lt;P&gt;    loop at t_mdpsx where dat00 le p_todt and delkz = 'WB'.&lt;/P&gt;&lt;P&gt;      if t_mdpsx-plumi = '-'.&lt;/P&gt;&lt;P&gt;        g_wa_globe-pln_q  = g_wa_globe-pln_q - t_mdpsx-mng01.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        g_wa_globe-pln_q  = g_wa_globe-pln_q + t_mdpsx-mng01.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    assign component 'MATNR' of structure &amp;lt;dyn_wa&amp;gt; to &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;    &amp;lt;fs1&amp;gt; = g_wa_globe-matnr.&lt;/P&gt;&lt;P&gt;    assign component 'MAKTX' of structure &amp;lt;dyn_wa&amp;gt; to &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;    &amp;lt;fs1&amp;gt; = g_wa_globe-maktx.&lt;/P&gt;&lt;P&gt;    assign component 'EKGRP' of structure &amp;lt;dyn_wa&amp;gt; to &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;    &amp;lt;fs1&amp;gt; = g_wa_globe-ekgrp.&lt;/P&gt;&lt;P&gt;    assign component 'EKNAM' of structure &amp;lt;dyn_wa&amp;gt; to &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;    &amp;lt;fs1&amp;gt; = g_wa_globe-eknam.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ASSIGN COMPONENT 'PAST_DUE' OF STRUCTURE &amp;lt;dyn_wa&amp;gt; TO &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   &amp;lt;fs1&amp;gt; = gv_pastdue.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR gv_pastdue.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    assign component 'PLN_Q' of structure &amp;lt;dyn_wa&amp;gt; to &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;    &amp;lt;fs1&amp;gt; = g_wa_globe-pln_q.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    do gv_count times.&lt;/P&gt;&lt;P&gt;      if not p_mon is initial.&lt;/P&gt;&lt;P&gt;        call function 'RP_CALC_DATE_IN_INTERVAL'&lt;/P&gt;&lt;P&gt;          exporting&lt;/P&gt;&lt;P&gt;            date      = lv_fromdate&lt;/P&gt;&lt;P&gt;            days      = '00'&lt;/P&gt;&lt;P&gt;            months    = '01'&lt;/P&gt;&lt;P&gt;            signum    = '+'&lt;/P&gt;&lt;P&gt;            years     = '00'&lt;/P&gt;&lt;P&gt;          importing&lt;/P&gt;&lt;P&gt;            calc_date = lv_fromdate.&lt;/P&gt;&lt;P&gt;        move lv_fromdate+4(2) to lv_currper.&lt;/P&gt;&lt;P&gt;        move lv_fromdate+0(4) to lv_curyr.&lt;/P&gt;&lt;P&gt;        concatenate lv_curyr lv_currper '01' into lv_begdt.&lt;/P&gt;&lt;P&gt;        concatenate lv_curyr lv_currper '31' into lv_enddt.&lt;/P&gt;&lt;P&gt;      elseif not p_wee is initial.&lt;/P&gt;&lt;P&gt;        call function 'NEXT_WEEK'&lt;/P&gt;&lt;P&gt;          exporting&lt;/P&gt;&lt;P&gt;            current_week = lv_frstwk&lt;/P&gt;&lt;P&gt;          importing&lt;/P&gt;&lt;P&gt;            next_week    = lv_frstwk&lt;/P&gt;&lt;P&gt;            monday       = lv_begdt&lt;/P&gt;&lt;P&gt;            sunday       = lv_enddt.&lt;/P&gt;&lt;P&gt;        move lv_frstwk+4(2) to lv_currper.&lt;/P&gt;&lt;P&gt;        move lv_frstwk+0(4) to lv_curyr.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        add 1 to lv_frstqt.&lt;/P&gt;&lt;P&gt;        if lv_frstqt+4(2) &amp;gt; 4.&lt;/P&gt;&lt;P&gt;          lv_frstqt&lt;EM&gt;0(4) = lv_frstqt&lt;/EM&gt;0(4) + 1.&lt;/P&gt;&lt;P&gt;          lv_frstqt+4(2) = 1.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        move lv_frstqt+4(2) to lv_currper.&lt;/P&gt;&lt;P&gt;        move lv_frstqt+0(4) to lv_curyr.&lt;/P&gt;&lt;P&gt;        case lv_currper.&lt;/P&gt;&lt;P&gt;          when '01'.&lt;/P&gt;&lt;P&gt;            concatenate lv_curyr '01' '01' into lv_begdt.&lt;/P&gt;&lt;P&gt;            concatenate lv_curyr '03' '31' into lv_enddt.&lt;/P&gt;&lt;P&gt;          when '02'.&lt;/P&gt;&lt;P&gt;            concatenate lv_curyr '04' '01' into lv_begdt.&lt;/P&gt;&lt;P&gt;            concatenate lv_curyr '06' '31' into lv_enddt.&lt;/P&gt;&lt;P&gt;          when '03'.&lt;/P&gt;&lt;P&gt;            concatenate lv_curyr '07' '01' into lv_begdt.&lt;/P&gt;&lt;P&gt;            concatenate lv_curyr '09' '31' into lv_enddt.&lt;/P&gt;&lt;P&gt;          when others.&lt;/P&gt;&lt;P&gt;            concatenate lv_curyr '10' '01' into lv_begdt.&lt;/P&gt;&lt;P&gt;            concatenate lv_curyr '12' '31' into lv_enddt.&lt;/P&gt;&lt;P&gt;        endcase.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      clear: lv_fname1, lv_fname2.&lt;/P&gt;&lt;P&gt;      clear t_mdpsx.&lt;/P&gt;&lt;P&gt;      loop at t_mdpsx where&lt;/P&gt;&lt;P&gt;                        dat00 &amp;lt;= lv_enddt and dat00 &amp;gt;= lv_begdt.&lt;/P&gt;&lt;P&gt;***Need to write logic for summarizing the quantity totals&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        case t_mdpsx-delkz.&lt;/P&gt;&lt;P&gt;***Production Orders&lt;/P&gt;&lt;P&gt;          when 'AR'.&lt;/P&gt;&lt;P&gt;            if t_mdpsx-plumi = '-'.&lt;/P&gt;&lt;P&gt;              g_wa_globe-pro_r  = g_wa_globe-pro_r - t_mdpsx-mng01.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;              g_wa_globe-pro_r  = g_wa_globe-pro_r + t_mdpsx-mng01.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Sales Order&lt;/P&gt;&lt;P&gt;          when 'VC' or 'VE' or 'VI' or 'VJ'.&lt;/P&gt;&lt;P&gt;            if t_mdpsx-plumi = '-'.&lt;/P&gt;&lt;P&gt;              g_wa_globe-sal_r  = g_wa_globe-sal_r - t_mdpsx-mng01.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;              g_wa_globe-sal_r  = g_wa_globe-sal_r + t_mdpsx-mng01.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;        endcase.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;      do 2 times.&lt;/P&gt;&lt;P&gt;        index = sy-index.&lt;/P&gt;&lt;P&gt;        lv_count = index mod 2.&lt;/P&gt;&lt;P&gt;        if lv_count = 1.&lt;/P&gt;&lt;P&gt;          concatenate 'SR' '_' gv_period lv_currper '_' lv_curyr into lv_fname1 .&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          concatenate 'PR' '_' gv_period lv_currper '_' lv_curyr into lv_fname2 .&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        condense lv_fname1 no-gaps.&lt;/P&gt;&lt;P&gt;        condense lv_fname2 no-gaps.&lt;/P&gt;&lt;P&gt;      enddo.&lt;/P&gt;&lt;P&gt;      assign component lv_fname1 of structure &amp;lt;dyn_wa&amp;gt; to &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;      &amp;lt;fs1&amp;gt; = g_wa_globe-sal_r.&lt;/P&gt;&lt;P&gt;      assign component lv_fname2 of structure &amp;lt;dyn_wa&amp;gt; to &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;      &amp;lt;fs1&amp;gt; = g_wa_globe-pro_r.&lt;/P&gt;&lt;P&gt;      clear: g_wa_globe-pln_q, g_wa_globe-sal_r, g_wa_globe-pro_r.&lt;/P&gt;&lt;P&gt;    enddo.&lt;/P&gt;&lt;P&gt;    append &amp;lt;dyn_wa&amp;gt; to &amp;lt;dyn_table&amp;gt;.&lt;/P&gt;&lt;P&gt;    clear g_wa_globe.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " calc_quan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward points if helpful,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;seshu.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:27:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dyanamic-internal-table/m-p/2379714#M528036</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T06:27:25Z</dc:date>
    </item>
    <item>
      <title>Re: Dyanamic Internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dyanamic-internal-table/m-p/2379715#M528037</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;  type-pools : abap. 
  field-symbols: &amp;lt;dyn_table&amp;gt; type standard table, 
               &amp;lt;dyn_wa&amp;gt;, 
               &amp;lt;dyn_field&amp;gt;. 
  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.      **********Creates a dyanamic internal table********** 
  perform get_data. 
  perform write_out. 
  form get_structure. 
  data : idetails type abap_compdescr_tab, 
       xdetails type abap_compdescr. 
  data : ref_table_des type ref to cl_abap_structdescr. 
  * Get the structure of the table. 
  ref_table_des ?=  
      cl_abap_typedescr=&amp;gt;describe_by_name( p_table ). 
  idetails[] = ref_table_des-&amp;gt;components[]. 
    loop at idetails into xdetails. 
    clear xfc. 
    xfc-fieldname = xdetails-name . 
    xfc-datatype = xdetails-type_kind. 
    xfc-inttype = xdetails-type_kind. 
    xfc-intlen = xdetails-length. 
    xfc-decimals = xdetails-decimals. 
    append xfc to ifc. 
  endloop. 
  endform. 
  form create_dynamic_itab. 
  * Create dynamic internal table and assign to FS 
  call method cl_alv_table_create=&amp;gt;create_dynamic_table 
               exporting 
                  it_fieldcatalog = ifc 
               importing 
                  ep_table        = dy_table. 
    assign dy_table-&amp;gt;* to &amp;lt;dyn_table&amp;gt;. 
  * Create dynamic work area and assign to FS 
  create data dy_line like line of &amp;lt;dyn_table&amp;gt;. 
  assign dy_line-&amp;gt;* to &amp;lt;dyn_wa&amp;gt;. 
  endform. 
    
  form get_data. 
  * Select Data from table. 
  select * into table &amp;lt;dyn_table&amp;gt; 
             from (p_table). 
  endform. 
   Write out data from table. 
  loop at &amp;lt;dyn_table&amp;gt; into &amp;lt;dyn_wa&amp;gt;. 
    do. 
      assign component  sy-index   
         of structure &amp;lt;dyn_wa&amp;gt; to &amp;lt;dyn_field&amp;gt;. 
      if sy-subrc &amp;lt;&amp;gt; 0. 
        exit. 
      endif. 
      if sy-index = 1. 
        write:/ &amp;lt;dyn_field&amp;gt;. 
      else. 
        write: &amp;lt;dyn_field&amp;gt;. 
      endif. 
    enddo. 
  endloop.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt; Sudheer&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 06:30:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dyanamic-internal-table/m-p/2379715#M528037</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T06:30:49Z</dc:date>
    </item>
    <item>
      <title>Re: Dyanamic Internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/dyanamic-internal-table/m-p/2379716#M528038</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Show you an example:&lt;/P&gt;&lt;P&gt;*****&lt;STRONG&gt;DATA DECLARATION&lt;/STRONG&gt;****************************&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS : &amp;lt;it_final&amp;gt; TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;                &amp;lt;wa_final&amp;gt; TYPE ANY,&lt;/P&gt;&lt;P&gt;                &amp;lt;w_field&amp;gt; TYPE ANY.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;**&lt;STRONG&gt;DYNAMIC CREATION OF FIELDCATALOG&lt;/STRONG&gt;***************&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*FIRST 2 FIELDS FIELDS FIELD1 AND FIELD2 ARE CONSTANT, FIELDS OBTAINED IN THE LOOP ENDLOOP ARE DYNAMIC,&lt;/P&gt;&lt;P&gt;*LIKEWISE DYNAMIC FIELDCATALOG IS CREATED&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  wa_fieldcatalog-fieldname  = 'FIELD1'.&lt;/P&gt;&lt;P&gt;  wa_fieldcatalog-ref_table  = 'E070'.&lt;/P&gt;&lt;P&gt;  wa_fieldcatalog-outputlen  = '13'.&lt;/P&gt;&lt;P&gt;  wa_fieldcatalog-reptext    = 'Created On'.&lt;/P&gt;&lt;P&gt;  wa_fieldcatalog-seltext    = 'Created On'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcatalog TO it_fieldcatalog.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcatalog.&lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;  wa_fieldcatalog-fieldname  = 'FIELD1'.&lt;/P&gt;&lt;P&gt;  wa_fieldcatalog-ref_table  = 'E070'.&lt;/P&gt;&lt;P&gt;  wa_fieldcatalog-outputlen  = '13'.&lt;/P&gt;&lt;P&gt;  wa_fieldcatalog-reptext    = 'Created On'.&lt;/P&gt;&lt;P&gt;  wa_fieldcatalog-seltext    = 'Created On'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcatalog TO it_fieldcatalog.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcatalog.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT it_mandt WHERE mandt IN s_mandt.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'CLNT' it_mandt INTO wa_fieldcatalog-fieldname.&lt;/P&gt;&lt;P&gt;    wa_fieldcatalog-inttype    = 'NUMC'.   wa_fieldcatalog-DECIMALS = 3.    " &amp;lt;-----THIS IS IMPORTANT!!!&lt;/P&gt;&lt;P&gt;    wa_fieldcatalog-outputlen  = '14'.&lt;/P&gt;&lt;P&gt;    wa_fieldcatalog-reptext    = it_mandt.&lt;/P&gt;&lt;P&gt;    wa_fieldcatalog-seltext    = it_mandt.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    APPEND wa_fieldcatalog TO it_fieldcatalog.&lt;/P&gt;&lt;P&gt;    CLEAR :wa_fieldcatalog ,it_mandt.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*******&lt;STRONG&gt;CREATE DYNAMIC TABLE&lt;/STRONG&gt;***********************&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL METHOD cl_alv_table_create=&amp;gt;create_dynamic_table&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_fieldcatalog           = it_fieldcatalog&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      ep_table                  = new_table&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      generate_subpool_dir_full = 1&lt;/P&gt;&lt;P&gt;      OTHERS                    = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ASSIGN new_table-&amp;gt;* TO &amp;lt;it_final&amp;gt;.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;********&lt;STRONG&gt;CREATE WORK AREA&lt;/STRONG&gt;***************************&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;CREATE DATA new_line LIKE LINE OF &amp;lt;it_final&amp;gt;.&lt;/P&gt;&lt;P&gt;  ASSIGN new_line-&amp;gt;* TO &amp;lt;wa_final&amp;gt;.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;********&lt;STRONG&gt;INSERTTING WORK AREAR TO INTERNAL TABLE&lt;/STRONG&gt;*****&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    INSERT &amp;lt;wa_final&amp;gt; INTO TABLE &amp;lt;it_final&amp;gt;.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;******&lt;STRONG&gt;POPULATING DATA&lt;/STRONG&gt;******************************  &lt;/P&gt;&lt;P&gt;  LOOP.&lt;/P&gt;&lt;P&gt;   &lt;/P&gt;&lt;P&gt;   ASSIGN COMPONENT 'FIELD1' OF STRUCTURE &amp;lt;wa_final&amp;gt; TO &amp;lt;w_field&amp;gt;.&lt;/P&gt;&lt;P&gt;   &amp;lt;w_field&amp;gt; = '12345'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    ASSIGN COMPONENT 'FIELD2' OF STRUCTURE &amp;lt;wa_final&amp;gt; TO &amp;lt;w_field&amp;gt;.&lt;/P&gt;&lt;P&gt;   &amp;lt;w_field&amp;gt; = '21453DD'.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;   FIELD1 AND FIELD2 ARE COMPONENTS OF FIELDCATALOG.&lt;/P&gt;&lt;P&gt;    &lt;/P&gt;&lt;P&gt;ENDLOOP.  &lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;huch.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 12:43:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/dyanamic-internal-table/m-p/2379716#M528038</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T12:43:12Z</dc:date>
    </item>
  </channel>
</rss>

