<?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: not divide in zero in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755473#M641152</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try something like&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;  LOOP AT truma_tab ASSIGNING &amp;lt;fs_truma&amp;gt;.
    READ TABLE zefi_tab ASSIGNING &amp;lt;fs_zefi&amp;gt; INDEX sy-index.
    IF sy-subrc = 0.
      DO 12 TIMES
        VARYING w1 FROM wa_per_tab-month1 NEXT wa_per_tab-month2
        VARYING w2 FROM &amp;lt;fs_truma&amp;gt;-month1 NEXT &amp;lt;fs_truma&amp;gt;-month2
        VARYING w3 FROM &amp;lt;fs_zefi&amp;gt;-month1 NEXT &amp;lt;fs_zefi&amp;gt;-month2.
        IF w3 &amp;lt;&amp;gt; 0.
          w1 = w2 / w3.
        ENDIF.
      ENDDO
      append wa_per_tab to per_tab.
    ENDIF.
  ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 03 Sep 2007 13:40:45 GMT</pubDate>
    <dc:creator>RaymondGiuseppi</dc:creator>
    <dc:date>2007-09-03T13:40:45Z</dc:date>
    <item>
      <title>not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755462#M641141</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;i doing this divide and i wont to now what is the &amp;lt;b&amp;gt;best way&amp;lt;/b&amp;gt; to do the divide like in bold but take care on divide that not be in &amp;lt;b&amp;gt;0&amp;lt;/b&amp;gt; (bring dump) &lt;/P&gt;&lt;P&gt;tankes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i reward&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT truma_tab ASSIGNING &amp;lt;fs_truma&amp;gt;.&lt;/P&gt;&lt;P&gt;        READ TABLE zefi_tab ASSIGNING &amp;lt;fs_zefi&amp;gt; INDEX sy-index.&lt;/P&gt;&lt;P&gt;        IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;          &amp;lt;b&amp;gt;          wa_per_tab-month1 =  &amp;lt;fs_truma&amp;gt;-month1 / &amp;lt;fs_zefi&amp;gt;-month1 .&lt;/P&gt;&lt;P&gt;          wa_per_tab-month2 = &amp;lt;fs_truma&amp;gt;-month2 / &amp;lt;fs_zefi&amp;gt;-month2.&lt;/P&gt;&lt;P&gt;          wa_per_tab-month3 = &amp;lt;fs_truma&amp;gt;-month3 / &amp;lt;fs_zefi&amp;gt;-month3.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;     &lt;/P&gt;&lt;P&gt;          APPEND wa_per_tab TO per_tab.         &lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:11:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755462#M641141</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T13:11:56Z</dc:date>
    </item>
    <item>
      <title>Re: not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755463#M641142</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;Use like this:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0&lt;/P&gt;&lt;P&gt;AND NOT &amp;lt;fs_zefi&amp;gt;-month1 IS INITIAL&lt;/P&gt;&lt;P&gt;AND NOT &amp;lt;fs_zefi&amp;gt;-month2 IS INITIAL &lt;/P&gt;&lt;P&gt;AND NOT &amp;lt;fs_zefi&amp;gt;-month3 IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wa_per_tab-month1 = &amp;lt;fs_truma&amp;gt;-month1 / &amp;lt;fs_zefi&amp;gt;-month1 .&lt;/P&gt;&lt;P&gt;wa_per_tab-month2 = &amp;lt;fs_truma&amp;gt;-month2 / &amp;lt;fs_zefi&amp;gt;-month2.&lt;/P&gt;&lt;P&gt;wa_per_tab-month3 = &amp;lt;fs_truma&amp;gt;-month3 / &amp;lt;fs_zefi&amp;gt;-month3.&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;Thanks and Best Regards,&lt;/P&gt;&lt;P&gt;Vikas Bittera.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:14:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755463#M641142</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T13:14:24Z</dc:date>
    </item>
    <item>
      <title>Re: not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755464#M641143</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;&lt;/P&gt;&lt;P&gt;try with this example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS number TYPE i. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: result TYPE p LENGTH 8 DECIMALS 2, &lt;/P&gt;&lt;P&gt;      oref   TYPE REF TO cx_root, &lt;/P&gt;&lt;P&gt;      text   TYPE string. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TRY. &lt;/P&gt;&lt;P&gt;    IF ABS( number ) &amp;gt; 100. &lt;/P&gt;&lt;P&gt;      RAISE EXCEPTION TYPE cx_demo_abs_too_large. &lt;/P&gt;&lt;P&gt;    ENDIF. &lt;/P&gt;&lt;P&gt;    PERFORM calculation USING    number &lt;/P&gt;&lt;P&gt;                      CHANGING result &lt;/P&gt;&lt;P&gt;                               text. &lt;/P&gt;&lt;P&gt;  CATCH cx_sy_arithmetic_error INTO oref. &lt;/P&gt;&lt;P&gt;    text = oref-&amp;gt;get_text( ). &lt;/P&gt;&lt;P&gt;  CATCH cx_root INTO oref. &lt;/P&gt;&lt;P&gt;    text = oref-&amp;gt;get_text( ). &lt;/P&gt;&lt;P&gt;ENDTRY. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT text IS INITIAL. &lt;/P&gt;&lt;P&gt;  WRITE / text. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE: / 'Final result:', result. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM calculation USING    p_number LIKE number &lt;/P&gt;&lt;P&gt;                 CHANGING p_result LIKE result &lt;/P&gt;&lt;P&gt;                          p_text   LIKE text &lt;/P&gt;&lt;P&gt;                          RAISING  cx_sy_arithmetic_error. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA l_oref TYPE REF TO cx_root. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TRY. &lt;/P&gt;&lt;P&gt;      p_result =  1 / p_number. &lt;/P&gt;&lt;P&gt;      WRITE: / 'Result of division:', p_result. &lt;/P&gt;&lt;P&gt;      p_result = SQRT( p_number ). &lt;/P&gt;&lt;P&gt;      WRITE: / 'Result of square root:', p_result. &lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;    CATCH cx_sy_zerodivide INTO l_oref.&amp;lt;/b&amp;gt; &lt;/P&gt;&lt;P&gt;      p_text = l_oref-&amp;gt;get_text( ). &lt;/P&gt;&lt;P&gt;    CLEANUP. &lt;/P&gt;&lt;P&gt;      CLEAR p_result. &lt;/P&gt;&lt;P&gt;  ENDTRY.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:15:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755464#M641143</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T13:15:03Z</dc:date>
    </item>
    <item>
      <title>Re: not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755465#M641144</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;u  have to put one more condition &lt;/P&gt;&lt;P&gt;if wa_per_tab-month1 ne '0.0.&lt;/P&gt;&lt;P&gt;wa_per_tab-month1 = &amp;lt;fs_truma&amp;gt;-month1 / &amp;lt;fs_zefi&amp;gt;-month1 .&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;Regards&lt;/P&gt;&lt;P&gt;Peram&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:15:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755465#M641144</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T13:15:25Z</dc:date>
    </item>
    <item>
      <title>Re: not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755466#M641145</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi vikas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i wont that if month 1 = 0 dont do that but do the divide in month 2 and 3 (if ne 0)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:19:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755466#M641145</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T13:19:31Z</dc:date>
    </item>
    <item>
      <title>Re: not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755467#M641146</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;before calculation do the check :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if value ne 0.&lt;/P&gt;&lt;P&gt;do the validations.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Seshu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:20:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755467#M641146</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T13:20:36Z</dc:date>
    </item>
    <item>
      <title>Re: not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755468#M641147</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi seshu&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i have in program(i not write) 12 month what is the &amp;lt;b&amp;gt;efficient&amp;lt;/b&amp;gt;way to do that?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:22:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755468#M641147</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T13:22:39Z</dc:date>
    </item>
    <item>
      <title>Re: not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755469#M641148</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;I am sorry i could not understand this.. you are saying that if month1 = 0 dont do, but for 2 and 3 do this if they are non zero..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;both have the same meaning... that only do when 1, 2 and 3 anre non zero..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See for avoiding the devide by zero, we only need to make a check on the fields by which u r deviding..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;Vikas Bittera.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:27:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755469#M641148</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T13:27:04Z</dc:date>
    </item>
    <item>
      <title>Re: not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755470#M641149</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;yes u right this is what i think to but waht i wont to tell u is is month1 = 0,&lt;/P&gt;&lt;P&gt;ans month2 = 10 ,month3 = 20, &lt;/P&gt;&lt;P&gt;i  wont to do the divide on month2 and month 3 rows but not in row 1 (month1)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:31:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755470#M641149</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T13:31:50Z</dc:date>
    </item>
    <item>
      <title>Re: not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755471#M641150</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Tal,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check the below program and i had same issue ( Short dump dividing by zero).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;see the bold one&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;type-pools&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;type-pools : slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;tables : mara,&lt;/P&gt;&lt;P&gt;         makt,&lt;/P&gt;&lt;P&gt;         mbew,&lt;/P&gt;&lt;P&gt;         konp,&lt;/P&gt;&lt;P&gt;         pgmi,&lt;/P&gt;&lt;P&gt;         marc,&lt;/P&gt;&lt;P&gt;         RMCP3,&lt;/P&gt;&lt;P&gt;         sscrfields,&lt;/P&gt;&lt;P&gt;         mvke.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for MARC and MARA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : begin of i_join occurs 0,&lt;/P&gt;&lt;P&gt;       matnr like mara-matnr, " Material #&lt;/P&gt;&lt;P&gt;       meins like mara-meins, " Unit of Measure&lt;/P&gt;&lt;P&gt;       werks like marc-werks, " Plant&lt;/P&gt;&lt;P&gt;       zzdept like marc-zzdept," Department&lt;/P&gt;&lt;P&gt;       end of i_join.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for PGMI&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of i_pgmi occurs 0,&lt;/P&gt;&lt;P&gt;       werks like pgmi-werks, " Plant,&lt;/P&gt;&lt;P&gt;       nrmit like pgmi-nrmit, " Material #&lt;/P&gt;&lt;P&gt;       wemit like pgmi-wemit, " Plant&lt;/P&gt;&lt;P&gt;       end of i_pgmi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for MBEW&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data i_mbew like mbew occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for Output&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : begin of i_output occurs 0 ,&lt;/P&gt;&lt;P&gt;       matnr like mara-matnr, " Material #&lt;/P&gt;&lt;P&gt;       maktx like makt-maktx, " Material Desc&lt;/P&gt;&lt;P&gt;       VPRSV like mbew-VPRSV, " Price Control Indicator&lt;/P&gt;&lt;P&gt;       VERPR like mbew-VERPR, " Moving Avg Price&lt;/P&gt;&lt;P&gt;       meins like mara-meins, " Base Unit of Measure&lt;/P&gt;&lt;P&gt;       STPRS like mbew-STPRS, " Standard Price&lt;/P&gt;&lt;P&gt;       LPLPR like mbew-LPLPR, " Current Planned Price&lt;/P&gt;&lt;P&gt;       ZPLPR like mbew-ZPLPR, " Future Planned Price&lt;/P&gt;&lt;P&gt;       VPLPR like mbew-VPLPR, " Previous Planned Price&lt;/P&gt;&lt;P&gt;       kbetr like konp-kbetr, " Sales Price&lt;/P&gt;&lt;P&gt;       KMEIN like konp-KMEIN, " Sales Unit&lt;/P&gt;&lt;P&gt;       margin(5) type p decimals 2,&lt;/P&gt;&lt;P&gt;       vmsta like mvke-vmsta, " Material Status.&lt;/P&gt;&lt;P&gt;       end of i_output.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for A004&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : i_a004 like a004 occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data : wa_lines type i,&lt;/P&gt;&lt;P&gt;       wa_maktx type makt-maktx,&lt;/P&gt;&lt;P&gt;       v_flag type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ALV Function Module Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: g_repid like sy-repid,&lt;/P&gt;&lt;P&gt;      gs_layout type slis_layout_alv,&lt;/P&gt;&lt;P&gt;      g_exit_caused_by_caller,&lt;/P&gt;&lt;P&gt;      gs_exit_caused_by_user type slis_exit_by_user.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: gt_fieldcat    type slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      gs_print       type slis_print_alv,&lt;/P&gt;&lt;P&gt;      gt_events      type slis_t_event,&lt;/P&gt;&lt;P&gt;      gt_list_top_of_page type slis_t_listheader,&lt;/P&gt;&lt;P&gt;      g_status_set   type slis_formname value 'PF_STATUS_SET',&lt;/P&gt;&lt;P&gt;      g_user_command type slis_formname value 'USER_COMMAND',&lt;/P&gt;&lt;P&gt;      g_top_of_page  type slis_formname value 'TOP_OF_PAGE',&lt;/P&gt;&lt;P&gt;      g_top_of_list  type slis_formname value 'TOP_OF_LIST',&lt;/P&gt;&lt;P&gt;      g_end_of_list  type slis_formname value 'END_OF_LIST',&lt;/P&gt;&lt;P&gt;      g_variant LIKE disvariant,&lt;/P&gt;&lt;P&gt;      g_save(1) TYPE c,&lt;/P&gt;&lt;P&gt;      g_tabname_header TYPE slis_tabname,&lt;/P&gt;&lt;P&gt;      g_tabname_item   TYPE slis_tabname,&lt;/P&gt;&lt;P&gt;      g_exit(1) TYPE c,&lt;/P&gt;&lt;P&gt;      gx_variant LIKE disvariant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : gr_layout_bck type slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Selection-screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;selection-screen : begin of block blk with frame title text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters : p_werks like marc-werks default '1000' obligatory.&lt;/P&gt;&lt;P&gt;select-options : s_dept for marc-zzdept obligatory,&lt;/P&gt;&lt;P&gt;                 s_matnr for mara-matnr,&lt;/P&gt;&lt;P&gt;                 s_mtart for mara-mtart,&lt;/P&gt;&lt;P&gt;                 s_vprsv for mbew-VPRSV,&lt;/P&gt;&lt;P&gt;                 s_PRGRP for RMCP3-PRGRP MATCHCODE OBJECT MAT2 ,&lt;/P&gt;&lt;P&gt;                 s_vmsta for mvke-vmsta.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: end of block blk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.&lt;/P&gt;&lt;P&gt;*PARAMETERS: p_vari LIKE disvariant-variant.&lt;/P&gt;&lt;P&gt;*SELECTION-SCREEN END OF BLOCK b3.&lt;/P&gt;&lt;P&gt;*&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;At slection screen events                                            *&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;*-- Process on value request&lt;/P&gt;&lt;P&gt;*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM f4_for_variant.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&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;Initialization                                                       *&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;&lt;/P&gt;&lt;P&gt;Initialization.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  g_repid = sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sscrfields-functxt_01 = 'Clear Selection'.&lt;/P&gt;&lt;P&gt;selection-screen function key 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;case sscrfields-ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when 'Clear Selection' or 'FC01'.&lt;/P&gt;&lt;P&gt;clear: s_matnr,&lt;/P&gt;&lt;P&gt;       p_werks.&lt;/P&gt;&lt;P&gt;refresh: s_matnr,&lt;/P&gt;&lt;P&gt;         s_dept,&lt;/P&gt;&lt;P&gt;         s_mtart,&lt;/P&gt;&lt;P&gt;         s_vprsv,&lt;/P&gt;&lt;P&gt;         s_PRGRP,&lt;/P&gt;&lt;P&gt;         s_vmsta.&lt;/P&gt;&lt;P&gt;&lt;/P&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;&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;Start-of-selection.&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;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Clear the all data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform clear_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from PGMI Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform get_pgmi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from MARC and MARA Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform get_mara_marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from MBEW Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform get_mbew.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Move the data into OUTPUT Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform move_output_internal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*end-of-selection.&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not i_output[] is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV Function Module&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform print_alv.&lt;/P&gt;&lt;P&gt;  endif.&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_pgmi&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;      Select the data from PGMI Table&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_pgmi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear v_flag.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If Product group has a value at Selection-screen.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if not s_prgrp is initial.&lt;/P&gt;&lt;P&gt;    select werks nrmit wemit from pgmi into table i_pgmi&lt;/P&gt;&lt;P&gt;                             where prgrp in s_prgrp&lt;/P&gt;&lt;P&gt;                             and   werks = p_werks&lt;/P&gt;&lt;P&gt;                             and   wemit = p_werks.&lt;/P&gt;&lt;P&gt;    v_flag = 'X'.&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.                    " get_pgmi&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_mara_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;      Select the data from MARA and MARC&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_mara_marc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if v_flag = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select a&lt;SUB&gt;matnr a&lt;/SUB&gt;meins b&lt;SUB&gt;werks b&lt;/SUB&gt;zzdept into table i_join&lt;/P&gt;&lt;P&gt;           from mara as a inner join marc as b on a&lt;SUB&gt;matnr = b&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;           for all entries in i_pgmi&lt;/P&gt;&lt;P&gt;                                     where a~matnr in s_matnr&lt;/P&gt;&lt;P&gt;                                     and   b~werks = p_werks&lt;/P&gt;&lt;P&gt;                                     and   b~zzdept in s_dept&lt;/P&gt;&lt;P&gt;                                     and   a~mtart in s_mtart&lt;/P&gt;&lt;P&gt;                                     and   a~matnr = i_pgmi-nrmit&lt;/P&gt;&lt;P&gt;                                     and   b~werks = i_pgmi-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from MARA and MARC Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select a&lt;SUB&gt;matnr a&lt;/SUB&gt;meins b&lt;SUB&gt;werks b&lt;/SUB&gt;zzdept into table i_join&lt;/P&gt;&lt;P&gt;           from mara as a inner join marc as b on a&lt;SUB&gt;matnr = b&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;                                     where a~matnr in s_matnr&lt;/P&gt;&lt;P&gt;                                     and   b~werks = p_werks&lt;/P&gt;&lt;P&gt;                                     and   b~zzdept in s_dept&lt;/P&gt;&lt;P&gt;                                     and   a~mtart in s_mtart.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear wa_lines.&lt;/P&gt;&lt;P&gt;  describe  table i_join lines wa_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if wa_lines is initial.&lt;/P&gt;&lt;P&gt;    message i000(zwave) with 'List contains no data'.&lt;/P&gt;&lt;P&gt;    stop.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort i_join by matnr werks zzdept.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_mara_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_mbew&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;      Select the data from MBEW Table&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_mbew.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from MBEW.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  select * from mbew into table i_mbew&lt;/P&gt;&lt;P&gt;           for all entries in i_join&lt;/P&gt;&lt;P&gt;           where matnr = i_join-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear wa_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  describe  table i_mbew lines wa_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if wa_lines is initial.&lt;/P&gt;&lt;P&gt;    message i000(zwave) with 'List contains no data'.&lt;/P&gt;&lt;P&gt;    stop.&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;  sort i_mbew by matnr bwkey.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_mbew&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  move_output_internal&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;     Final Results&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM move_output_internal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at i_join.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear wa_maktx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Compare the data with MVKE Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single vmsta from mvke into mvke-vmsta&lt;/P&gt;&lt;P&gt;                             where matnr = i_join-matnr&lt;/P&gt;&lt;P&gt;                             and   vkorg = '0001'&lt;/P&gt;&lt;P&gt;                             and   vtweg = '01'&lt;/P&gt;&lt;P&gt;                             and   vmsta in s_vmsta.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      continue.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      i_output-vmsta = mvke-vmsta.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    read table i_mbew with key matnr = i_join-matnr&lt;/P&gt;&lt;P&gt;                               bwkey = i_join-werks&lt;/P&gt;&lt;P&gt;                               binary search.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Price Control Indicator&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-VPRSV = i_mbew-VPRSV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Moving Average Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-VERPR = i_mbew-VERPR / i_mbew-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Standard Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-STPRS = i_mbew-STPRS / i_mbew-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Current Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-LPLPR = i_mbew-LPLPR / i_mbew-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Future Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-ZPLPR = i_mbew-ZPLPR / i_mbew-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Previous Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-VPLPR = i_mbew-VPLPR / i_mbew-peinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Base Unit of Measure - Added by Seshu 01/09/2007&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_output-meins = i_join-meins.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      continue.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the sales Price.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    perform get_sales_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if i_mbew-VPRSV = 'V'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;* Get the Percentage of Margin&lt;/P&gt;&lt;P&gt;      if i_output-kbetr ne '0.00'.&lt;/P&gt;&lt;P&gt;        i_output-margin = ( ( i_output-kbetr - i_mbew-VERPR )&lt;/P&gt;&lt;P&gt;                           / i_output-kbetr ) * 100 .&lt;/P&gt;&lt;P&gt;      endif.&amp;lt;/b&amp;gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Percentage of Margin&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      if i_output-kbetr ne '0.00'.&lt;/P&gt;&lt;P&gt;        i_output-margin = ( ( i_output-kbetr - i_output-stprs )&lt;/P&gt;&lt;P&gt;                           / i_output-kbetr ) * 100 .&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;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the material Description from MAKT Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single maktx from makt into wa_maktx&lt;/P&gt;&lt;P&gt;                             where matnr = i_join-matnr&lt;/P&gt;&lt;P&gt;                             and   spras = 'E'.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      i_output-matnr = i_join-matnr.&lt;/P&gt;&lt;P&gt;      i_output-maktx = wa_maktx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append i_output.&lt;/P&gt;&lt;P&gt;    clear : i_output,&lt;/P&gt;&lt;P&gt;            i_join,&lt;/P&gt;&lt;P&gt;            i_mbew.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " move_output_internal&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_sales_data&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;      Get the Sales Price for each material&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_sales_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the data from A004 table to get KNUMH&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Added new field Sales Unit - Seshu 01/09/2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  refresh : i_a004.&lt;/P&gt;&lt;P&gt;  clear :   i_a004.&lt;/P&gt;&lt;P&gt;  data : lv_kbetr like konp-kbetr," Condition value&lt;/P&gt;&lt;P&gt;         lv_KPEIN like konp-kpein , "per&lt;/P&gt;&lt;P&gt;         lv_KMEIN like konp-KMEIN. " Sales Unit&lt;/P&gt;&lt;P&gt;  select * from a004 into table i_a004&lt;/P&gt;&lt;P&gt;                          where matnr = i_join-matnr&lt;/P&gt;&lt;P&gt;                          and   vkorg = '0001'&lt;/P&gt;&lt;P&gt;                          and   vtweg = '01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;    sort i_a004 by DATAB descending.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Latetest Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    read table i_a004 with key matnr = i_join-matnr&lt;/P&gt;&lt;P&gt;                               vkorg = '0001'&lt;/P&gt;&lt;P&gt;                               vtweg = '01'&lt;/P&gt;&lt;P&gt;                               binary search.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the Sales Value&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single kbetr KPEIN KMEIN from konp&lt;/P&gt;&lt;P&gt;             into (lv_kbetr,lv_KPEIN, lv_KMEIN)&lt;/P&gt;&lt;P&gt;                             where knumh = i_a004-knumh&lt;/P&gt;&lt;P&gt;                             and   kappl = i_a004-kappl&lt;/P&gt;&lt;P&gt;                             and   kschl = i_a004-kschl.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      i_output-kbetr = lv_kbetr / lv_KPEIN.&lt;/P&gt;&lt;P&gt;      i_output-KMEIN = lv_KMEIN.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  clear : lv_kbetr,&lt;/P&gt;&lt;P&gt;          lv_kpein,&lt;/P&gt;&lt;P&gt;          lv_KMEIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_sales_data&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  print_alv&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;      ALV Function Module&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 print_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the Fiedlcat&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM fieldcat_init  using gt_fieldcat[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gr_layout_bck-edit_mode = 'D'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gr_layout_bck-colwidth_optimize = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_INTERFACE_CHECK                 = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_BYPASSING_BUFFER                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_BUFFER_ACTIVE                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     I_CALLBACK_PROGRAM                = g_repid&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_CALLBACK_PF_STATUS_SET          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     I_CALLBACK_USER_COMMAND           = g_user_command&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_CALLBACK_TOP_OF_PAGE            = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_CALLBACK_HTML_END_OF_LIST       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_STRUCTURE_NAME                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_BACKGROUND_ID                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_GRID_TITLE                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_GRID_SETTINGS                   =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IS_LAYOUT                         = gr_layout_bck&lt;/P&gt;&lt;P&gt;      IT_FIELDCAT                       = gt_fieldcat[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_EXCLUDING                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_SPECIAL_GROUPS                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_SORT                           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_FILTER                         =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IS_SEL_HIDE                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_DEFAULT                         = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_SAVE                            = g_save&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IS_VARIANT                        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_EVENTS                         =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_EVENT_EXIT                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IS_PRINT                          =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IS_REPREP_ID                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_SCREEN_START_COLUMN             = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_SCREEN_START_LINE               = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_SCREEN_END_COLUMN               = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_SCREEN_END_LINE                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_ALV_GRAPHICS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_ADD_FIELDCAT                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_HYPERLINK                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_HTML_HEIGHT_TOP                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   I_HTML_HEIGHT_END                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IT_EXCEPT_QINFO                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   E_EXIT_CAUSED_BY_CALLER           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ES_EXIT_CAUSED_BY_USER            =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      T_OUTTAB                          = i_output&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     PROGRAM_ERROR                     = 1&lt;/P&gt;&lt;P&gt;     OTHERS                            = 2&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " print_alv&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  fieldcat_init&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;      Fieldcat&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 fieldcat_init USING  e01_lt_fieldcat type slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material #&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'MATNR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-ref_fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-ref_tabname = 'MARA'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Material'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_M = 'Material'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_S = 'Material'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material Description&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'MAKTX'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 35.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Description'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Price Indicator&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'VPRSV'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 7.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Price Control Indicator'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Moving Avg Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'VERPR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 11.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Moving Avg Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Base Unit of Measure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'MEINS'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 7.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Base Unit'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Standard Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'STPRS'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 11.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Standard Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Current Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'LPLPR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 11.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Current Planned Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Future Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'ZPLPR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 11.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Future Planned Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Previous Planned Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'VPLPR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 11.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Previous Planned Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'KBETR'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 13.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Sales Price'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sales Unit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'KMEIN'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 7.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Sales Unit'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;% of Gross Margin&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'MARGIN'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 13.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = '% of Gross Margin'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material Status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR LS_FIELDCAT.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-FIELDNAME    = 'VMSTA'.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-OUTPUTLEN    = 13.&lt;/P&gt;&lt;P&gt;  LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.&lt;/P&gt;&lt;P&gt;  ls_fieldcat-seltext_L = 'Material Status'.&lt;/P&gt;&lt;P&gt;  APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " fieldcat_init&lt;/P&gt;&lt;P&gt;**&amp;amp;----&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;**&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&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;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_VARIANT_F4'&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;             is_variant          = g_variant&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             i_save              = g_save&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             i_tabname_header    = g_tabname_header&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             i_tabname_item      = g_tabname_item&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;          it_default_fieldcat =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             e_exit              = g_exit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             es_variant          = gx_variant&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             not_found = 2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc = 2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID sy-msgid TYPE 'S'      NUMBER sy-msgno&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF g_exit = space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     p_vari = gx_variant-variant.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&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;*&lt;/P&gt;&lt;P&gt;*&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  clear_data&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;      Clear the Internal table&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 clear_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear : i_output,&lt;/P&gt;&lt;P&gt;          i_join,&lt;/P&gt;&lt;P&gt;          i_mbew,&lt;/P&gt;&lt;P&gt;          i_a004,&lt;/P&gt;&lt;P&gt;          i_pgmi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh :  i_output,&lt;/P&gt;&lt;P&gt;             i_join,&lt;/P&gt;&lt;P&gt;             i_mbew,&lt;/P&gt;&lt;P&gt;             i_a004,&lt;/P&gt;&lt;P&gt;             i_pgmi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " clear_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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 USER_COMMAND                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM user_command USING r_ucomm LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;            rs_selfield TYPE slis_selfield.                 "#EC CALLED&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE R_UCOMM.&lt;/P&gt;&lt;P&gt;    WHEN '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      read table i_output index rs_selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID 'MAT' FIELD i_output-matnr.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID 'WRK' FIELD p_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if not i_output-matnr is initial.&lt;/P&gt;&lt;P&gt;        call transaction 'MD04' and skip first screen.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Seshu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:33:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755471#M641150</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T13:33:21Z</dc:date>
    </item>
    <item>
      <title>Re: not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755472#M641151</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;Just as some guy has explained to you, u can use the CATCH/ENDCATCH statsment:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;FORM DIVIDE USING P1 P2 P3.

  CATCH SYSTEM-EXCEPTIONS ARITHMETIC_ERRORS = 1.
    P3 = P1 / P2.
  ENDCATCH.
  IF SY-SUBRC &amp;lt;&amp;gt; 0.
*------&amp;gt; No divide by zero
    P3 = 0.
  ENDIF.
ENDFORM.

*----&amp;gt;U can use an IF statament:

FORM DIVIDE USING P1 P2 P3.
  IF P2 &amp;lt;&amp;gt; 0
    P3 = P1 / P2.
  ELSE.
    P3 = 0.
  ENDIF.
ENDFORM.


LOOP AT truma_tab ASSIGNING &amp;lt;fs_truma&amp;gt;.
  READ TABLE zefi_tab ASSIGNING &amp;lt;fs_zefi&amp;gt; INDEX sy-index.
  IF sy-subrc = 0.
    PERFORM DIVIDE USING: &amp;lt;fs_truma&amp;gt;-month1  &amp;lt;fs_zefi&amp;gt;-month1 wa_per_tab-month1, 
                          &amp;lt;fs_truma&amp;gt;-month2  &amp;lt;fs_zefi&amp;gt;-month2 wa_per_tab-month2,  
                          &amp;lt;fs_truma&amp;gt;-month3  &amp;lt;fs_zefi&amp;gt;-month3 wa_per_tab-month3, 
    APPEND wa_per_tab TO per_tab. 
  ENDIF.
ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Max&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:35:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755472#M641151</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-03T13:35:38Z</dc:date>
    </item>
    <item>
      <title>Re: not divide in zero</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755473#M641152</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Try something like&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;  LOOP AT truma_tab ASSIGNING &amp;lt;fs_truma&amp;gt;.
    READ TABLE zefi_tab ASSIGNING &amp;lt;fs_zefi&amp;gt; INDEX sy-index.
    IF sy-subrc = 0.
      DO 12 TIMES
        VARYING w1 FROM wa_per_tab-month1 NEXT wa_per_tab-month2
        VARYING w2 FROM &amp;lt;fs_truma&amp;gt;-month1 NEXT &amp;lt;fs_truma&amp;gt;-month2
        VARYING w3 FROM &amp;lt;fs_zefi&amp;gt;-month1 NEXT &amp;lt;fs_zefi&amp;gt;-month2.
        IF w3 &amp;lt;&amp;gt; 0.
          w1 = w2 / w3.
        ENDIF.
      ENDDO
      append wa_per_tab to per_tab.
    ENDIF.
  ENDLOOP.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Sep 2007 13:40:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/not-divide-in-zero/m-p/2755473#M641152</guid>
      <dc:creator>RaymondGiuseppi</dc:creator>
      <dc:date>2007-09-03T13:40:45Z</dc:date>
    </item>
  </channel>
</rss>

