<?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 Problem in ALV Tree in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-alv-tree/m-p/3296374#M788863</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Friends,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using ALV Tree to display a report.&lt;/P&gt;&lt;P&gt;In this report for a particular input.2 nodes are cerated.&lt;/P&gt;&lt;P&gt;On clicking on the 2nd node the details for the same are shown .&lt;/P&gt;&lt;P&gt;However on clicking the 1st node , the system automatically logs off closing all the SAP sessions and even the SAP Logon pad.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Suppose i am on executing the program on development server,even the sessions of test server are closed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone please help me in this.....&lt;/P&gt;&lt;P&gt;its a bit urgent.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i am attaching my code for reference.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZPRPROUTOPERATIONS1                     .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables : mapl,t001w,zroutpromast.&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis,kkblo.&lt;/P&gt;&lt;P&gt;include &amp;lt;icon&amp;gt;.&lt;/P&gt;&lt;P&gt;data : it_zrouteledtl like zrouteledtl occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data : it_zeledtl type zeledtl occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data : conv_sec(5) type c value '0.036'.&lt;/P&gt;&lt;P&gt;types : begin of it_output2,&lt;/P&gt;&lt;P&gt;       Srno like zrouteledtl-srno,&lt;/P&gt;&lt;P&gt;       srno1 type p decimals 8,&lt;/P&gt;&lt;P&gt;       subgid like zrouteledtl-subgid,&lt;/P&gt;&lt;P&gt;       subopn like zrouteledtl-subopn,&lt;/P&gt;&lt;P&gt;       movetype type zeledtl-movetype,&lt;/P&gt;&lt;P&gt;       DESC type zeledtl-description,&lt;/P&gt;&lt;P&gt;       Add_desc like zrouteledtl-DESCRIPTION,&lt;/P&gt;&lt;P&gt;       Freq type p decimals 2,&lt;/P&gt;&lt;P&gt;       div_freq type p decimals 2,&lt;/P&gt;&lt;P&gt;       men type p decimals 2,&lt;/P&gt;&lt;P&gt;       offline(3),&lt;/P&gt;&lt;P&gt;       CT type p decimals 2,&lt;/P&gt;&lt;P&gt;       CW type p decimals 2,&lt;/P&gt;&lt;P&gt;       Ideal_ct type p decimals 2,&lt;/P&gt;&lt;P&gt;       ideal_cw type p decimals 2,&lt;/P&gt;&lt;P&gt;       A_trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       b_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       g_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       p_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       m_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       t_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       i_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       Autocycle type p decimals 2,&lt;/P&gt;&lt;P&gt;       online_time type p decimals 2,&lt;/P&gt;&lt;P&gt;       offline_time type p decimals 2,&lt;/P&gt;&lt;P&gt;       online_p_time type p decimals 2,&lt;/P&gt;&lt;P&gt;       offline_p_time type p decimals 2,&lt;/P&gt;&lt;P&gt;       end of it_output2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*types : begin of it_output3,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Srno like zrouteledtl-srno,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      mop_gid like zroutdetails-MOP_GID,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      MOp_opn like zroutdetails-MOP_OPN,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      sub_gid like zpromast-subgid,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      subopn like zpromast-subopn,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      DESC like zpromast-description,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Add_desc like zroutdetails-ADD_INFO,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Freq type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      batch type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      mix type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      offline(3),&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CT type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CW type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Ideal_ct type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ideal_cw type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      A_trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      b_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      g_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      p_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      m_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      t_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      i_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Autocycle type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      online_time type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      offline_time type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      online_p_time type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      offline_p_time type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      end of it_output3.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : it_output type it_output2 occurs 0 with header line,&lt;/P&gt;&lt;P&gt;       it_output1 type it_output2 occurs 0 with header line,&lt;/P&gt;&lt;P&gt;       it_emptytab type standard table of it_output2 INITIAL SIZE 0.&lt;/P&gt;&lt;P&gt;data : a_trg type f,b_trg type f,g_trg type f,p_trg type f,m_trg type f,t_trg type f,i_trg type f,&lt;/P&gt;&lt;P&gt;       autocycle type f,online_p_time type f,offline_p_time type f.&lt;/P&gt;&lt;P&gt;data : ch1 type c,ch2.&lt;/P&gt;&lt;P&gt;DATA: ok_code like sy-ucomm,           "OK-Code&lt;/P&gt;&lt;P&gt;      save_ok like sy-ucomm.&lt;/P&gt;&lt;P&gt;data : ct_fieldcat type KKBLO_T_FIELDCAT.&lt;/P&gt;&lt;P&gt;*ALV data declarations&lt;/P&gt;&lt;P&gt;DATA: fieldcatalog  TYPE lvc_t_fcat WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gd_fieldcat   TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;      gd_tab_group  TYPE slis_t_sp_group_alv,&lt;/P&gt;&lt;P&gt;      gd_layout     TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ALVtree data declarations&lt;/P&gt;&lt;P&gt;CLASS cl_gui_column_tree DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;CLASS cl_gui_cfw DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gd_tree             TYPE REF TO cl_gui_alv_tree,&lt;/P&gt;&lt;P&gt;      gd_hierarchy_header TYPE treev_hhdr,&lt;/P&gt;&lt;P&gt;      gd_report_title     TYPE slis_t_listheader,&lt;/P&gt;&lt;P&gt;      gd_logo             TYPE sdydo_value,&lt;/P&gt;&lt;P&gt;      gd_variant          TYPE disvariant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create container for alv-tree&lt;/P&gt;&lt;P&gt;DATA: gd_tree_container_name(30) TYPE c,&lt;/P&gt;&lt;P&gt;      gd_custom_container        TYPE REF TO cl_gui_custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*data mr_toolbar type ref to cl_gui_toolbar.  "Add to top include&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of block start with frame title text-001.&lt;/P&gt;&lt;P&gt;select-options: p_gid for zroutpromast-mop_gid obligatory no-extension no intervals,&lt;/P&gt;&lt;P&gt;                p_opn for zroutpromast-mop_opn obligatory no-extension no intervals,&lt;/P&gt;&lt;P&gt;                p_werks for t001w-werks obligatory no-extension no intervals.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen end of block start.&lt;/P&gt;&lt;P&gt;*selection-screen begin of block detail with frame title text-002.&lt;/P&gt;&lt;P&gt;*parameter : radio1 radiobutton group dept default 'X',&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           radio2 radiobutton group dept.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*selection-screen end of block detail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;include ZTEST_TOOLBAR_EVENT_RECEIVER.&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALVtree setup data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM data_retrieval.&lt;/P&gt;&lt;P&gt;  PERFORM build_fieldcatalog.&lt;/P&gt;&lt;P&gt;  PERFORM build_layout.&lt;/P&gt;&lt;P&gt;  PERFORM build_hierarchy_header CHANGING gd_hierarchy_header.&lt;/P&gt;&lt;P&gt;  PERFORM build_report_title USING gd_report_title gd_logo.&lt;/P&gt;&lt;P&gt;  PERFORM build_variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display ALVtree report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call screen 100.&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  data_retrieval&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 data_retrieval .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select * from zrouteledtl into table it_zrouteledtl where mop_gid in p_gid and&lt;/P&gt;&lt;P&gt;                                                              mop_opn in p_opn&lt;/P&gt;&lt;P&gt;                                                              and werks in p_werks.&lt;/P&gt;&lt;P&gt;  if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;  message i001(0) with 'No Records Found'.&lt;/P&gt;&lt;P&gt;  leave program.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  select * from zeledtl into table it_zeledtl for all entries in it_zrouteledtl&lt;/P&gt;&lt;P&gt;                                                      where subgid = it_zrouteledtl-subgid&lt;/P&gt;&lt;P&gt;                                                      and subopn = it_zrouteledtl-subopn&lt;/P&gt;&lt;P&gt;                                                      and werks = it_zrouteledtl-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_zeledtl.&lt;/P&gt;&lt;P&gt;    it_output1-srno = it_zeledtl-srno.&lt;/P&gt;&lt;P&gt;    it_output1-srno1 = it_zeledtl-srno.&lt;/P&gt;&lt;P&gt;    it_output1-subgid = it_zeledtl-subgid.&lt;/P&gt;&lt;P&gt;    it_output1-subopn = it_zeledtl-subopn.&lt;/P&gt;&lt;P&gt;    it_output1-movetype = it_zeledtl-movetype.&lt;/P&gt;&lt;P&gt;    it_output1-desc = it_zeledtl-DESCRIPTION.&lt;/P&gt;&lt;P&gt;    it_output1-freq = it_zeledtl-frequency.&lt;/P&gt;&lt;P&gt;    it_output1-div_freq = it_zeledtl-div_freq.&lt;/P&gt;&lt;P&gt;    it_output1-men = it_zeledtl-men.&lt;/P&gt;&lt;P&gt;    it_output1-offline = it_zeledtl-offline1.&lt;/P&gt;&lt;P&gt;    it_output1-ct = it_zeledtl-cy_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output1-cw = it_zeledtl-wc_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output1-ideal_ct = it_zeledtl-cy_trg_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output1-ideal_cw = it_zeledtl-wc_trg_time * conv_sec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if it_zeledtl-men = 0.&lt;/P&gt;&lt;P&gt;    it_output-autocycle = it_zeledtl-cy_time * conv_sec.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if it_zeledtl-men ne 0 and it_zeledtl-offline1 eq 'NO'&lt;/P&gt;&lt;P&gt;          and ( it_zeledtl-movetype eq 'A' or it_zeledtl-movetype eq 'C' ).&lt;/P&gt;&lt;P&gt;    case it_zeledtl-movetype.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          when 'A'.&lt;/P&gt;&lt;P&gt;            if it_zeledtl-SIM_AUTO = 'TRUE'.&lt;/P&gt;&lt;P&gt;              ch2 = 0.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;              ch2 = 1.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            it_output-online_p_time = ( it_zeledtl-autocycle * ch2 * conv_sec ) * it_zeledtl-frequency / it_zeledtl-div_freq.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          when 'C'.&lt;/P&gt;&lt;P&gt;            if it_zeledtl-sim5 = 'TRUE'.&lt;/P&gt;&lt;P&gt;              ch1 = 0.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;              ch1 = 1.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            it_output-online_p_time =  ( it_zeledtl-index5 * it_zeledtl-par_freq5 * ch1&lt;/P&gt;&lt;P&gt;                               &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;it_zeledtl-frequency * 10 ) / it_zeledtl-div_freq  .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        endcase.&lt;/P&gt;&lt;P&gt;      elseif it_zeledtl-men ne 0 and it_zeledtl-offline1 eq 'YES'&lt;/P&gt;&lt;P&gt;              and ( it_zeledtl-movetype eq 'A' or it_zeledtl-movetype eq 'C' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        case it_zeledtl-movetype.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          when 'A'.&lt;/P&gt;&lt;P&gt;            if it_zeledtl-SIM_AUTO = 'TRUE'.&lt;/P&gt;&lt;P&gt;              ch2 = 0.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;              ch2 = 1.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            it_output1-offline_p_time = ( it_zeledtl-autocycle * ch2 * conv_sec ) * it_zeledtl-frequency / it_zeledtl-div_freq.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          when 'C'.&lt;/P&gt;&lt;P&gt;            if it_zeledtl-sim5 = 'TRUE'.&lt;/P&gt;&lt;P&gt;              ch1 = 0.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;              ch1 = 1.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            it_output-offline_p_time =  ( it_zeledtl-index5 * it_zeledtl-par_freq5 * ch1&lt;/P&gt;&lt;P&gt;                               &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;it_zeledtl-frequency * 10 ) / it_zeledtl-div_freq  .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        endcase.&lt;/P&gt;&lt;P&gt;&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;      it_output1-a_trg = it_zeledtl-TARGET_A * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-b_trg = it_zeledtl-target_B * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-g_trg = it_zeledtl-TARGET_G * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-p_trg = it_zeledtl-TARGET_P * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-M_trg = it_zeledtl-TARGET_M * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-t_trg = it_zeledtl-TARGET_T * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-i_trg = it_zeledtl-TARGET_I * conv_sec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append it_output1.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  sort it_output1 ascending by subgid subopn srno1.&lt;/P&gt;&lt;P&gt;  clear ch1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_zrouteledtl.&lt;/P&gt;&lt;P&gt;    move-corresponding it_zrouteledtl to it_output.&lt;/P&gt;&lt;P&gt;    select single description from zpromast into it_output-desc&lt;/P&gt;&lt;P&gt;                                  where subgid = it_zrouteledtl-subgid and&lt;/P&gt;&lt;P&gt;                                  subopn = it_zrouteledtl-subopn and&lt;/P&gt;&lt;P&gt;                                  werks in p_werks.&lt;/P&gt;&lt;P&gt;    it_output-add_desc = it_zrouteledtl-description.&lt;/P&gt;&lt;P&gt;    it_output-freq = it_zrouteledtl-frequency.&lt;/P&gt;&lt;P&gt;    it_output-div_freq = it_zrouteledtl-div_freq.&lt;/P&gt;&lt;P&gt;    it_output-men = it_zrouteledtl-men.&lt;/P&gt;&lt;P&gt;    it_output-ct = it_zrouteledtl-cy_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output-cw = it_zrouteledtl-wc_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output-ideal_ct = it_zrouteledtl-cy_trg_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output-ideal_cw = it_zrouteledtl-wc_trg_time * conv_sec.&lt;/P&gt;&lt;P&gt;    if it_zrouteledtl-offline1 = '1'.&lt;/P&gt;&lt;P&gt;      it_output-offline = 'No'.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      it_output-offline = 'Yes'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append it_output.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_output.&lt;/P&gt;&lt;P&gt;    if it_output-offline = 'Yes'.&lt;/P&gt;&lt;P&gt;    ch1 = 0.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;    ch1 = 1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at it_output1 where subgid = it_output-subgid and&lt;/P&gt;&lt;P&gt;                             subopn = it_output-subopn.&lt;/P&gt;&lt;P&gt;      a_trg = A_trg + it_output1-A_trg.&lt;/P&gt;&lt;P&gt;      b_Trg = b_Trg + it_output1-b_Trg.&lt;/P&gt;&lt;P&gt;      g_Trg = g_Trg + it_output1-g_Trg.&lt;/P&gt;&lt;P&gt;      p_Trg = p_Trg + it_output1-p_Trg.&lt;/P&gt;&lt;P&gt;      m_Trg = m_Trg + it_output1-m_Trg.&lt;/P&gt;&lt;P&gt;      t_Trg = t_Trg + it_output1-t_Trg.&lt;/P&gt;&lt;P&gt;      i_Trg = i_Trg + it_output1-i_Trg.&lt;/P&gt;&lt;P&gt;      autocycle = autocycle + it_output1-Autocycle.&lt;/P&gt;&lt;P&gt;      online_p_time = online_p_time + it_output1-online_p_time.&lt;/P&gt;&lt;P&gt;      offline_p_time = offline_p_time + it_output1-offline_p_time.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;      it_output-autocycle = ( autocycle * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-a_trg = ( a_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-b_trg = ( b_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-g_trg = ( g_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-p_trg = ( p_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-m_trg = ( m_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-t_trg = ( t_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-i_trg = ( i_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-online_time = ( it_output-ct - it_output-autocycle ) * ch1.&lt;/P&gt;&lt;P&gt;      it_output-offline_time = ( it_output-ct - it_output-cw ) + it_output-autocycle.&lt;/P&gt;&lt;P&gt;      it_output-online_p_time = ( online_p_time * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-offline_p_time = ( offline_p_time * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      clear : a_trg,b_trg,g_trg,p_trg,m_trg,t_trg,i_trg,online_p_time,offline_p_time,ch1,ch2,it_zeledtl,&lt;/P&gt;&lt;P&gt;              autocycle,online_p_time,offline_p_time,zroutpromast.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    modify it_output.&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;ENDFORM.                    " data_retrieval&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_fieldcatalog&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 build_fieldcatalog .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Please not there are a number of differences between the structure of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALVtree fieldcatalogs and ALVgrid fieldcatalogs.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For example the field seltext_m is replace by scrtext_m in ALVtree.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: COL_POS TYPE I VALUE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'SRNO'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Sr No.'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Sr No.'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Sr No.'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'SUBGID'.           "Field name in itab&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Sub Opn GID'.  "Column text&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Sub Opn GID'.  "Column text&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Sub Opn GID'.  "Column text&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.     "Column position&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.                "Column width&lt;/P&gt;&lt;P&gt;  fieldcatalog-emphasize   = 'X'.               "Emphasize  (X or SPACE)&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.               "Key Field? (X or SPACE)&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-do_sum      = 'X'.              "Sum Column?&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-no_zero     = 'X'.              "Don't display if zero&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'SUBOPN'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Sub Opn'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Sub Opn'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Sub Opn'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-emphasize   = 'X'.               "Emphasize  (X or SPACE)&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.               "Key Field? (X or SPACE)&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MOVETYPE'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Movetype'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Movetype'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Movetype'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'DESC'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 600.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'ADD_DESC'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Add. Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Add. Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Add. Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 100.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'FREQ'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Frequency'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Frequency'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Frequency'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'DIV_FREQ'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Div Freq'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Div Freq'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Div Freq'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MEN'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Men'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Men'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Men'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; COL_POS = COL_POS + 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-fieldname   = 'BATCH'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-SCRTEXT_L   = 'Batch/Div Freq'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-SCRTEXT_m   = 'Batch/Div Freq'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-SCRTEXT_s   = 'Batch/Div Freq'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR  fieldcatalog.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'OFFLINE'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Offline'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Offline'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Offline'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 6.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'CT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Cycle Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Cycle Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Cycle Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'CW'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Work Content'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Work Content'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Work Content'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'IDEAL_CT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Ideal CT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Ideal CT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Ideal CT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'IDEAL_CW'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Ideal CW'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Ideal CW'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Ideal CW'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'A_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target A'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target A'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target A'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'B_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target B'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target B'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target B'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'G_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target G'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target G'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target G'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'P_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target P'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target P'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target P'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'M_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target M'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target M'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target M'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'T_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target T'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target T'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target T'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'I_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target I'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target I'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target I'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'AUTOCYCLE'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'AutoCycle'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'AutoCycle'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'AutoCycle'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'ONLINE_TIME'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Online Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Online Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Online Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'OFFLINE_TIME'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Offline Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Offline Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Offline Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'ONLINE_P_TIME'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Online Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Online Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Online Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'OFFLINE_P_TIME'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Offline Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Offline Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Offline Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_fieldcatalog&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_layout&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 build_layout .&lt;/P&gt;&lt;P&gt;  gd_layout-no_input          = 'X'.&lt;/P&gt;&lt;P&gt;  gd_layout-colwidth_optimize = 'X'.&lt;/P&gt;&lt;P&gt;  gd_layout-totals_text       = 'Totals'(201).&lt;/P&gt;&lt;P&gt;  gd_layout-totals_only        = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-f2code            = 'DISP'.  "Sets fcode for when double&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                        "click(press f2)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  gd_layout-zebra             = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-group_change_edit = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-header_text       = 'helllllo'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_layout&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_hierarchy_header&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;lt;--P_GD_HIERARCHY_HEADER  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_hierarchy_header CHANGING&lt;/P&gt;&lt;P&gt;                                    p_hierarchy_header TYPE treev_hhdr.&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-heading = 'Drill Down For Detail'(022).&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-tooltip = 'This is the Hierarchy Header !'(014).&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-width = 30.&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-width_pix = ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_hierarchy_header&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_title&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_GD_REPORT_TITLE  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_GD_LOGO  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_title  using&lt;/P&gt;&lt;P&gt;                 pt_report_title  TYPE slis_t_listheader&lt;/P&gt;&lt;P&gt;                 pa_logo TYPE sdydo_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_line TYPE slis_listheader,&lt;/P&gt;&lt;P&gt;        ld_date(10) TYPE c,&lt;/P&gt;&lt;P&gt;        string1 type string,string2 type string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;List Heading Line(TYPE H)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; concatenate 'Material: ' p_matnr-low into string1 separated by space.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ls_line.&lt;/P&gt;&lt;P&gt;  ls_line-typ  = 'H'.&lt;/P&gt;&lt;P&gt;  ls_line-key  = 'MOST Operation'.&lt;/P&gt;&lt;P&gt;  concatenate p_gid-low p_opn-low into string2 separated by space.&lt;/P&gt;&lt;P&gt;  ls_line-info = string2.&lt;/P&gt;&lt;P&gt;  APPEND ls_line TO pt_report_title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_line-typ  = 'S'.&lt;/P&gt;&lt;P&gt;  ls_line-key  = 'Text'.&lt;/P&gt;&lt;P&gt;  select single DESCRIPTION from zroutpromast into string1 where mop_gid = p_gid-low&lt;/P&gt;&lt;P&gt;                                                           and mop_opn = p_opn-low&lt;/P&gt;&lt;P&gt;                                                           and werks = p_werks-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_line-info = string1.&lt;/P&gt;&lt;P&gt;  APPEND ls_line TO pt_report_title.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_line-typ  = 'S'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_line-key  = 'Routing Counter:'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_line-info = counter.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND ls_line TO pt_report_title.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;Status Line(TYPE S)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ld_date(2) = sy-datum+6(2).&lt;/P&gt;&lt;P&gt;  ld_date+2(1) = '/'.&lt;/P&gt;&lt;P&gt;  ld_date&lt;EM&gt;3(2) = sy-datum&lt;/EM&gt;4(2).&lt;/P&gt;&lt;P&gt;  ld_date+5(1) = '/'.&lt;/P&gt;&lt;P&gt;  ld_date+6(4) = sy-datum(4).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_line-typ  = 'S'.&lt;/P&gt;&lt;P&gt;  ls_line-key  = 'Date'.&lt;/P&gt;&lt;P&gt;  ls_line-info = ld_date.&lt;/P&gt;&lt;P&gt;  APPEND ls_line TO pt_report_title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Action Line(TYPE A)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR ls_line.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_line-typ  = 'A'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONCATENATE 'Report: ' sy-repid INTO ls_line-info  SEPARATED BY space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND ls_line TO pt_report_title.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_report_title&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_variant&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 build_variant .&lt;/P&gt;&lt;P&gt;  gd_variant-report = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_variant&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;      Module  STATUS_0100  OUTPUT&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;MODULE STATUS_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'STATUS1'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'ZTITLE'.&lt;/P&gt;&lt;P&gt;  IF gd_tree IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create ALVtree (must be performed within screen PBO module)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM create_alvtree_container.&lt;/P&gt;&lt;P&gt;    PERFORM create_object_in_container.&lt;/P&gt;&lt;P&gt;    PERFORM create_empty_alvtree_control.&lt;/P&gt;&lt;P&gt;    perform change_toolbar.&lt;/P&gt;&lt;P&gt;    PERFORM create_alvtree_hierarchy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " STATUS_0100  OUTPUT&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;      Module  USER_COMMAND_0100  INPUT&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;MODULE USER_COMMAND_0100 INPUT.&lt;/P&gt;&lt;P&gt;  case sy-ucomm.&lt;/P&gt;&lt;P&gt;    when 'EXIT' or 'BACK' or 'CANC'.&lt;/P&gt;&lt;P&gt;      call method gd_tree-&amp;gt;free.&lt;/P&gt;&lt;P&gt;      leave program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when others.&lt;/P&gt;&lt;P&gt;      call method cl_gui_cfw=&amp;gt;dispatch.&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;  clear ok_code.&lt;/P&gt;&lt;P&gt;  call method cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " USER_COMMAND_0100  INPUT&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  create_alvtree_container&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 create_alvtree_container .&lt;/P&gt;&lt;P&gt;  gd_tree_container_name = 'SCREEN_CONTAINER'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  create object gd_custom_container&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;            container_name = gd_tree_container_name&lt;/P&gt;&lt;P&gt;      exceptions&lt;/P&gt;&lt;P&gt;            cntl_error                  = 1&lt;/P&gt;&lt;P&gt;            cntl_system_error           = 2&lt;/P&gt;&lt;P&gt;            create_error                = 3&lt;/P&gt;&lt;P&gt;            lifetime_error              = 4&lt;/P&gt;&lt;P&gt;            lifetime_dynpro_dynpro_link = 5.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message x208(00) with 'ERROR'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_alvtree_container&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  create_object_in_container&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 create_object_in_container .&lt;/P&gt;&lt;P&gt;  create object gd_tree&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;          parent              = gd_custom_container&lt;/P&gt;&lt;P&gt;          node_selection_mode = cl_gui_column_tree=&amp;gt;node_sel_mode_single&lt;/P&gt;&lt;P&gt;          item_selection      = 'X'&lt;/P&gt;&lt;P&gt;          no_html_header      = ''&lt;/P&gt;&lt;P&gt;          no_toolbar          = ''&lt;/P&gt;&lt;P&gt;      exceptions&lt;/P&gt;&lt;P&gt;          cntl_error                   = 1&lt;/P&gt;&lt;P&gt;          cntl_system_error            = 2&lt;/P&gt;&lt;P&gt;          create_error                 = 3&lt;/P&gt;&lt;P&gt;          lifetime_error               = 4&lt;/P&gt;&lt;P&gt;          illegal_node_selection_mode  = 5&lt;/P&gt;&lt;P&gt;          failed                       = 6&lt;/P&gt;&lt;P&gt;          illegal_column_name          = 7.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message x208(00) with 'ERROR'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_object_in_container&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  create_empty_alvtree_control&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 create_empty_alvtree_control .&lt;/P&gt;&lt;P&gt;  CLEAR: it_emptytab.&lt;/P&gt;&lt;P&gt;  REFRESH: it_emptytab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD gd_tree-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;               is_hierarchy_header  = gd_hierarchy_header&lt;/P&gt;&lt;P&gt;               it_list_commentary   = gd_report_title&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              i_logo               = gd_logo&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              i_background_id      = 'ALV_BACKGROUND'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;               i_save               = 'A'&lt;/P&gt;&lt;P&gt;               is_variant            = gd_variant&lt;/P&gt;&lt;P&gt;     CHANGING&lt;/P&gt;&lt;P&gt;               it_outtab            =  it_emptytab      "Must be empty&lt;/P&gt;&lt;P&gt;               it_fieldcatalog      =  gd_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_empty_alvtree_control&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  create_alvtree_hierarchy&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 create_alvtree_hierarchy .&lt;/P&gt;&lt;P&gt;  data: ls_sflight type sflight,&lt;/P&gt;&lt;P&gt;          lt_sflight type sflight occurs 0.&lt;/P&gt;&lt;P&gt;  data: ld_mop_gid_key type lvc_nkey,&lt;/P&gt;&lt;P&gt;        ld_mop_opn_key type lvc_nkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_output.&lt;/P&gt;&lt;P&gt;    perform add_ekko_node using      it_output&lt;/P&gt;&lt;P&gt;                                     ''&lt;/P&gt;&lt;P&gt;                            changing ld_mop_gid_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at it_output1 where subgid eq it_output-subgid&lt;/P&gt;&lt;P&gt;                             and subopn eq it_output-subopn.&lt;/P&gt;&lt;P&gt;      perform add_ekpo_line using      it_output1&lt;/P&gt;&lt;P&gt;                                       ld_mop_gid_key&lt;/P&gt;&lt;P&gt;                              changing ld_mop_opn_key.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;calculate totals&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method gd_tree-&amp;gt;update_calculations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this method must be called to send the data to the frontend&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method gd_tree-&amp;gt;frontend_update.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_alvtree_hierarchy&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  add_ekko_node&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_IT_OUTPUT  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_2478   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_LD_MOP_GID_KEY  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 add_ekko_node  USING  ps_output like it_output&lt;/P&gt;&lt;P&gt;                           VALUE(p_relate_key)&lt;/P&gt;&lt;P&gt;                    CHANGING p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: ld_node_text type lvc_value,&lt;/P&gt;&lt;P&gt;         ls_sflight type sflight.&lt;/P&gt;&lt;P&gt;  data : text128(128).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set item-layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  concatenate ps_output-subgid ps_output-subopn into text128 separated by space.&lt;/P&gt;&lt;P&gt;  data: lt_item_layout type lvc_t_layi,&lt;/P&gt;&lt;P&gt;        ls_item_layout type lvc_s_layi.&lt;/P&gt;&lt;P&gt;  ls_item_layout-t_image   = '@3P@'.&lt;/P&gt;&lt;P&gt;  ls_item_layout-fieldname = gd_tree-&amp;gt;c_hierarchy_column_name.&lt;/P&gt;&lt;P&gt;  ls_item_layout-style     = cl_gui_column_tree=&amp;gt;style_default.&lt;/P&gt;&lt;P&gt;  ld_node_text             = text128.&lt;/P&gt;&lt;P&gt;  append ls_item_layout to lt_item_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add node&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method gd_tree-&amp;gt;add_node&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;          i_relat_node_key = p_relate_key&lt;/P&gt;&lt;P&gt;          i_relationship   = cl_gui_column_tree=&amp;gt;relat_last_child&lt;/P&gt;&lt;P&gt;          i_node_text      = ld_node_text&lt;/P&gt;&lt;P&gt;          is_outtab_line   = ps_output&lt;/P&gt;&lt;P&gt;          it_item_layout   = lt_item_layout&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;          e_new_node_key = p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " add_ekko_node&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  add_ekpo_line&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_IT_OUTPUT1  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_LD_MOP_GID_KEY  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_LD_MOP_OPN_KEY  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 add_ekpo_line  USING    Ps_OUTPUT1 like it_output1&lt;/P&gt;&lt;P&gt;                             value(p_relate_key)&lt;/P&gt;&lt;P&gt;                    CHANGING p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ld_node_text type lvc_value,&lt;/P&gt;&lt;P&gt;      ls_sflight type sflight.&lt;/P&gt;&lt;P&gt;data : text128(128).&lt;/P&gt;&lt;P&gt;concatenate ps_output1-srno ps_output1-movetype into text128 separated by space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set item-layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: lt_item_layout type lvc_t_layi,&lt;/P&gt;&lt;P&gt;        ls_item_layout type lvc_s_layi.&lt;/P&gt;&lt;P&gt;  ls_item_layout-t_image   = '@3P@'.&lt;/P&gt;&lt;P&gt;  ls_item_layout-fieldname = gd_tree-&amp;gt;c_hierarchy_column_name.&lt;/P&gt;&lt;P&gt;  ls_item_layout-style     = cl_gui_column_tree=&amp;gt;style_default.&lt;/P&gt;&lt;P&gt;  ld_node_text             = text128.&lt;/P&gt;&lt;P&gt;  append ls_item_layout to lt_item_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add node&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method gd_tree-&amp;gt;add_node&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;          i_relat_node_key = p_relate_key&lt;/P&gt;&lt;P&gt;          i_relationship   = cl_gui_column_tree=&amp;gt;relat_last_child&lt;/P&gt;&lt;P&gt;          i_node_text      = ld_node_text&lt;/P&gt;&lt;P&gt;          is_outtab_line   = ps_output1&lt;/P&gt;&lt;P&gt;          it_item_layout   = lt_item_layout&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;          e_new_node_key = p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " add_ekpo_line&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  change_toolbar&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 change_toolbar .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get toolbar control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method gd_tree-&amp;gt;get_toolbar_object&lt;/P&gt;&lt;P&gt;          importing&lt;/P&gt;&lt;P&gt;              er_toolbar = mr_toolbar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  check not mr_toolbar is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add seperator to toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method mr_toolbar-&amp;gt;add_button&lt;/P&gt;&lt;P&gt;          exporting&lt;/P&gt;&lt;P&gt;              fcode     = ''&lt;/P&gt;&lt;P&gt;              icon      = ''&lt;/P&gt;&lt;P&gt;              butn_type = cntb_btype_sep&lt;/P&gt;&lt;P&gt;              text      = ''&lt;/P&gt;&lt;P&gt;              quickinfo = 'This is a Seperator'.         "#EC NOTEXT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add Standard Button to toolbar (for Delete Subtree)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method mr_toolbar-&amp;gt;add_button&lt;/P&gt;&lt;P&gt;          exporting&lt;/P&gt;&lt;P&gt;              fcode     = 'EXPORT'           "Function code of button&lt;/P&gt;&lt;P&gt;              icon      = '@49@'             "Icon ID (see )&lt;/P&gt;&lt;P&gt;              butn_type = cntb_btype_button  "Button type&lt;/P&gt;&lt;P&gt;              text      = ''                 "Button text&lt;/P&gt;&lt;P&gt;              quickinfo = 'Download To Excel'.  "Quick info text&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add Dropdown Button to toolbar (for Insert Line)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; call method mr_toolbar-&amp;gt;add_button&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         exporting&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             fcode     = 'INSERT_LC'         "Function code of button&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             icon      = '@17@'              "Icon ID (see )&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             butn_type = cntb_btype_dropdown "Button type&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             text      = ''                  "Button text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             quickinfo = 'Insert Line'.      "Quick info text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set event-handler for toolbar-control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: toolbar_event_receiver type ref to lcl_toolbar_event_receiver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  create object toolbar_event_receiver.&lt;/P&gt;&lt;P&gt;  set handler toolbar_event_receiver-&amp;gt;on_function_selected&lt;/P&gt;&lt;P&gt;                                                      for mr_toolbar.&lt;/P&gt;&lt;P&gt;  set handler toolbar_event_receiver-&amp;gt;on_toolbar_dropdown&lt;/P&gt;&lt;P&gt;                                                      for mr_toolbar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " change_toolbar&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Darshan Shah on Jan 2, 2008 1:31 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 02 Jan 2008 12:23:17 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-02T12:23:17Z</dc:date>
    <item>
      <title>Problem in ALV Tree</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-alv-tree/m-p/3296374#M788863</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Friends,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using ALV Tree to display a report.&lt;/P&gt;&lt;P&gt;In this report for a particular input.2 nodes are cerated.&lt;/P&gt;&lt;P&gt;On clicking on the 2nd node the details for the same are shown .&lt;/P&gt;&lt;P&gt;However on clicking the 1st node , the system automatically logs off closing all the SAP sessions and even the SAP Logon pad.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Suppose i am on executing the program on development server,even the sessions of test server are closed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone please help me in this.....&lt;/P&gt;&lt;P&gt;its a bit urgent.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i am attaching my code for reference.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZPRPROUTOPERATIONS1                     .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables : mapl,t001w,zroutpromast.&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis,kkblo.&lt;/P&gt;&lt;P&gt;include &amp;lt;icon&amp;gt;.&lt;/P&gt;&lt;P&gt;data : it_zrouteledtl like zrouteledtl occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data : it_zeledtl type zeledtl occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data : conv_sec(5) type c value '0.036'.&lt;/P&gt;&lt;P&gt;types : begin of it_output2,&lt;/P&gt;&lt;P&gt;       Srno like zrouteledtl-srno,&lt;/P&gt;&lt;P&gt;       srno1 type p decimals 8,&lt;/P&gt;&lt;P&gt;       subgid like zrouteledtl-subgid,&lt;/P&gt;&lt;P&gt;       subopn like zrouteledtl-subopn,&lt;/P&gt;&lt;P&gt;       movetype type zeledtl-movetype,&lt;/P&gt;&lt;P&gt;       DESC type zeledtl-description,&lt;/P&gt;&lt;P&gt;       Add_desc like zrouteledtl-DESCRIPTION,&lt;/P&gt;&lt;P&gt;       Freq type p decimals 2,&lt;/P&gt;&lt;P&gt;       div_freq type p decimals 2,&lt;/P&gt;&lt;P&gt;       men type p decimals 2,&lt;/P&gt;&lt;P&gt;       offline(3),&lt;/P&gt;&lt;P&gt;       CT type p decimals 2,&lt;/P&gt;&lt;P&gt;       CW type p decimals 2,&lt;/P&gt;&lt;P&gt;       Ideal_ct type p decimals 2,&lt;/P&gt;&lt;P&gt;       ideal_cw type p decimals 2,&lt;/P&gt;&lt;P&gt;       A_trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       b_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       g_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       p_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       m_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       t_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       i_Trg type p decimals 2,&lt;/P&gt;&lt;P&gt;       Autocycle type p decimals 2,&lt;/P&gt;&lt;P&gt;       online_time type p decimals 2,&lt;/P&gt;&lt;P&gt;       offline_time type p decimals 2,&lt;/P&gt;&lt;P&gt;       online_p_time type p decimals 2,&lt;/P&gt;&lt;P&gt;       offline_p_time type p decimals 2,&lt;/P&gt;&lt;P&gt;       end of it_output2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*types : begin of it_output3,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Srno like zrouteledtl-srno,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      mop_gid like zroutdetails-MOP_GID,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      MOp_opn like zroutdetails-MOP_OPN,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      sub_gid like zpromast-subgid,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      subopn like zpromast-subopn,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      DESC like zpromast-description,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Add_desc like zroutdetails-ADD_INFO,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Freq type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      batch type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      mix type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      offline(3),&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CT type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CW type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Ideal_ct type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ideal_cw type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      A_trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      b_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      g_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      p_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      m_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      t_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      i_Trg type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Autocycle type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      online_time type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      offline_time type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      online_p_time type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      offline_p_time type p decimals 2,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      end of it_output3.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : it_output type it_output2 occurs 0 with header line,&lt;/P&gt;&lt;P&gt;       it_output1 type it_output2 occurs 0 with header line,&lt;/P&gt;&lt;P&gt;       it_emptytab type standard table of it_output2 INITIAL SIZE 0.&lt;/P&gt;&lt;P&gt;data : a_trg type f,b_trg type f,g_trg type f,p_trg type f,m_trg type f,t_trg type f,i_trg type f,&lt;/P&gt;&lt;P&gt;       autocycle type f,online_p_time type f,offline_p_time type f.&lt;/P&gt;&lt;P&gt;data : ch1 type c,ch2.&lt;/P&gt;&lt;P&gt;DATA: ok_code like sy-ucomm,           "OK-Code&lt;/P&gt;&lt;P&gt;      save_ok like sy-ucomm.&lt;/P&gt;&lt;P&gt;data : ct_fieldcat type KKBLO_T_FIELDCAT.&lt;/P&gt;&lt;P&gt;*ALV data declarations&lt;/P&gt;&lt;P&gt;DATA: fieldcatalog  TYPE lvc_t_fcat WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gd_fieldcat   TYPE lvc_t_fcat,&lt;/P&gt;&lt;P&gt;      gd_tab_group  TYPE slis_t_sp_group_alv,&lt;/P&gt;&lt;P&gt;      gd_layout     TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ALVtree data declarations&lt;/P&gt;&lt;P&gt;CLASS cl_gui_column_tree DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;CLASS cl_gui_cfw DEFINITION LOAD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gd_tree             TYPE REF TO cl_gui_alv_tree,&lt;/P&gt;&lt;P&gt;      gd_hierarchy_header TYPE treev_hhdr,&lt;/P&gt;&lt;P&gt;      gd_report_title     TYPE slis_t_listheader,&lt;/P&gt;&lt;P&gt;      gd_logo             TYPE sdydo_value,&lt;/P&gt;&lt;P&gt;      gd_variant          TYPE disvariant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create container for alv-tree&lt;/P&gt;&lt;P&gt;DATA: gd_tree_container_name(30) TYPE c,&lt;/P&gt;&lt;P&gt;      gd_custom_container        TYPE REF TO cl_gui_custom_container.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*data mr_toolbar type ref to cl_gui_toolbar.  "Add to top include&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of block start with frame title text-001.&lt;/P&gt;&lt;P&gt;select-options: p_gid for zroutpromast-mop_gid obligatory no-extension no intervals,&lt;/P&gt;&lt;P&gt;                p_opn for zroutpromast-mop_opn obligatory no-extension no intervals,&lt;/P&gt;&lt;P&gt;                p_werks for t001w-werks obligatory no-extension no intervals.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen end of block start.&lt;/P&gt;&lt;P&gt;*selection-screen begin of block detail with frame title text-002.&lt;/P&gt;&lt;P&gt;*parameter : radio1 radiobutton group dept default 'X',&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           radio2 radiobutton group dept.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*selection-screen end of block detail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;include ZTEST_TOOLBAR_EVENT_RECEIVER.&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALVtree setup data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM data_retrieval.&lt;/P&gt;&lt;P&gt;  PERFORM build_fieldcatalog.&lt;/P&gt;&lt;P&gt;  PERFORM build_layout.&lt;/P&gt;&lt;P&gt;  PERFORM build_hierarchy_header CHANGING gd_hierarchy_header.&lt;/P&gt;&lt;P&gt;  PERFORM build_report_title USING gd_report_title gd_logo.&lt;/P&gt;&lt;P&gt;  PERFORM build_variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display ALVtree report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call screen 100.&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  data_retrieval&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 data_retrieval .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select * from zrouteledtl into table it_zrouteledtl where mop_gid in p_gid and&lt;/P&gt;&lt;P&gt;                                                              mop_opn in p_opn&lt;/P&gt;&lt;P&gt;                                                              and werks in p_werks.&lt;/P&gt;&lt;P&gt;  if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;  message i001(0) with 'No Records Found'.&lt;/P&gt;&lt;P&gt;  leave program.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  select * from zeledtl into table it_zeledtl for all entries in it_zrouteledtl&lt;/P&gt;&lt;P&gt;                                                      where subgid = it_zrouteledtl-subgid&lt;/P&gt;&lt;P&gt;                                                      and subopn = it_zrouteledtl-subopn&lt;/P&gt;&lt;P&gt;                                                      and werks = it_zrouteledtl-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_zeledtl.&lt;/P&gt;&lt;P&gt;    it_output1-srno = it_zeledtl-srno.&lt;/P&gt;&lt;P&gt;    it_output1-srno1 = it_zeledtl-srno.&lt;/P&gt;&lt;P&gt;    it_output1-subgid = it_zeledtl-subgid.&lt;/P&gt;&lt;P&gt;    it_output1-subopn = it_zeledtl-subopn.&lt;/P&gt;&lt;P&gt;    it_output1-movetype = it_zeledtl-movetype.&lt;/P&gt;&lt;P&gt;    it_output1-desc = it_zeledtl-DESCRIPTION.&lt;/P&gt;&lt;P&gt;    it_output1-freq = it_zeledtl-frequency.&lt;/P&gt;&lt;P&gt;    it_output1-div_freq = it_zeledtl-div_freq.&lt;/P&gt;&lt;P&gt;    it_output1-men = it_zeledtl-men.&lt;/P&gt;&lt;P&gt;    it_output1-offline = it_zeledtl-offline1.&lt;/P&gt;&lt;P&gt;    it_output1-ct = it_zeledtl-cy_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output1-cw = it_zeledtl-wc_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output1-ideal_ct = it_zeledtl-cy_trg_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output1-ideal_cw = it_zeledtl-wc_trg_time * conv_sec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if it_zeledtl-men = 0.&lt;/P&gt;&lt;P&gt;    it_output-autocycle = it_zeledtl-cy_time * conv_sec.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if it_zeledtl-men ne 0 and it_zeledtl-offline1 eq 'NO'&lt;/P&gt;&lt;P&gt;          and ( it_zeledtl-movetype eq 'A' or it_zeledtl-movetype eq 'C' ).&lt;/P&gt;&lt;P&gt;    case it_zeledtl-movetype.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          when 'A'.&lt;/P&gt;&lt;P&gt;            if it_zeledtl-SIM_AUTO = 'TRUE'.&lt;/P&gt;&lt;P&gt;              ch2 = 0.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;              ch2 = 1.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            it_output-online_p_time = ( it_zeledtl-autocycle * ch2 * conv_sec ) * it_zeledtl-frequency / it_zeledtl-div_freq.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          when 'C'.&lt;/P&gt;&lt;P&gt;            if it_zeledtl-sim5 = 'TRUE'.&lt;/P&gt;&lt;P&gt;              ch1 = 0.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;              ch1 = 1.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            it_output-online_p_time =  ( it_zeledtl-index5 * it_zeledtl-par_freq5 * ch1&lt;/P&gt;&lt;P&gt;                               &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;it_zeledtl-frequency * 10 ) / it_zeledtl-div_freq  .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        endcase.&lt;/P&gt;&lt;P&gt;      elseif it_zeledtl-men ne 0 and it_zeledtl-offline1 eq 'YES'&lt;/P&gt;&lt;P&gt;              and ( it_zeledtl-movetype eq 'A' or it_zeledtl-movetype eq 'C' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        case it_zeledtl-movetype.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          when 'A'.&lt;/P&gt;&lt;P&gt;            if it_zeledtl-SIM_AUTO = 'TRUE'.&lt;/P&gt;&lt;P&gt;              ch2 = 0.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;              ch2 = 1.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            it_output1-offline_p_time = ( it_zeledtl-autocycle * ch2 * conv_sec ) * it_zeledtl-frequency / it_zeledtl-div_freq.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          when 'C'.&lt;/P&gt;&lt;P&gt;            if it_zeledtl-sim5 = 'TRUE'.&lt;/P&gt;&lt;P&gt;              ch1 = 0.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;              ch1 = 1.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            it_output-offline_p_time =  ( it_zeledtl-index5 * it_zeledtl-par_freq5 * ch1&lt;/P&gt;&lt;P&gt;                               &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;it_zeledtl-frequency * 10 ) / it_zeledtl-div_freq  .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        endcase.&lt;/P&gt;&lt;P&gt;&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;      it_output1-a_trg = it_zeledtl-TARGET_A * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-b_trg = it_zeledtl-target_B * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-g_trg = it_zeledtl-TARGET_G * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-p_trg = it_zeledtl-TARGET_P * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-M_trg = it_zeledtl-TARGET_M * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-t_trg = it_zeledtl-TARGET_T * conv_sec.&lt;/P&gt;&lt;P&gt;      it_output1-i_trg = it_zeledtl-TARGET_I * conv_sec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append it_output1.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  sort it_output1 ascending by subgid subopn srno1.&lt;/P&gt;&lt;P&gt;  clear ch1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_zrouteledtl.&lt;/P&gt;&lt;P&gt;    move-corresponding it_zrouteledtl to it_output.&lt;/P&gt;&lt;P&gt;    select single description from zpromast into it_output-desc&lt;/P&gt;&lt;P&gt;                                  where subgid = it_zrouteledtl-subgid and&lt;/P&gt;&lt;P&gt;                                  subopn = it_zrouteledtl-subopn and&lt;/P&gt;&lt;P&gt;                                  werks in p_werks.&lt;/P&gt;&lt;P&gt;    it_output-add_desc = it_zrouteledtl-description.&lt;/P&gt;&lt;P&gt;    it_output-freq = it_zrouteledtl-frequency.&lt;/P&gt;&lt;P&gt;    it_output-div_freq = it_zrouteledtl-div_freq.&lt;/P&gt;&lt;P&gt;    it_output-men = it_zrouteledtl-men.&lt;/P&gt;&lt;P&gt;    it_output-ct = it_zrouteledtl-cy_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output-cw = it_zrouteledtl-wc_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output-ideal_ct = it_zrouteledtl-cy_trg_time * conv_sec.&lt;/P&gt;&lt;P&gt;    it_output-ideal_cw = it_zrouteledtl-wc_trg_time * conv_sec.&lt;/P&gt;&lt;P&gt;    if it_zrouteledtl-offline1 = '1'.&lt;/P&gt;&lt;P&gt;      it_output-offline = 'No'.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      it_output-offline = 'Yes'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append it_output.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_output.&lt;/P&gt;&lt;P&gt;    if it_output-offline = 'Yes'.&lt;/P&gt;&lt;P&gt;    ch1 = 0.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;    ch1 = 1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at it_output1 where subgid = it_output-subgid and&lt;/P&gt;&lt;P&gt;                             subopn = it_output-subopn.&lt;/P&gt;&lt;P&gt;      a_trg = A_trg + it_output1-A_trg.&lt;/P&gt;&lt;P&gt;      b_Trg = b_Trg + it_output1-b_Trg.&lt;/P&gt;&lt;P&gt;      g_Trg = g_Trg + it_output1-g_Trg.&lt;/P&gt;&lt;P&gt;      p_Trg = p_Trg + it_output1-p_Trg.&lt;/P&gt;&lt;P&gt;      m_Trg = m_Trg + it_output1-m_Trg.&lt;/P&gt;&lt;P&gt;      t_Trg = t_Trg + it_output1-t_Trg.&lt;/P&gt;&lt;P&gt;      i_Trg = i_Trg + it_output1-i_Trg.&lt;/P&gt;&lt;P&gt;      autocycle = autocycle + it_output1-Autocycle.&lt;/P&gt;&lt;P&gt;      online_p_time = online_p_time + it_output1-online_p_time.&lt;/P&gt;&lt;P&gt;      offline_p_time = offline_p_time + it_output1-offline_p_time.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;      it_output-autocycle = ( autocycle * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-a_trg = ( a_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-b_trg = ( b_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-g_trg = ( g_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-p_trg = ( p_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-m_trg = ( m_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-t_trg = ( t_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-i_trg = ( i_trg * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-online_time = ( it_output-ct - it_output-autocycle ) * ch1.&lt;/P&gt;&lt;P&gt;      it_output-offline_time = ( it_output-ct - it_output-cw ) + it_output-autocycle.&lt;/P&gt;&lt;P&gt;      it_output-online_p_time = ( online_p_time * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      it_output-offline_p_time = ( offline_p_time * ch1 * it_output-freq ) / it_output-div_freq / it_output-men.&lt;/P&gt;&lt;P&gt;      clear : a_trg,b_trg,g_trg,p_trg,m_trg,t_trg,i_trg,online_p_time,offline_p_time,ch1,ch2,it_zeledtl,&lt;/P&gt;&lt;P&gt;              autocycle,online_p_time,offline_p_time,zroutpromast.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    modify it_output.&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;ENDFORM.                    " data_retrieval&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_fieldcatalog&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 build_fieldcatalog .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Please not there are a number of differences between the structure of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALVtree fieldcatalogs and ALVgrid fieldcatalogs.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For example the field seltext_m is replace by scrtext_m in ALVtree.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DATA: COL_POS TYPE I VALUE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'SRNO'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Sr No.'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Sr No.'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Sr No.'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'SUBGID'.           "Field name in itab&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Sub Opn GID'.  "Column text&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Sub Opn GID'.  "Column text&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Sub Opn GID'.  "Column text&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.     "Column position&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.                "Column width&lt;/P&gt;&lt;P&gt;  fieldcatalog-emphasize   = 'X'.               "Emphasize  (X or SPACE)&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.               "Key Field? (X or SPACE)&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-do_sum      = 'X'.              "Sum Column?&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-no_zero     = 'X'.              "Don't display if zero&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'SUBOPN'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Sub Opn'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Sub Opn'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Sub Opn'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-emphasize   = 'X'.               "Emphasize  (X or SPACE)&lt;/P&gt;&lt;P&gt;  fieldcatalog-key         = 'X'.               "Key Field? (X or SPACE)&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MOVETYPE'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Movetype'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Movetype'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Movetype'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'DESC'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 600.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'ADD_DESC'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Add. Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Add. Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Add. Description'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 100.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'FREQ'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Frequency'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Frequency'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Frequency'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'DIV_FREQ'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Div Freq'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Div Freq'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Div Freq'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'MEN'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Men'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Men'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Men'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat..&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; COL_POS = COL_POS + 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-fieldname   = 'BATCH'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-SCRTEXT_L   = 'Batch/Div Freq'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-SCRTEXT_m   = 'Batch/Div Freq'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-SCRTEXT_s   = 'Batch/Div Freq'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR  fieldcatalog.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'OFFLINE'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Offline'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Offline'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Offline'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 6.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'CT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Cycle Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Cycle Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Cycle Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'CW'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Work Content'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Work Content'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Work Content'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'IDEAL_CT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Ideal CT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Ideal CT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Ideal CT'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'IDEAL_CW'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Ideal CW'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Ideal CW'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Ideal CW'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'A_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target A'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target A'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target A'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'B_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target B'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target B'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target B'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'G_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target G'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target G'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target G'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'P_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target P'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target P'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target P'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'M_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target M'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target M'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target M'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'T_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target T'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target T'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target T'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'I_TRG'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Target I'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Target I'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Target I'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'AUTOCYCLE'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'AutoCycle'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'AutoCycle'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'AutoCycle'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'ONLINE_TIME'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Online Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Online Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Online Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'OFFLINE_TIME'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Offline Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Offline Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Offline Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'ONLINE_P_TIME'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Online Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Online Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Online Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COL_POS = COL_POS + 1.&lt;/P&gt;&lt;P&gt;  fieldcatalog-fieldname   = 'OFFLINE_P_TIME'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_L   = 'Offline Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_m   = 'Offline Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-SCRTEXT_s   = 'Offline Process Time'.&lt;/P&gt;&lt;P&gt;  fieldcatalog-outputlen   = 15.&lt;/P&gt;&lt;P&gt;  fieldcatalog-col_pos     = COL_POS.&lt;/P&gt;&lt;P&gt;  fieldcatalog-do_sum      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND fieldcatalog TO gd_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR  fieldcatalog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_fieldcatalog&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_layout&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 build_layout .&lt;/P&gt;&lt;P&gt;  gd_layout-no_input          = 'X'.&lt;/P&gt;&lt;P&gt;  gd_layout-colwidth_optimize = 'X'.&lt;/P&gt;&lt;P&gt;  gd_layout-totals_text       = 'Totals'(201).&lt;/P&gt;&lt;P&gt;  gd_layout-totals_only        = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-f2code            = 'DISP'.  "Sets fcode for when double&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                        "click(press f2)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  gd_layout-zebra             = 'X'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-group_change_edit = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; gd_layout-header_text       = 'helllllo'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_layout&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_hierarchy_header&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;lt;--P_GD_HIERARCHY_HEADER  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_hierarchy_header CHANGING&lt;/P&gt;&lt;P&gt;                                    p_hierarchy_header TYPE treev_hhdr.&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-heading = 'Drill Down For Detail'(022).&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-tooltip = 'This is the Hierarchy Header !'(014).&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-width = 30.&lt;/P&gt;&lt;P&gt;  p_hierarchy_header-width_pix = ''.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_hierarchy_header&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_title&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_GD_REPORT_TITLE  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_GD_LOGO  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_title  using&lt;/P&gt;&lt;P&gt;                 pt_report_title  TYPE slis_t_listheader&lt;/P&gt;&lt;P&gt;                 pa_logo TYPE sdydo_value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_line TYPE slis_listheader,&lt;/P&gt;&lt;P&gt;        ld_date(10) TYPE c,&lt;/P&gt;&lt;P&gt;        string1 type string,string2 type string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;List Heading Line(TYPE H)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; concatenate 'Material: ' p_matnr-low into string1 separated by space.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ls_line.&lt;/P&gt;&lt;P&gt;  ls_line-typ  = 'H'.&lt;/P&gt;&lt;P&gt;  ls_line-key  = 'MOST Operation'.&lt;/P&gt;&lt;P&gt;  concatenate p_gid-low p_opn-low into string2 separated by space.&lt;/P&gt;&lt;P&gt;  ls_line-info = string2.&lt;/P&gt;&lt;P&gt;  APPEND ls_line TO pt_report_title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_line-typ  = 'S'.&lt;/P&gt;&lt;P&gt;  ls_line-key  = 'Text'.&lt;/P&gt;&lt;P&gt;  select single DESCRIPTION from zroutpromast into string1 where mop_gid = p_gid-low&lt;/P&gt;&lt;P&gt;                                                           and mop_opn = p_opn-low&lt;/P&gt;&lt;P&gt;                                                           and werks = p_werks-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_line-info = string1.&lt;/P&gt;&lt;P&gt;  APPEND ls_line TO pt_report_title.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_line-typ  = 'S'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_line-key  = 'Routing Counter:'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_line-info = counter.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND ls_line TO pt_report_title.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;Status Line(TYPE S)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ld_date(2) = sy-datum+6(2).&lt;/P&gt;&lt;P&gt;  ld_date+2(1) = '/'.&lt;/P&gt;&lt;P&gt;  ld_date&lt;EM&gt;3(2) = sy-datum&lt;/EM&gt;4(2).&lt;/P&gt;&lt;P&gt;  ld_date+5(1) = '/'.&lt;/P&gt;&lt;P&gt;  ld_date+6(4) = sy-datum(4).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_line-typ  = 'S'.&lt;/P&gt;&lt;P&gt;  ls_line-key  = 'Date'.&lt;/P&gt;&lt;P&gt;  ls_line-info = ld_date.&lt;/P&gt;&lt;P&gt;  APPEND ls_line TO pt_report_title.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Action Line(TYPE A)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR ls_line.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_line-typ  = 'A'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONCATENATE 'Report: ' sy-repid INTO ls_line-info  SEPARATED BY space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND ls_line TO pt_report_title.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_report_title&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_variant&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 build_variant .&lt;/P&gt;&lt;P&gt;  gd_variant-report = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_variant&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;      Module  STATUS_0100  OUTPUT&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;MODULE STATUS_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'STATUS1'.&lt;/P&gt;&lt;P&gt;  SET TITLEBAR 'ZTITLE'.&lt;/P&gt;&lt;P&gt;  IF gd_tree IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create ALVtree (must be performed within screen PBO module)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM create_alvtree_container.&lt;/P&gt;&lt;P&gt;    PERFORM create_object_in_container.&lt;/P&gt;&lt;P&gt;    PERFORM create_empty_alvtree_control.&lt;/P&gt;&lt;P&gt;    perform change_toolbar.&lt;/P&gt;&lt;P&gt;    PERFORM create_alvtree_hierarchy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CALL METHOD cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " STATUS_0100  OUTPUT&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;      Module  USER_COMMAND_0100  INPUT&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;MODULE USER_COMMAND_0100 INPUT.&lt;/P&gt;&lt;P&gt;  case sy-ucomm.&lt;/P&gt;&lt;P&gt;    when 'EXIT' or 'BACK' or 'CANC'.&lt;/P&gt;&lt;P&gt;      call method gd_tree-&amp;gt;free.&lt;/P&gt;&lt;P&gt;      leave program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when others.&lt;/P&gt;&lt;P&gt;      call method cl_gui_cfw=&amp;gt;dispatch.&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;  clear ok_code.&lt;/P&gt;&lt;P&gt;  call method cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " USER_COMMAND_0100  INPUT&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  create_alvtree_container&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 create_alvtree_container .&lt;/P&gt;&lt;P&gt;  gd_tree_container_name = 'SCREEN_CONTAINER'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  create object gd_custom_container&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;            container_name = gd_tree_container_name&lt;/P&gt;&lt;P&gt;      exceptions&lt;/P&gt;&lt;P&gt;            cntl_error                  = 1&lt;/P&gt;&lt;P&gt;            cntl_system_error           = 2&lt;/P&gt;&lt;P&gt;            create_error                = 3&lt;/P&gt;&lt;P&gt;            lifetime_error              = 4&lt;/P&gt;&lt;P&gt;            lifetime_dynpro_dynpro_link = 5.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message x208(00) with 'ERROR'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_alvtree_container&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  create_object_in_container&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 create_object_in_container .&lt;/P&gt;&lt;P&gt;  create object gd_tree&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;          parent              = gd_custom_container&lt;/P&gt;&lt;P&gt;          node_selection_mode = cl_gui_column_tree=&amp;gt;node_sel_mode_single&lt;/P&gt;&lt;P&gt;          item_selection      = 'X'&lt;/P&gt;&lt;P&gt;          no_html_header      = ''&lt;/P&gt;&lt;P&gt;          no_toolbar          = ''&lt;/P&gt;&lt;P&gt;      exceptions&lt;/P&gt;&lt;P&gt;          cntl_error                   = 1&lt;/P&gt;&lt;P&gt;          cntl_system_error            = 2&lt;/P&gt;&lt;P&gt;          create_error                 = 3&lt;/P&gt;&lt;P&gt;          lifetime_error               = 4&lt;/P&gt;&lt;P&gt;          illegal_node_selection_mode  = 5&lt;/P&gt;&lt;P&gt;          failed                       = 6&lt;/P&gt;&lt;P&gt;          illegal_column_name          = 7.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message x208(00) with 'ERROR'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_object_in_container&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  create_empty_alvtree_control&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 create_empty_alvtree_control .&lt;/P&gt;&lt;P&gt;  CLEAR: it_emptytab.&lt;/P&gt;&lt;P&gt;  REFRESH: it_emptytab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD gd_tree-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;               is_hierarchy_header  = gd_hierarchy_header&lt;/P&gt;&lt;P&gt;               it_list_commentary   = gd_report_title&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              i_logo               = gd_logo&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              i_background_id      = 'ALV_BACKGROUND'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;               i_save               = 'A'&lt;/P&gt;&lt;P&gt;               is_variant            = gd_variant&lt;/P&gt;&lt;P&gt;     CHANGING&lt;/P&gt;&lt;P&gt;               it_outtab            =  it_emptytab      "Must be empty&lt;/P&gt;&lt;P&gt;               it_fieldcatalog      =  gd_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_empty_alvtree_control&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  create_alvtree_hierarchy&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 create_alvtree_hierarchy .&lt;/P&gt;&lt;P&gt;  data: ls_sflight type sflight,&lt;/P&gt;&lt;P&gt;          lt_sflight type sflight occurs 0.&lt;/P&gt;&lt;P&gt;  data: ld_mop_gid_key type lvc_nkey,&lt;/P&gt;&lt;P&gt;        ld_mop_opn_key type lvc_nkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_output.&lt;/P&gt;&lt;P&gt;    perform add_ekko_node using      it_output&lt;/P&gt;&lt;P&gt;                                     ''&lt;/P&gt;&lt;P&gt;                            changing ld_mop_gid_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at it_output1 where subgid eq it_output-subgid&lt;/P&gt;&lt;P&gt;                             and subopn eq it_output-subopn.&lt;/P&gt;&lt;P&gt;      perform add_ekpo_line using      it_output1&lt;/P&gt;&lt;P&gt;                                       ld_mop_gid_key&lt;/P&gt;&lt;P&gt;                              changing ld_mop_opn_key.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;calculate totals&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method gd_tree-&amp;gt;update_calculations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this method must be called to send the data to the frontend&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method gd_tree-&amp;gt;frontend_update.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " create_alvtree_hierarchy&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  add_ekko_node&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_IT_OUTPUT  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_2478   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_LD_MOP_GID_KEY  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 add_ekko_node  USING  ps_output like it_output&lt;/P&gt;&lt;P&gt;                           VALUE(p_relate_key)&lt;/P&gt;&lt;P&gt;                    CHANGING p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: ld_node_text type lvc_value,&lt;/P&gt;&lt;P&gt;         ls_sflight type sflight.&lt;/P&gt;&lt;P&gt;  data : text128(128).&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set item-layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  concatenate ps_output-subgid ps_output-subopn into text128 separated by space.&lt;/P&gt;&lt;P&gt;  data: lt_item_layout type lvc_t_layi,&lt;/P&gt;&lt;P&gt;        ls_item_layout type lvc_s_layi.&lt;/P&gt;&lt;P&gt;  ls_item_layout-t_image   = '@3P@'.&lt;/P&gt;&lt;P&gt;  ls_item_layout-fieldname = gd_tree-&amp;gt;c_hierarchy_column_name.&lt;/P&gt;&lt;P&gt;  ls_item_layout-style     = cl_gui_column_tree=&amp;gt;style_default.&lt;/P&gt;&lt;P&gt;  ld_node_text             = text128.&lt;/P&gt;&lt;P&gt;  append ls_item_layout to lt_item_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add node&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method gd_tree-&amp;gt;add_node&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;          i_relat_node_key = p_relate_key&lt;/P&gt;&lt;P&gt;          i_relationship   = cl_gui_column_tree=&amp;gt;relat_last_child&lt;/P&gt;&lt;P&gt;          i_node_text      = ld_node_text&lt;/P&gt;&lt;P&gt;          is_outtab_line   = ps_output&lt;/P&gt;&lt;P&gt;          it_item_layout   = lt_item_layout&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;          e_new_node_key = p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " add_ekko_node&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  add_ekpo_line&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_IT_OUTPUT1  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_LD_MOP_GID_KEY  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_LD_MOP_OPN_KEY  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 add_ekpo_line  USING    Ps_OUTPUT1 like it_output1&lt;/P&gt;&lt;P&gt;                             value(p_relate_key)&lt;/P&gt;&lt;P&gt;                    CHANGING p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: ld_node_text type lvc_value,&lt;/P&gt;&lt;P&gt;      ls_sflight type sflight.&lt;/P&gt;&lt;P&gt;data : text128(128).&lt;/P&gt;&lt;P&gt;concatenate ps_output1-srno ps_output1-movetype into text128 separated by space.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set item-layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: lt_item_layout type lvc_t_layi,&lt;/P&gt;&lt;P&gt;        ls_item_layout type lvc_s_layi.&lt;/P&gt;&lt;P&gt;  ls_item_layout-t_image   = '@3P@'.&lt;/P&gt;&lt;P&gt;  ls_item_layout-fieldname = gd_tree-&amp;gt;c_hierarchy_column_name.&lt;/P&gt;&lt;P&gt;  ls_item_layout-style     = cl_gui_column_tree=&amp;gt;style_default.&lt;/P&gt;&lt;P&gt;  ld_node_text             = text128.&lt;/P&gt;&lt;P&gt;  append ls_item_layout to lt_item_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add node&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method gd_tree-&amp;gt;add_node&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;          i_relat_node_key = p_relate_key&lt;/P&gt;&lt;P&gt;          i_relationship   = cl_gui_column_tree=&amp;gt;relat_last_child&lt;/P&gt;&lt;P&gt;          i_node_text      = ld_node_text&lt;/P&gt;&lt;P&gt;          is_outtab_line   = ps_output1&lt;/P&gt;&lt;P&gt;          it_item_layout   = lt_item_layout&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;          e_new_node_key = p_node_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " add_ekpo_line&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  change_toolbar&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 change_toolbar .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get toolbar control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method gd_tree-&amp;gt;get_toolbar_object&lt;/P&gt;&lt;P&gt;          importing&lt;/P&gt;&lt;P&gt;              er_toolbar = mr_toolbar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  check not mr_toolbar is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add seperator to toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method mr_toolbar-&amp;gt;add_button&lt;/P&gt;&lt;P&gt;          exporting&lt;/P&gt;&lt;P&gt;              fcode     = ''&lt;/P&gt;&lt;P&gt;              icon      = ''&lt;/P&gt;&lt;P&gt;              butn_type = cntb_btype_sep&lt;/P&gt;&lt;P&gt;              text      = ''&lt;/P&gt;&lt;P&gt;              quickinfo = 'This is a Seperator'.         "#EC NOTEXT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add Standard Button to toolbar (for Delete Subtree)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call method mr_toolbar-&amp;gt;add_button&lt;/P&gt;&lt;P&gt;          exporting&lt;/P&gt;&lt;P&gt;              fcode     = 'EXPORT'           "Function code of button&lt;/P&gt;&lt;P&gt;              icon      = '@49@'             "Icon ID (see )&lt;/P&gt;&lt;P&gt;              butn_type = cntb_btype_button  "Button type&lt;/P&gt;&lt;P&gt;              text      = ''                 "Button text&lt;/P&gt;&lt;P&gt;              quickinfo = 'Download To Excel'.  "Quick info text&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;add Dropdown Button to toolbar (for Insert Line)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; call method mr_toolbar-&amp;gt;add_button&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         exporting&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             fcode     = 'INSERT_LC'         "Function code of button&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             icon      = '@17@'              "Icon ID (see )&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             butn_type = cntb_btype_dropdown "Button type&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             text      = ''                  "Button text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             quickinfo = 'Insert Line'.      "Quick info text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;set event-handler for toolbar-control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  data: toolbar_event_receiver type ref to lcl_toolbar_event_receiver.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  create object toolbar_event_receiver.&lt;/P&gt;&lt;P&gt;  set handler toolbar_event_receiver-&amp;gt;on_function_selected&lt;/P&gt;&lt;P&gt;                                                      for mr_toolbar.&lt;/P&gt;&lt;P&gt;  set handler toolbar_event_receiver-&amp;gt;on_toolbar_dropdown&lt;/P&gt;&lt;P&gt;                                                      for mr_toolbar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " change_toolbar&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Darshan Shah on Jan 2, 2008 1:31 PM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Jan 2008 12:23:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-alv-tree/m-p/3296374#M788863</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-02T12:23:17Z</dc:date>
    </item>
    <item>
      <title>Re: Problem in ALV Tree</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-alv-tree/m-p/3296375#M788864</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Gui patch was not available on my pc&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Jan 2008 07:24:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-in-alv-tree/m-p/3296375#M788864</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-31T07:24:23Z</dc:date>
    </item>
  </channel>
</rss>

