<?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 Re: function module in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2858264#M670200</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REUSE_ALV_VARIANT_DEFAULT_GET:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Purpose: Provides the default variant for the list specified in the structure&lt;/P&gt;&lt;P&gt;parameter CS_VARIANT of a program. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Function Call: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;I_SAVE = 'A'&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;CS_VARIANT = I_VARIANT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Parameters &lt;/P&gt;&lt;P&gt;I_SAVE : &lt;/P&gt;&lt;P&gt;Description : &lt;/P&gt;&lt;P&gt;Controls the storage mode &lt;/P&gt;&lt;P&gt;Prerequisite: &lt;/P&gt;&lt;P&gt;The IS_VARIANT parameter has the appropriate value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Value range &lt;/P&gt;&lt;P&gt;' ' = display variants cannot be saved &lt;/P&gt;&lt;P&gt;Defined display variants (e.g. delivered display variants) can be &lt;/P&gt;&lt;P&gt;selected for presentation independently of this flag. &lt;/P&gt;&lt;P&gt;Changes cannot be saved. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'X' = standard save &lt;/P&gt;&lt;P&gt;Display variants can be saved as standard display variants. &lt;/P&gt;&lt;P&gt;User-specific saving is not possible. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'U' = only user-specific saving &lt;/P&gt;&lt;P&gt;The user can only save display variants user-specifically &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'A' = standard and user-specific saving &lt;/P&gt;&lt;P&gt;The user can save a display variant user-specifically and &lt;/P&gt;&lt;P&gt;as standard display variant. The user chooses in the display variant &lt;/P&gt;&lt;P&gt;save popup. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CS_VARIANT:&lt;/P&gt;&lt;P&gt;Internal table containing the program name (and the default variant---optional )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: c_yes(1) TYPE c VALUE 'X'.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;DATA: e_variant TYPE disvariant.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;PARAMETERS: p_vari LIKE disvariant-variant.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.&lt;/P&gt;&lt;P&gt;CLEAR e_variant.&lt;/P&gt;&lt;P&gt;e_variant-report = sy-cprog.&lt;/P&gt;&lt;P&gt;e_variant-username = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_save = c_yes&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;cs_variant = e_variant&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;not_found = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;p_vari = e_variant-variant.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f4_for_variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f4_for_variant.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA: l_exit(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_VARIANT_F4'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;is_variant = e_variant&lt;/P&gt;&lt;P&gt;i_tabname_header = 'T_LISTADO'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;i_tabname_item = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_DEFAULT_FIELDCAT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;i_save = 'A'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;e_exit = l_exit&lt;/P&gt;&lt;P&gt;es_variant = e_variant&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;not_found = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 2.&lt;/P&gt;&lt;P&gt;MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;IF l_exit = space.&lt;/P&gt;&lt;P&gt;p_vari = e_variant-variant.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM. " f4_for_variant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This allows you to enter a display variant BEFORE running your ALV report. Then, your call to the ALV should look a little bit like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;is_variant = e_variant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sail&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 24 Sep 2007 05:41:54 GMT</pubDate>
    <dc:creator>sailaja_vadlamudi</dc:creator>
    <dc:date>2007-09-24T05:41:54Z</dc:date>
    <item>
      <title>function module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2858263#M670199</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi to all experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;what is the work functoinlity of this function module.&lt;/P&gt;&lt;P&gt; CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;please explain me with exmaple .&lt;/P&gt;&lt;P&gt;thanks in advance and reward also.&lt;/P&gt;&lt;P&gt;regard : deep.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 05:30:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2858263#M670199</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T05:30:40Z</dc:date>
    </item>
    <item>
      <title>Re: function module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2858264#M670200</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REUSE_ALV_VARIANT_DEFAULT_GET:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Purpose: Provides the default variant for the list specified in the structure&lt;/P&gt;&lt;P&gt;parameter CS_VARIANT of a program. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Function Call: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;I_SAVE = 'A'&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;CS_VARIANT = I_VARIANT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Parameters &lt;/P&gt;&lt;P&gt;I_SAVE : &lt;/P&gt;&lt;P&gt;Description : &lt;/P&gt;&lt;P&gt;Controls the storage mode &lt;/P&gt;&lt;P&gt;Prerequisite: &lt;/P&gt;&lt;P&gt;The IS_VARIANT parameter has the appropriate value. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Value range &lt;/P&gt;&lt;P&gt;' ' = display variants cannot be saved &lt;/P&gt;&lt;P&gt;Defined display variants (e.g. delivered display variants) can be &lt;/P&gt;&lt;P&gt;selected for presentation independently of this flag. &lt;/P&gt;&lt;P&gt;Changes cannot be saved. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'X' = standard save &lt;/P&gt;&lt;P&gt;Display variants can be saved as standard display variants. &lt;/P&gt;&lt;P&gt;User-specific saving is not possible. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'U' = only user-specific saving &lt;/P&gt;&lt;P&gt;The user can only save display variants user-specifically &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'A' = standard and user-specific saving &lt;/P&gt;&lt;P&gt;The user can save a display variant user-specifically and &lt;/P&gt;&lt;P&gt;as standard display variant. The user chooses in the display variant &lt;/P&gt;&lt;P&gt;save popup. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CS_VARIANT:&lt;/P&gt;&lt;P&gt;Internal table containing the program name (and the default variant---optional )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONSTANTS: c_yes(1) TYPE c VALUE 'X'.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;DATA: e_variant TYPE disvariant.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;PARAMETERS: p_vari LIKE disvariant-variant.&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.&lt;/P&gt;&lt;P&gt;CLEAR e_variant.&lt;/P&gt;&lt;P&gt;e_variant-report = sy-cprog.&lt;/P&gt;&lt;P&gt;e_variant-username = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_save = c_yes&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;cs_variant = e_variant&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;not_found = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;p_vari = e_variant-variant.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f4_for_variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f4_for_variant.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA: l_exit(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_VARIANT_F4'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;is_variant = e_variant&lt;/P&gt;&lt;P&gt;i_tabname_header = 'T_LISTADO'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;i_tabname_item = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_DEFAULT_FIELDCAT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;i_save = 'A'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;e_exit = l_exit&lt;/P&gt;&lt;P&gt;es_variant = e_variant&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;not_found = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 2.&lt;/P&gt;&lt;P&gt;MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;IF l_exit = space.&lt;/P&gt;&lt;P&gt;p_vari = e_variant-variant.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM. " f4_for_variant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This allows you to enter a display variant BEFORE running your ALV report. Then, your call to the ALV should look a little bit like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;is_variant = e_variant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sail&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 05:41:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2858264#M670200</guid>
      <dc:creator>sailaja_vadlamudi</dc:creator>
      <dc:date>2007-09-24T05:41:54Z</dc:date>
    </item>
    <item>
      <title>Re: function module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2858265#M670201</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;'REUSE_ALV_VARIANT_DEFAULT_GET'&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Read default display variant (description only, w/o field catalog)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Functionality&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;Provides the default variant for the list specified in the structure parameter CS_VARIANT of a program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Parameters&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;I_SAVE&lt;/P&gt;&lt;P&gt;CS_VARIANT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Exceptions&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;WRONG_INPUT&lt;/P&gt;&lt;P&gt;NOT_FOUND&lt;/P&gt;&lt;P&gt;PROGRAM_ERROR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Function Group&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;SALV&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; Report  ZVE_SIMPLE1&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZVE_SIMPLE1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**A Simple ABAP ALV LIST VIEWER Example&lt;/P&gt;&lt;P&gt;**This ALV program have all the basic report requirements such as page heading,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;page no, sub-total and a grand total.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;This is a basic ALV with the followings:-&lt;/P&gt;&lt;/LI&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;- Page Heading&lt;/P&gt;&lt;/LI&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;- Page No&lt;/P&gt;&lt;/LI&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;- Sub-Total&lt;/P&gt;&lt;/LI&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;- Grand Total&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**REPORT ZALV.&lt;/P&gt;&lt;P&gt;*TYPE-POOLS: SLIS.&lt;/P&gt;&lt;P&gt;*DATA: G_REPID LIKE SY-REPID,&lt;/P&gt;&lt;P&gt;*GS_PRINT            TYPE SLIS_PRINT_ALV,&lt;/P&gt;&lt;P&gt;*GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,&lt;/P&gt;&lt;P&gt;*GT_EVENTS           TYPE SLIS_T_EVENT,&lt;/P&gt;&lt;P&gt;*GT_SORT             TYPE SLIS_T_SORTINFO_ALV,&lt;/P&gt;&lt;P&gt;*GS_LAYOUT           TYPE SLIS_LAYOUT_ALV,&lt;/P&gt;&lt;P&gt;*GT_FIELDCAT         TYPE SLIS_T_FIELDCAT_ALV,&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,&lt;/P&gt;&lt;P&gt;*COL_POS TYPE I.&lt;/P&gt;&lt;P&gt;*DATA: BEGIN OF ITAB,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; FIELD1(5) TYPE C,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; FIELD2(5) TYPE C,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; FIELD3(5) TYPE P DECIMALS 2,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*END OF ITAB.&lt;/P&gt;&lt;P&gt;*DATA: BEGIN OF ITAB1 OCCURS 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; INCLUDE STRUCTURE ITAB.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*DATA: END OF ITAB1.&lt;/P&gt;&lt;P&gt;*DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; INCLUDE STRUCTURE ITAB.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*DATA: END OF ITAB_FIELDCAT.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Print Parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*PARAMETERS:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           P_PRINT  AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           P_RESERV TYPE I.                  "NO OF FOOTER LINE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*INITIALIZATION.&lt;/P&gt;&lt;P&gt;*G_REPID = SY-REPID.&lt;/P&gt;&lt;P&gt;*PERFORM PRINT_BUILD    USING GS_PRINT.      "Print PARAMETERS&lt;/P&gt;&lt;P&gt;*START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;TEST DATA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*MOVE 'TEST1' TO ITAB1-FIELD1.&lt;/P&gt;&lt;P&gt;*MOVE 'TEST1' TO ITAB1-FIELD2.&lt;/P&gt;&lt;P&gt;*MOVE '10.00' TO ITAB1-FIELD3.&lt;/P&gt;&lt;P&gt;*APPEND ITAB1.&lt;/P&gt;&lt;P&gt;*MOVE 'TEST2' TO ITAB1-FIELD1.&lt;/P&gt;&lt;P&gt;*MOVE 'TEST2' TO ITAB1-FIELD2.&lt;/P&gt;&lt;P&gt;*MOVE '20.00' TO ITAB1-FIELD3.&lt;/P&gt;&lt;P&gt;*APPEND ITAB1.&lt;/P&gt;&lt;P&gt;*DO 50 TIMES.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND ITAB1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*ENDDO.&lt;/P&gt;&lt;P&gt;*END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*PERFORM BUILD.&lt;/P&gt;&lt;P&gt;*PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.&lt;/P&gt;&lt;P&gt;*PERFORM COMMENT_BUILD  CHANGING GT_LIST_TOP_OF_PAGE.&lt;/P&gt;&lt;P&gt;*PERFORM CALL_ALV.&lt;/P&gt;&lt;P&gt;*FORM BUILD.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;DATA FIELD CATALOG&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Explain Field Description to ALV&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.&lt;/P&gt;&lt;P&gt;*CLEAR FIELDCAT_IN.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-FIELDNAME = 'FIELD1'.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-TABNAME   = 'ITAB1'.&lt;/P&gt;&lt;P&gt;**FIELDCAT_LN-NO_OUT    = 'X'.  "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-KEY       = ' '.   "SUBTOTAL KEY&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-NO_OUT    = ' '.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-SELTEXT_L = 'HEAD1'.&lt;/P&gt;&lt;P&gt;*APPEND FIELDCAT_LN TO GT_FIELDCAT.&lt;/P&gt;&lt;P&gt;*CLEAR FIELDCAT_IN.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-FIELDNAME = 'FIELD2'.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-TABNAME   = 'ITAB1'.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-NO_OUT    = 'X'.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-SELTEXT_L = 'HEAD2'.&lt;/P&gt;&lt;P&gt;*APPEND FIELDCAT_LN TO GT_FIELDCAT.&lt;/P&gt;&lt;P&gt;*CLEAR FIELDCAT_IN.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-FIELDNAME     = 'FIELD3'.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-TABNAME       = 'ITAB1'.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "&amp;lt;- REF FIELD IN THE DICTIONNARY&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-REF_TABNAME   = 'MSEG'.  "&amp;lt;- REF TABLE IN THE DICTIONNARY&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-NO_OUT        = ' '.&lt;/P&gt;&lt;P&gt;*FIELDCAT_LN-DO_SUM        = 'X'.   "SUM UPON DISPLAY&lt;/P&gt;&lt;P&gt;*APPEND FIELDCAT_LN TO GT_FIELDCAT.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;DATA SORTING AND SUBTOTAL&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.&lt;/P&gt;&lt;P&gt;*CLEAR GS_SORT.&lt;/P&gt;&lt;P&gt;*GS_SORT-FIELDNAME = 'FIELD1'.&lt;/P&gt;&lt;P&gt;*GS_SORT-SPOS      = 1.&lt;/P&gt;&lt;P&gt;*GS_SORT-UP        = 'X'.&lt;/P&gt;&lt;P&gt;*GS_SORT-SUBTOT    = 'X'.&lt;/P&gt;&lt;P&gt;*APPEND GS_SORT TO GT_SORT.&lt;/P&gt;&lt;P&gt;*CLEAR GS_SORT.&lt;/P&gt;&lt;P&gt;*GS_SORT-FIELDNAME = 'FIELD2'.&lt;/P&gt;&lt;P&gt;*GS_SORT-SPOS      = 2.&lt;/P&gt;&lt;P&gt;*GS_SORT-UP        = 'X'.&lt;/P&gt;&lt;P&gt;**GS_SORT-SUBTOT    = 'X'.&lt;/P&gt;&lt;P&gt;*APPEND GS_SORT TO GT_SORT.&lt;/P&gt;&lt;P&gt;*ENDFORM.&lt;/P&gt;&lt;P&gt;*FORM CALL_ALV.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;ABAP List Viewer&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;*EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;I_INTERFACE_CHECK = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;I_BYPASSING_BUFFER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;I_BUFFER_ACTIVE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*I_CALLBACK_PROGRAM = G_REPID&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;I_CALLBACK_PF_STATUS_SET = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;I_CALLBACK_USER_COMMAND = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*I_STRUCTURE_NAME = 'ITAB1'&lt;/P&gt;&lt;P&gt;*IS_LAYOUT =  GS_LAYOUT&lt;/P&gt;&lt;P&gt;*IT_FIELDCAT = GT_FIELDCAT[]&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;IT_EXCLUDING =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;IT_SPECIAL_GROUPS =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IT_SORT = GT_SORT[]&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;IT_FILTER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;IS_SEL_HIDE =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;I_DEFAULT = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;I_SAVE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;IS_VARIANT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IT_EVENTS = GT_EVENTS[]&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;IT_EVENT_EXIT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IS_PRINT = GS_PRINT&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;IS_REPREP_ID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;I_SCREEN_START_COLUMN = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;I_SCREEN_START_LINE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;I_SCREEN_END_COLUMN = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;I_SCREEN_END_LINE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;E_EXIT_CAUSED_BY_CALLER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;ES_EXIT_CAUSED_BY_USER =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*TABLES&lt;/P&gt;&lt;P&gt;*T_OUTTAB = ITAB1&lt;/P&gt;&lt;P&gt;*EXCEPTIONS&lt;/P&gt;&lt;P&gt;*PROGRAM_ERROR = 1&lt;/P&gt;&lt;P&gt;*OTHERS = 2.&lt;/P&gt;&lt;P&gt;*ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;HEADER FORM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.&lt;/P&gt;&lt;P&gt;*CONSTANTS:&lt;/P&gt;&lt;P&gt;*GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;**GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: LS_EVENT TYPE SLIS_ALV_EVENT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&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;           I_LIST_TYPE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           ET_EVENTS   = LT_EVENTS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_TOP_OF_PAGE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                          INTO LS_EVENT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF SY-SUBRC = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND LS_EVENT TO LT_EVENTS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;define END_OF_PAGE event&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;READ TABLE LT_EVENTS WITH KEY NAME =  SLIS_EV_END_OF_PAGE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;                         INTO LS_EVENT.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  APPEND LS_EVENT TO LT_EVENTS.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*ENDFORM.&lt;/P&gt;&lt;P&gt;*FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: GS_LINE TYPE SLIS_LISTHEADER.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR GS_LINE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; GS_LINE-TYP  = 'H'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; GS_LINE-INFO = 'HEADER 1'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND GS_LINE TO GT_TOP_OF_PAGE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR GS_LINE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; GS_LINE-TYP  = 'S'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; GS_LINE-KEY  = 'STATUS 1'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; GS_LINE-INFO = 'INFO 1'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND GS_LINE TO GT_TOP_OF_PAGE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; GS_LINE-KEY  = 'STATUS 2'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; GS_LINE-INFO = 'INFO 2'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND GS_LINE TO GT_TOP_OF_PAGE.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;CLEAR GS_LINE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;GS_LINE-TYP  = 'A'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;GS_LINE-INFO = 'ACTION'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;APPEND GS_LINE TO  GT_TOP_OF_PAGE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*ENDFORM.&lt;/P&gt;&lt;P&gt;*FORM TOP_OF_PAGE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&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;           IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*ENDFORM.&lt;/P&gt;&lt;P&gt;*FORM END_OF_PAGE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE at (sy-linsz) sy-pagno CENTERED.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*ENDFORM.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;PRINT SETTINGS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_PRINT-PRINT              = P_PRINT.  "PRINT IMMEDIATE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_PRINT-NO_PRINT_SELINFOS  = P_NOSINF. "NO SELECTION INFO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_PRINT-NO_COVERPAGE       = P_NOCOVE. "NO COVER PAGE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_PRINT-NO_NEW_PAGE        = P_NONEWP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; LS_PRINT-RESERVE_LINES      = P_RESERV.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*ENDFORM.&lt;/P&gt;&lt;P&gt;**END OF ZALV PROGRAM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*REPORT ALV.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;REPORT Z_LIST_MATERIALS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;TYPE-POOLS: SLIS.&lt;/P&gt;&lt;P&gt;TABLES:MARC, MARD, VBAP, LIPS, EKPO, VBFA, EKBE, MARM, VBBE, MARA, MBEW.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK SEL WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: S_WERKS FOR MARC-WERKS, " Plant&lt;/P&gt;&lt;P&gt;                S_MATNR FOR MARC-MATNR, " Material&lt;/P&gt;&lt;P&gt;                S_MTART FOR MARA-MTART. " Material Type&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK SEL.&lt;/P&gt;&lt;P&gt;PARAMETERS: P_VARI LIKE DISvariant-VARIANT. " ALV Variant&lt;/P&gt;&lt;P&gt;CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF INV OCCURS 100,&lt;/P&gt;&lt;P&gt;        WERKS LIKE MARD-WERKS, " Plant&lt;/P&gt;&lt;P&gt;        MATNR LIKE MARD-MATNR, " Material&lt;/P&gt;&lt;P&gt;        MTART LIKE MARA-MTART, " Material Type&lt;/P&gt;&lt;P&gt;        STPRS LIKE MBEW-STPRS, " Standard Price&lt;/P&gt;&lt;P&gt;        AVAIL LIKE MARD-LABST, " Available&lt;/P&gt;&lt;P&gt;        LABST LIKE MARD-LABST, " Unrestricted use&lt;/P&gt;&lt;P&gt;        INSME LIKE MARD-INSME, " Quality Inspection&lt;/P&gt;&lt;P&gt;        RETME LIKE MARD-RETME, " Returns&lt;/P&gt;&lt;P&gt;        TRANS LIKE MARC-UMLMC, " Stock in transit (calculated)&lt;/P&gt;&lt;P&gt;        UMLMC LIKE MARC-UMLMC, " Stock Transfer (plant)&lt;/P&gt;&lt;P&gt;        UMLME LIKE MARD-UMLME, " Transfer (SLoc)&lt;/P&gt;&lt;P&gt;        WESBS LIKE EKBE-WESBS, " GR Blocked Stock&lt;/P&gt;&lt;P&gt;        TRAME LIKE MARC-TRAME, " Stock in transit&lt;/P&gt;&lt;P&gt;        SPEME LIKE MARD-SPEME, " Blocked&lt;/P&gt;&lt;P&gt;        KWMENG LIKE VBAP-KWMENG, " Sales orders&lt;/P&gt;&lt;P&gt;        LFIMG LIKE LIPS-LFIMG, " Scheduled for Delivery&lt;/P&gt;&lt;P&gt;        MENGE LIKE EKPO-MENGE, " Open Purch. Orders&lt;/P&gt;&lt;P&gt;        VALUE LIKE MBEW-SALK3, " Stock Value (Calculated)&lt;/P&gt;&lt;P&gt;        MEINS LIKE MARA-MEINS, " Unit of measure&lt;/P&gt;&lt;P&gt;      END OF INV.&lt;/P&gt;&lt;P&gt;DATA: FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,&lt;/P&gt;&lt;P&gt;      HEADING  TYPE SLIS_T_LISTHEADER,&lt;/P&gt;&lt;P&gt;      LAYOUT   TYPE SLIS_LAYOUT_ALV,&lt;/P&gt;&lt;P&gt;      EVENTS   TYPE SLIS_T_EVENT,&lt;/P&gt;&lt;P&gt;      REPNAME  LIKE SY-REPID,&lt;/P&gt;&lt;P&gt;      F2CODE   LIKE SY-UCOMM VALUE  '&amp;amp;ETA',&lt;/P&gt;&lt;P&gt;      G_SAVE(1) TYPE C,&lt;/P&gt;&lt;P&gt;      G_EXIT(1) TYPE C,&lt;/P&gt;&lt;P&gt;      G_VARIANT LIKE DISVARIANT,&lt;/P&gt;&lt;P&gt;      GX_VARIANT LIKE DISVARIANT.&lt;/P&gt;&lt;P&gt;*break-point.&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;  REPNAME = SY-REPID.&lt;/P&gt;&lt;P&gt;  PERFORM INITIALIZE_FIELDCAT USING FIELDTAB[].&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_EVENTTAB USING EVENTS[].&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_COMMENT USING HEADING[].&lt;/P&gt;&lt;P&gt;  PERFORM INITIALIZE_VARIANT.&lt;/P&gt;&lt;P&gt;*break-point.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.&lt;/P&gt;&lt;P&gt;  PERFORM F4_FOR_VARIANT.&lt;/P&gt;&lt;P&gt;*break-point.&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;  PERFORM PAI_OF_SELECTION_SCREEN.&lt;/P&gt;&lt;P&gt;*break-point.&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM GET_MARD.&lt;/P&gt;&lt;P&gt;  PERFORM GET_UNIT_OF_MEASURE.&lt;/P&gt;&lt;P&gt;  PERFORM GET_MARC.&lt;/P&gt;&lt;P&gt;  PERFORM GET_EKPO.&lt;/P&gt;&lt;P&gt;  PERFORM GET_LIPS.&lt;/P&gt;&lt;P&gt;  PERFORM GET_VBAP.&lt;/P&gt;&lt;P&gt;  PERFORM GET_OPEN.&lt;/P&gt;&lt;P&gt;  PERFORM GET_PRICE.&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*break-point.&lt;/P&gt;&lt;P&gt;  PERFORM BUILD_LAYOUT USING LAYOUT.&lt;/P&gt;&lt;P&gt;  PERFORM WRITE_OUTPUT.&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  INITIALIZE_FIELDCAT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_FIELDTAB[]  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 INITIALIZE_FIELDCAT USING P_FIELDTAB TYPE SLIS_T_FIELDCAT_ALV.&lt;/P&gt;&lt;P&gt;  DATA: L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fixed columns (obligatory)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR L_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-TABNAME    = 'INV'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIX_COLUMN = 'X'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-NO_OUT     = 'O'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME  = 'WERKS'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME  = 'MATNR'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;totalized columns&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR L_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-TABNAME   = 'INV'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SP_GROUP  = 'A'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-DO_SUM    = 'X'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'LABST'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'INSME'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'RETME'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'UMLME'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'WESBS'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'SPEME'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;columns with different description&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'KWMENG'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_M = 'Sales Orders'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_S = 'Sales Or'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_L = 'Sales Orders Qty'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'LFIMG'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_M = 'Sched. Delivery'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_S = 'Schd. Del'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_L = 'Scheduled for Delivery'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'TRANS'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_M = 'Stk. in transit'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_S = 'Stk. trns'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_L = 'Stock in transit (sum)'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'AVAIL'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_M = 'Available'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_S = 'Avail.'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_L = 'Stock Available'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'MENGE'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_M = 'Open Orders'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_S = 'Open Ord'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SELTEXT_L = 'Open Purchase Orders'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;columns not displayed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR L_FIELDCAT.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-TABNAME   = 'INV'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-SP_GROUP  = 'A'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-NO_OUT    = 'X'.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'MEINS'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'UMLMC'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'TRAME'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'STPRS'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;  L_FIELDCAT-FIELDNAME = 'VALUE'.&lt;/P&gt;&lt;P&gt;  APPEND L_FIELDCAT TO P_FIELDTAB.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " INITIALIZE_FIELDCAT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BUILD_EVENTTAB&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_EVENTS[]  text                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.&lt;/P&gt;&lt;P&gt;  DATA: LS_EVENT TYPE SLIS_ALV_EVENT.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            I_LIST_TYPE = 0&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            ET_EVENTS   = P_EVENTS.&lt;/P&gt;&lt;P&gt;  READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;                           INTO LS_EVENT.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.&lt;/P&gt;&lt;P&gt;    APPEND LS_EVENT TO P_EVENTS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " BUILD_EVENTTAB&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  BUILD_COMMENT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_HEADING[]  text                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.&lt;/P&gt;&lt;P&gt;  DATA: HLINE TYPE SLIS_LISTHEADER,&lt;/P&gt;&lt;P&gt;        TEXT(60) TYPE C,&lt;/P&gt;&lt;P&gt;        SEP(20) TYPE C.&lt;/P&gt;&lt;P&gt;  CLEAR: HLINE, TEXT.&lt;/P&gt;&lt;P&gt;  HLINE-TYP  = 'H'.&lt;/P&gt;&lt;P&gt;  WRITE: TEXT-101 TO TEXT+23.&lt;/P&gt;&lt;P&gt;  HLINE-INFO = TEXT.&lt;/P&gt;&lt;P&gt;  APPEND HLINE TO P_HEADING.&lt;/P&gt;&lt;P&gt;  CLEAR TEXT.&lt;/P&gt;&lt;P&gt;  WRITE: 'User: ' TO TEXT,&lt;/P&gt;&lt;P&gt;         SY-UNAME TO TEXT+6,&lt;/P&gt;&lt;P&gt;         'Date: ' TO TEXT+25,&lt;/P&gt;&lt;P&gt;         SY-DATUM TO TEXT+31,&lt;/P&gt;&lt;P&gt;         'Page: ' TO TEXT+50,&lt;/P&gt;&lt;P&gt;         SY-PAGNO TO TEXT+56.&lt;/P&gt;&lt;P&gt;  HLINE-INFO = TEXT.&lt;/P&gt;&lt;P&gt;  APPEND HLINE TO P_HEADING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " BUILD_COMMENT&lt;/P&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;      FORM TOP_OF_PAGE                                              *&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;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM TOP_OF_PAGE.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            IT_LIST_COMMENTARY = HEADING.&lt;/P&gt;&lt;P&gt;ENDFORM.&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  INITIALIZE_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;P&gt;&amp;lt;b&amp;gt;FORM INITIALIZE_VARIANT.&lt;/P&gt;&lt;P&gt;  G_SAVE = 'A'.&lt;/P&gt;&lt;P&gt;  CLEAR G_VARIANT.&lt;/P&gt;&lt;P&gt;  G_VARIANT-REPORT = REPNAME.&lt;/P&gt;&lt;P&gt;  GX_VARIANT = G_VARIANT.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            I_SAVE     = G_SAVE&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;            CS_VARIANT = GX_VARIANT&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            NOT_FOUND  = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    P_VARI = GX_VARIANT-VARIANT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " INITIALIZE_VARIANT&amp;lt;/b&amp;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  F4_FOR_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;P&gt;FORM F4_FOR_VARIANT.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            IS_VARIANT = G_VARIANT&lt;/P&gt;&lt;P&gt;            I_SAVE     = G_SAVE&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            E_EXIT     = G_EXIT&lt;/P&gt;&lt;P&gt;            ES_VARIANT = GX_VARIANT&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            NOT_FOUND  = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 2.&lt;/P&gt;&lt;P&gt;    MESSAGE ID SY-MSGID TYPE 'S'      NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IF G_EXIT = SPACE.&lt;/P&gt;&lt;P&gt;      P_VARI = GX_VARIANT-VARIANT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F4_FOR_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;      Form  PAI_OF_SELECTION_SCREEN&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM PAI_OF_SELECTION_SCREEN.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  IF NOT P_VARI IS INITIAL.&lt;/P&gt;&lt;P&gt;    MOVE G_VARIANT TO GX_VARIANT.&lt;/P&gt;&lt;P&gt;    MOVE P_VARI TO GX_VARIANT-VARIANT.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              I_SAVE     = G_SAVE&lt;/P&gt;&lt;P&gt;         CHANGING&lt;/P&gt;&lt;P&gt;              CS_VARIANT = GX_VARIANT.&lt;/P&gt;&lt;P&gt;    G_VARIANT = GX_VARIANT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM INITIALIZE_VARIANT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " PAI_OF_SELECTION_SCREEN&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  GET_MARD&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_MARD.&lt;/P&gt;&lt;P&gt;  SELECT MATNR WERKS LABST INSME RETME UMLME SPEME&lt;/P&gt;&lt;P&gt;         FROM MARD&lt;/P&gt;&lt;P&gt;         INTO corresponding fields of INV&lt;/P&gt;&lt;P&gt;         WHERE MATNR IN S_MATNR&lt;/P&gt;&lt;P&gt;         AND   WERKS IN S_WERKS.&lt;/P&gt;&lt;P&gt;    COLLECT INV.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;  PERFORM FILTER_BY_MATERIAL_TYPE.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GET_MARD&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  FILTER_BY_MATERIAL_TYPE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FILTER_BY_MATERIAL_TYPE.&lt;/P&gt;&lt;P&gt;  LOOP AT INV.&lt;/P&gt;&lt;P&gt;    CLEAR INV-MTART.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE MTART&lt;/P&gt;&lt;P&gt;           INTO INV-MTART&lt;/P&gt;&lt;P&gt;           FROM MARA&lt;/P&gt;&lt;P&gt;           WHERE MATNR EQ INV-MATNR&lt;/P&gt;&lt;P&gt;           AND   MTART IN S_MTART.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      MODIFY INV.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      DELETE INV.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " FILTER_BY_MATERIAL_TYPE&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  GET_MARC&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_MARC.&lt;/P&gt;&lt;P&gt;  LOOP AT INV.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE UMLMC TRAME&lt;/P&gt;&lt;P&gt;           FROM MARC&lt;/P&gt;&lt;P&gt;           INTO CORRESPONDING FIELDS OF INV&lt;/P&gt;&lt;P&gt;           WHERE MATNR EQ INV-MATNR&lt;/P&gt;&lt;P&gt;           AND   WERKS EQ INV-WERKS.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;      INV-TRANS = INV-UMLMC + INV-TRAME.&lt;/P&gt;&lt;P&gt;      MODIFY INV.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GET_MARC&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  GET_EKPO&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_EKPO.&lt;/P&gt;&lt;P&gt;  DATA: WESBS LIKE INV-WESBS,&lt;/P&gt;&lt;P&gt;        SHKZG LIKE EKBE-SHKZG,&lt;/P&gt;&lt;P&gt;        MEINS LIKE EKPO-MEINS,&lt;/P&gt;&lt;P&gt;        LMEIN LIKE EKPO-LMEIN.&lt;/P&gt;&lt;P&gt;  LOOP AT INV.&lt;/P&gt;&lt;P&gt;    CLEAR: WESBS, SHKZG, MEINS, LMEIN.&lt;/P&gt;&lt;P&gt;    SELECT Y&lt;SUB&gt;WESBS Y&lt;/SUB&gt;SHKZG X&lt;SUB&gt;MEINS X&lt;/SUB&gt;LMEIN&lt;/P&gt;&lt;P&gt;           INTO (WESBS, SHKZG, MEINS, LMEIN)&lt;/P&gt;&lt;P&gt;           FROM EKPO AS X JOIN EKBE AS Y&lt;/P&gt;&lt;P&gt;           ON   X&lt;SUB&gt;EBELN = Y&lt;/SUB&gt;EBELN&lt;/P&gt;&lt;P&gt;           AND  X&lt;SUB&gt;EBELP = Y&lt;/SUB&gt;EBELP&lt;/P&gt;&lt;P&gt;           WHERE X~MATNR EQ INV-MATNR&lt;/P&gt;&lt;P&gt;           AND   X~WERKS EQ INV-WERKS&lt;/P&gt;&lt;P&gt;           AND   X~LOEKZ NE 'L'.&lt;/P&gt;&lt;P&gt;      IF SHKZG EQ 'H'.&lt;/P&gt;&lt;P&gt;        MULTIPLY WESBS BY -1.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      IF MEINS NE LMEIN.&lt;/P&gt;&lt;P&gt;        PERFORM CONVERT_UNIT_OF_MEASURE CHANGING INV-MATNR MEINS WESBS.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      ADD WESBS TO INV-WESBS.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    MODIFY INV.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GET_EKPO&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  GET_LIPS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_LIPS.&lt;/P&gt;&lt;P&gt;  DATA: LFIMG LIKE INV-LFIMG.&lt;/P&gt;&lt;P&gt;  LOOP AT INV.&lt;/P&gt;&lt;P&gt;    CLEAR: LFIMG, INV-LFIMG.&lt;/P&gt;&lt;P&gt;    SELECT OMENG&lt;/P&gt;&lt;P&gt;           INTO LFIMG&lt;/P&gt;&lt;P&gt;           FROM VBBE&lt;/P&gt;&lt;P&gt;           WHERE MATNR EQ INV-MATNR&lt;/P&gt;&lt;P&gt;           AND   WERKS EQ INV-WERKS&lt;/P&gt;&lt;P&gt;           AND   VBTYP EQ 'J'.&lt;/P&gt;&lt;P&gt;      ADD LFIMG TO INV-LFIMG.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    MODIFY INV.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GET_LIPS&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  GET_VBAP&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_VBAP.&lt;/P&gt;&lt;P&gt;  DATA: KWMENG LIKE INV-KWMENG.&lt;/P&gt;&lt;P&gt;  LOOP AT INV.&lt;/P&gt;&lt;P&gt;    CLEAR: KWMENG, INV-KWMENG.&lt;/P&gt;&lt;P&gt;    SELECT OMENG&lt;/P&gt;&lt;P&gt;           INTO KWMENG&lt;/P&gt;&lt;P&gt;           FROM VBBE&lt;/P&gt;&lt;P&gt;           WHERE MATNR EQ INV-MATNR&lt;/P&gt;&lt;P&gt;           AND   WERKS EQ INV-WERKS&lt;/P&gt;&lt;P&gt;           AND   VBTYP EQ 'C'.&lt;/P&gt;&lt;P&gt;      ADD KWMENG TO INV-KWMENG.&lt;/P&gt;&lt;P&gt;    ENDSELECT.&lt;/P&gt;&lt;P&gt;    INV-AVAIL = INV-LABST - INV-INSME - INV-KWMENG - INV-LFIMG.&lt;/P&gt;&lt;P&gt;    MODIFY INV.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GET_VBAP&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  GET_UNIT_OF_MEASURE&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 GET_UNIT_OF_MEASURE.&lt;/P&gt;&lt;P&gt;  LOOP AT INV.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE MEINS&lt;/P&gt;&lt;P&gt;           FROM MARA&lt;/P&gt;&lt;P&gt;           INTO INV-MEINS&lt;/P&gt;&lt;P&gt;           WHERE MATNR EQ INV-MATNR.&lt;/P&gt;&lt;P&gt;    MODIFY INV.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GET_UNIT_OF_MEASURE&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  GET_OPEN&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_OPEN.&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF XTAB OCCURS 10,       " Open orders table&lt;/P&gt;&lt;P&gt;           WERKS LIKE EKPO-WERKS,&lt;/P&gt;&lt;P&gt;           LGORT LIKE EKPO-LGORT,&lt;/P&gt;&lt;P&gt;           MATNR LIKE EKPO-MATNR,&lt;/P&gt;&lt;P&gt;           MENGE LIKE EKPO-MENGE,&lt;/P&gt;&lt;P&gt;           MENGK LIKE EKPO-MENGE,&lt;/P&gt;&lt;P&gt;         END OF XTAB.&lt;/P&gt;&lt;P&gt;  RANGES: L_WERKS FOR MARD-WERKS.&lt;/P&gt;&lt;P&gt;  LOOP AT INV.&lt;/P&gt;&lt;P&gt;    REFRESH XTAB.&lt;/P&gt;&lt;P&gt;    CLEAR: XTAB, L_WERKS.&lt;/P&gt;&lt;P&gt;    MOVE INV-WERKS TO L_WERKS-LOW.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'MB_ADD_PURCHASE_ORDER_QUANTITY'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;              X_MATNR = INV-MATNR&lt;/P&gt;&lt;P&gt;              X_MEINS = INV-MEINS&lt;/P&gt;&lt;P&gt;              X_ELIKZ = SPACE&lt;/P&gt;&lt;P&gt;              X_LOEKZ = SPACE&lt;/P&gt;&lt;P&gt;         TABLES&lt;/P&gt;&lt;P&gt;              XTAB    = XTAB&lt;/P&gt;&lt;P&gt;              XWERKS  = L_WERKS.&lt;/P&gt;&lt;P&gt;    MOVE XTAB-MENGE TO INV-MENGE.&lt;/P&gt;&lt;P&gt;    MODIFY INV.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GET_OPEN&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  GET_PRICE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_PRICE.&lt;/P&gt;&lt;P&gt;  LOOP AT INV.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE STPRS&lt;/P&gt;&lt;P&gt;           FROM MBEW&lt;/P&gt;&lt;P&gt;           INTO INV-STPRS&lt;/P&gt;&lt;P&gt;           WHERE MATNR EQ INV-MATNR&lt;/P&gt;&lt;P&gt;           AND   BWKEY EQ INV-WERKS&lt;/P&gt;&lt;P&gt;           AND   BWTAR EQ SPACE.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;        INV-VALUE = INV-STPRS *&lt;/P&gt;&lt;P&gt;                  ( INV-LABST + INV-INSME + INV-TRANS + INV-SPEME ).&lt;/P&gt;&lt;P&gt;        MODIFY INV.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_PRICE&lt;/P&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;      FORM CONVERT_UNIT_OF_MEASURE                                  *&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;      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_MATNR                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_VRKME                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  P_QUANT                                                       *&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 CONVERT_UNIT_OF_MEASURE USING P_MATNR P_VRKME P_QUANT.&lt;/P&gt;&lt;P&gt;  DATA: UMREZ LIKE MARM-UMREZ,&lt;/P&gt;&lt;P&gt;        UMREN LIKE MARM-UMREN.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE UMREZ UMREN&lt;/P&gt;&lt;P&gt;         INTO (UMREZ, UMREN)&lt;/P&gt;&lt;P&gt;         FROM MARM&lt;/P&gt;&lt;P&gt;         WHERE MATNR EQ P_MATNR&lt;/P&gt;&lt;P&gt;         AND   MEINH EQ P_VRKME.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;    COMPUTE P_QUANT = ( P_QUANT * UMREZ ) / UMREN.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&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;P_LAYOUT  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 USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.&lt;/P&gt;&lt;P&gt;  P_LAYOUT-F2CODE       = F2CODE.&lt;/P&gt;&lt;P&gt;  P_LAYOUT-ZEBRA        = 'X'.&lt;/P&gt;&lt;P&gt;  P_LAYOUT-DETAIL_POPUP = 'X'.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " 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;P&gt;*&amp;amp;      Form  WRITE_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;FORM WRITE_OUTPUT.&lt;/P&gt;&lt;P&gt;  SORT INV BY WERKS MATNR.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            I_PROGRAM_NAME     = 'REPNAME'&lt;/P&gt;&lt;P&gt;            I_INTERNAL_TABNAME = 'INV'&lt;/P&gt;&lt;P&gt;            I_INCLNAME         = 'REPNAME'&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;            CT_FIELDCAT        = FIELDTAB.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            I_CALLBACK_PROGRAM = 'REPNAME'&lt;/P&gt;&lt;P&gt;            I_STRUCTURE_NAME   = 'INV'&lt;/P&gt;&lt;P&gt;            IS_LAYOUT          = LAYOUT&lt;/P&gt;&lt;P&gt;            IT_FIELDCAT        = FIELDTAB&lt;/P&gt;&lt;P&gt;            I_DEFAULT          = 'A'&lt;/P&gt;&lt;P&gt;            I_SAVE             = G_SAVE&lt;/P&gt;&lt;P&gt;            IS_VARIANT         = G_VARIANT&lt;/P&gt;&lt;P&gt;            IT_EVENTS          = EVENTS[]&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            T_OUTTAB           = INV.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 24 Sep 2007 06:50:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/function-module/m-p/2858265#M670201</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-24T06:50:09Z</dc:date>
    </item>
  </channel>
</rss>

