<?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: billing documents in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/billing-documents/m-p/2139550#M450528</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;Please find the sample code for Billing document BAPI. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;t_billing-salesorg = vbak-vkorg.&lt;/P&gt;&lt;P&gt;t_billing-DISTR_CHAN = vbak-vtweg.&lt;/P&gt;&lt;P&gt;t_billing-DIVISION = vbak-spart.&lt;/P&gt;&lt;P&gt;t_billing-DOC_TYPE = vbak-auart.&lt;/P&gt;&lt;P&gt;t_billing-ref_doc = vbak-vbeln.&lt;/P&gt;&lt;P&gt;t_billing-ref_item = vbap-posnr.&lt;/P&gt;&lt;P&gt;t_billing-doc_number = vbak-vbeln.&lt;/P&gt;&lt;P&gt;t_billing-ITM_NUMBER = vbap-posnr.&lt;/P&gt;&lt;P&gt;t_billing-ordbilltyp = 'BILLING TYPE'.&lt;/P&gt;&lt;P&gt;t_billing-price_date = sy-datum.&lt;/P&gt;&lt;P&gt;t_billing-ref_doc_ca = vbak-vbtyp.&lt;/P&gt;&lt;P&gt;t_billing-sold_to = vbak-kunnr.&lt;/P&gt;&lt;P&gt;t_billing-material = vbap-matnr.&lt;/P&gt;&lt;P&gt;t_billing-plant = vbap-werks.&lt;/P&gt;&lt;P&gt;APPEND t_billing.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;billingdatain = t_billing&lt;/P&gt;&lt;P&gt;return = t_return&lt;/P&gt;&lt;P&gt;success = t_success.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;commit work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pls. reward if useful..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 12 Apr 2007 05:25:10 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-04-12T05:25:10Z</dc:date>
    <item>
      <title>billing documents</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/billing-documents/m-p/2139548#M450526</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can u guys pls suggest me some code dealing with billing documnets like eample code!!!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Apr 2007 05:20:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/billing-documents/m-p/2139548#M450526</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-12T05:20:06Z</dc:date>
    </item>
    <item>
      <title>Re: billing documents</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/billing-documents/m-p/2139549#M450527</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;check the table VBRK+VBRP to get billing documents based on the where clause.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;use this tool to generate report.&lt;/P&gt;&lt;P&gt;u have to link VBRK-VBELN = VBRP-VBELN&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b09ac4d5-e3ad-2910-6a81-96d1b861928c" target="test_blank"&gt;https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b09ac4d5-e3ad-2910-6a81-96d1b861928c&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Prabhu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Apr 2007 05:21:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/billing-documents/m-p/2139549#M450527</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-12T05:21:43Z</dc:date>
    </item>
    <item>
      <title>Re: billing documents</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/billing-documents/m-p/2139550#M450528</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;Please find the sample code for Billing document BAPI. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;t_billing-salesorg = vbak-vkorg.&lt;/P&gt;&lt;P&gt;t_billing-DISTR_CHAN = vbak-vtweg.&lt;/P&gt;&lt;P&gt;t_billing-DIVISION = vbak-spart.&lt;/P&gt;&lt;P&gt;t_billing-DOC_TYPE = vbak-auart.&lt;/P&gt;&lt;P&gt;t_billing-ref_doc = vbak-vbeln.&lt;/P&gt;&lt;P&gt;t_billing-ref_item = vbap-posnr.&lt;/P&gt;&lt;P&gt;t_billing-doc_number = vbak-vbeln.&lt;/P&gt;&lt;P&gt;t_billing-ITM_NUMBER = vbap-posnr.&lt;/P&gt;&lt;P&gt;t_billing-ordbilltyp = 'BILLING TYPE'.&lt;/P&gt;&lt;P&gt;t_billing-price_date = sy-datum.&lt;/P&gt;&lt;P&gt;t_billing-ref_doc_ca = vbak-vbtyp.&lt;/P&gt;&lt;P&gt;t_billing-sold_to = vbak-kunnr.&lt;/P&gt;&lt;P&gt;t_billing-material = vbap-matnr.&lt;/P&gt;&lt;P&gt;t_billing-plant = vbap-werks.&lt;/P&gt;&lt;P&gt;APPEND t_billing.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_BILLINGDOC_CREATEMULTIPLE'&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;billingdatain = t_billing&lt;/P&gt;&lt;P&gt;return = t_return&lt;/P&gt;&lt;P&gt;success = t_success.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;commit work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pls. reward if useful..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Apr 2007 05:25:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/billing-documents/m-p/2139550#M450528</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-12T05:25:10Z</dc:date>
    </item>
    <item>
      <title>Re: billing documents</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/billing-documents/m-p/2139551#M450529</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&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  ZAVR001_SALES_MATGRP_WISE                                  *&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  zavr001_sales_matgrp_wise NO STANDARD PAGE HEADING LINE-SIZE 140 LINE-COUNT 37(3) MESSAGE-ID zavme.&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;     MODULE              : Sales &amp;amp; Distribution&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;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      Objective         : To Display the Sales Details  Material Gruop Wise.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                           And compare the sales in two Years/Months.&lt;/P&gt;&lt;/LI&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;      Program           : ZAVR001_SALES_MATGRP_WISE.&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;    **       Message Classs    : ZAVME.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      Transport Request : SFDK924139&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      Package           : &lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      Funct.Spec.No     : FS-SD-REP-002&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      Spec Prepared by  : &lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;           Approved by  :&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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; Modification History&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      Modified On       :&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      New Request       :&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      Modified On       :&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      New Request       :&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;HR originaltext="-----" /&gt;&lt;P&gt;GLOBAL DECLARATIONS.&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis.&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;                     TABLES DECLARATON                               *&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;TABLES: vbrk,  "Billing Doc Header&lt;/P&gt;&lt;P&gt;        vbrp,  "Billing Doc Item&lt;/P&gt;&lt;P&gt;        tvko,  "Organizational Unit: Sales Organizations&lt;/P&gt;&lt;P&gt;        tvtw,  "Organizational Unit: Distribution Channels&lt;/P&gt;&lt;P&gt;        t023.   "Material Groups&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;                 INTERNAL TABLES                                     *&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;DATA : BEGIN OF it_temp OCCURS 0,&lt;/P&gt;&lt;P&gt;          matkl LIKE mara-matkl ,     "  MATERIAL GROUP&lt;/P&gt;&lt;P&gt;          matnr LIKE vbrp-matnr,      "  Material Number&lt;/P&gt;&lt;P&gt;          netwr LIKE vbrp-netwr,      "  Net Price&lt;/P&gt;&lt;P&gt;          fkimg LIKE vbrp-fkimg,      "  Quantity&lt;/P&gt;&lt;P&gt;          netwr1 LIKE vbrp-netwr,     "  Net Price&lt;/P&gt;&lt;P&gt;          fkimg1 LIKE vbrp-fkimg,     "  Quantity&lt;/P&gt;&lt;P&gt;       END OF it_temp.&lt;/P&gt;&lt;P&gt;DATA : it_outtab LIKE it_temp OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF it_vbrk OCCURS 0,&lt;/P&gt;&lt;P&gt;          vbeln LIKE vbrk-vbeln,      " BILLING DOC NUMBER&lt;/P&gt;&lt;P&gt;          netwr LIKE vbrk-netwr,      " Net price&lt;/P&gt;&lt;P&gt;          fkdat LIKE vbrk-fkdat,      " Billing date&lt;/P&gt;&lt;P&gt;          vtweg LIKE vbrk-vtweg,&lt;/P&gt;&lt;P&gt;       END OF it_vbrk.&lt;/P&gt;&lt;P&gt;DATA : it_vbrk1 LIKE it_vbrk OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF it_vbrp OCCURS 0,&lt;/P&gt;&lt;P&gt;          matkl LIKE vbrp-matkl,&lt;/P&gt;&lt;P&gt;          matnr LIKE vbrp-matnr,&lt;/P&gt;&lt;P&gt;          vbeln LIKE vbrk-vbeln,&lt;/P&gt;&lt;P&gt;          posnr LIKE vbrp-posnr,       "Item No.&lt;/P&gt;&lt;P&gt;          fkimg LIKE vbrp-fkimg,&lt;/P&gt;&lt;P&gt;          netwr LIKE vbrp-netwr,&lt;/P&gt;&lt;P&gt;       END OF it_vbrp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_vbrp1 LIKE it_vbrp OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt; Data Declarations&lt;/P&gt;&lt;P&gt;DATA : w_spmon TYPE spmon,&lt;/P&gt;&lt;P&gt;       w_spmon2 TYPE spmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:   w_year1 LIKE vbrk-gjahr,&lt;/P&gt;&lt;P&gt;        w_year2 LIKE vbrk-gjahr,&lt;/P&gt;&lt;P&gt;        w_yearlow LIKE sy-datum,&lt;/P&gt;&lt;P&gt;        w_yearhi LIKE sy-datum,&lt;/P&gt;&lt;P&gt;        w_yearlow1 LIKE sy-datum,&lt;/P&gt;&lt;P&gt;        w_yearhi1 LIKE sy-datum,&lt;/P&gt;&lt;P&gt;        w_rep1(10) TYPE c,&lt;/P&gt;&lt;P&gt;        w_rep2(10) TYPE c,&lt;/P&gt;&lt;P&gt;        w_temp1 LIKE vbrk-gjahr,&lt;/P&gt;&lt;P&gt;        w_temp2 LIKE vbrk-gjahr,&lt;/P&gt;&lt;P&gt;        w_temp3 like vbrk-gjahr,&lt;/P&gt;&lt;P&gt;        w_temp4 like vbrk-gjahr,&lt;/P&gt;&lt;P&gt;        w_months LIKE p0347-scrmm,&lt;/P&gt;&lt;P&gt;        w_year LIKE vbrk-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*******************************************************&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;--&lt;/STRONG&gt;&lt;DEL&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="----------------" /&gt;ALV DECLARATION--&lt;HR originaltext="------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*******************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : it_fieldcat TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;       it_sort TYPE slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;       it_listheader TYPE slis_t_listheader,&lt;/P&gt;&lt;P&gt;       it_alvevent TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : wa_fieldcat TYPE slis_fieldcat_alv,&lt;/P&gt;&lt;P&gt;       w_pos TYPE i VALUE 1,&lt;/P&gt;&lt;P&gt;       wa_listheader TYPE slis_listheader,&lt;/P&gt;&lt;P&gt;       wa_alvevent TYPE slis_alv_event,&lt;/P&gt;&lt;P&gt;       wa_sort TYPE slis_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : wa_repid LIKE sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;**--&lt;DEL&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="--------" /&gt;CONSTANTS--&lt;P&gt;&lt;/P&gt;&lt;HR originaltext="----------------" /&gt;&lt;P&gt;****************************************************&lt;/P&gt;&lt;P&gt;CONSTANTS: c_formname_top_of_page TYPE slis_formname&lt;/P&gt;&lt;P&gt;                          VALUE 'F_TOP_OF_PAGE',&lt;/P&gt;&lt;P&gt;           c_formname_end_of_list TYPE slis_formname&lt;/P&gt;&lt;P&gt;                          VALUE 'F_END_OF_LIST'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*****SELECTION SCREEN.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK input WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS      : pr_vkorg(4) TYPE c DEFAULT '7000'.                   "sales organization&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS  : so_vtweg FOR  vbrk-vtweg  OBLIGATORY,                "Distribution Channel&lt;/P&gt;&lt;P&gt;                  so_matkl FOR  vbrp-matkl.                            "material group&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK input.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : BEGIN OF BLOCK display WITH FRAME TITLE text-005.&lt;/P&gt;&lt;P&gt;PARAMETERS      : pa_list RADIOBUTTON GROUP  rad2 ,&lt;/P&gt;&lt;P&gt;                  pa_grid RADIOBUTTON GROUP rad2 .                      "List/Grid Display Indicator&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK compare WITH FRAME TITLE text-002.&lt;/P&gt;&lt;P&gt;PARAMETERS      : pa_year RADIOBUTTON GROUP  rad1 USER-COMMAND radio,&lt;/P&gt;&lt;P&gt;                  pa_month RADIOBUTTON GROUP rad1 .                     "Comparision indicator&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK compare.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Compare In Two Years&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : BEGIN OF BLOCK yearwise WITH FRAME TITLE text-003.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS : pr_year1 LIKE vbrk-gjahr MODIF ID yrs ,&lt;/P&gt;&lt;P&gt;             pr_year2 LIKE vbrk-gjahr MODIF ID yrs .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : END OF BLOCK yearwise.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Compare In Two Months&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK monthwise WITH FRAME TITLE text-004.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS :  pr_mnth1 TYPE spmon MODIF ID mth ,&lt;/P&gt;&lt;P&gt;              pr_mnth2 TYPE spmon MODIF ID mth .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN : END OF BLOCK monthwise.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="10" type="ul"&gt;&lt;P&gt;Screen Change&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;AT SELECTION-SCREEN OUTPUT.&lt;/P&gt;&lt;P&gt;  PERFORM change-screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----" /&gt;&lt;P&gt;At Selection Screen&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt;Validate Sales Organization.&lt;/P&gt;&lt;P&gt;  IF pr_vkorg IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    IF pr_vkorg NE '7000'.&lt;/P&gt;&lt;P&gt;      MESSAGE s001(zavme) WITH text-029.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE s001(zavme)  WITH text-030.&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;*------Validate Distribution channel.&lt;/P&gt;&lt;P&gt;  IF so_vtweg-low IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE * FROM tvtw WHERE vtweg = so_vtweg-low.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e001(zavme) WITH text-031.&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;  IF so_vtweg-high IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM tvtw WHERE vtweg = so_vtweg-high.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e001(zavme) WITH text-032.&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;*-------Validate Material group&lt;/P&gt;&lt;P&gt;  IF so_matkl-low IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM t023 WHERE matkl = so_matkl-low.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e001(zavme) WITH  text-033.&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;  IF so_matkl-high IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM t023 WHERE matkl = so_matkl-high.&lt;/P&gt;&lt;P&gt;    IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;      MESSAGE e001(zavme) WITH  text-034.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="11" type="ul"&gt;&lt;P&gt;Popup To Select A Month&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_mnth1.&lt;/P&gt;&lt;P&gt;  PERFORM month_f4 USING pr_mnth1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="11" type="ul"&gt;&lt;P&gt;Popup To Select A Month&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR pr_mnth2.&lt;/P&gt;&lt;P&gt;  PERFORM month_f4 USING pr_mnth2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt;Start-Of-Selection&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Date Validations.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM validate_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Select data from DB tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM collect_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*****Print data in List/Grid .&lt;/P&gt;&lt;P&gt;  PERFORM display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-------Top of page&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;  WRITE: 39 text-022 COLOR COL_HEADING.&lt;/P&gt;&lt;P&gt;  WRITE:/39 sy-uline(35).&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-uline(112).&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-vline,50 '(',w_rep1 COLOR COL_GROUP,')',90 '(',w_rep2 COLOR COL_GROUP,')'.&lt;/P&gt;&lt;P&gt;  WRITE:112 sy-vline.&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-vline,1 sy-uline(111),112 sy-vline.&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-vline, text-023 COLOR COL_KEY,15 text-024 COLOR COL_KEY,40 text-025 COLOR COL_KEY ,60 text-026 COLOR COL_KEY ,82 text-025 COLOR COL_KEY,102 text-026 COLOR COL_KEY,112 sy-vline.&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-uline(112).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------End of page&lt;/P&gt;&lt;P&gt;END-OF-PAGE.&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-vline,1 sy-uline(111),112 sy-vline.&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-vline,45 text-027 COLOR COL_NORMAL,sy-pagno COLOR COL_NORMAL,112 sy-vline.&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-vline,1 sy-uline(111),112 sy-vline.&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  change-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;P&gt;FORM change-screen .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****Enable the select options when perticular selection is made.&lt;/P&gt;&lt;P&gt;  IF pa_month = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;      CHECK screen-group1 = 'YRS'.&lt;/P&gt;&lt;P&gt;      screen-active = '0'.&lt;/P&gt;&lt;P&gt;      MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****Enable the select options when perticular selection is made.&lt;/P&gt;&lt;P&gt;    LOOP AT SCREEN.&lt;/P&gt;&lt;P&gt;      CHECK screen-group1 = 'MTH'.&lt;/P&gt;&lt;P&gt;      screen-active = '0'.&lt;/P&gt;&lt;P&gt;      MODIFY SCREEN.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&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;ENDFORM.                    " change-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;P&gt;*&amp;amp;      Form  month_f4&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;     --&amp;gt;P_PR_MNTH1  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 month_f4  USING  w_month TYPE spmon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF w_month IS INITIAL.&lt;/P&gt;&lt;P&gt;    w_month = sy-datum+0(6).&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'POPUP_TO_SELECT_MONTH'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      actual_month               = w_month&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      selected_month             = w_month&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      factory_calendar_not_found = 01&lt;/P&gt;&lt;P&gt;      holiday_calendar_not_found = 02&lt;/P&gt;&lt;P&gt;      month_not_found            = 03.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    " month_f4&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  display                                                  *&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;FORM display .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF pa_list = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM fm_list_disp.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM fm_alv_disp.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " display&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  fm_list_disp                                             *&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;FORM fm_list_disp .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT it_outtab BY matkl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT it_outtab.&lt;/P&gt;&lt;P&gt;    ON CHANGE OF it_outtab-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ON CHANGE OF it_outtab-matkl.&lt;/P&gt;&lt;P&gt;        WRITE:/1 sy-vline,5 it_outtab-matkl,112 sy-vline.&lt;/P&gt;&lt;P&gt;      ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      WRITE:/15 it_outtab-matnr.&lt;/P&gt;&lt;P&gt;    ENDON.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE:33 it_outtab-fkimg, it_outtab-netwr,it_outtab-fkimg1,it_outtab-netwr1.&lt;/P&gt;&lt;P&gt;    WRITE: 1 sy-vline ,112 sy-vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  WRITE:/ sy-uline(112).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " fm_list_disp&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  fm_alv_disp&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;FORM fm_alv_disp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------Build Field catalog.&lt;/P&gt;&lt;P&gt;  PERFORM build_fcat USING '1' 'MATKL' 'IT_OUTTAB' ' ' ' ' ' ' 'MatType'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM build_fcat USING '2' 'MATNR' 'IT_OUTTAB' ' ' ' ' ' ' 'MatNo'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM build_fcat USING '3' 'NETWR' 'IT_OUTTAB' ' ' ' ' ' ' 'Netprice'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM build_fcat USING '4' 'FKIMG' 'IT_OUTTAB' 'X' 'X' ' ' 'Qty'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM build_fcat USING '5' 'NETWR1' 'IT_OUTTAB' ' ' ' ' ' ' 'Netprice'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM build_fcat USING '6' 'FKIMG1' 'IT_OUTTAB' 'X' 'X' ' ' 'Qty'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*---Build Top of page for grid.&lt;/P&gt;&lt;P&gt;  PERFORM biuld_top USING it_listheader[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------Sort The Catalog&lt;/P&gt;&lt;P&gt;  PERFORM sort_cat  TABLES it_outtab USING it_sort[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*------Display Table In GRID&lt;/P&gt;&lt;P&gt;  PERFORM disp_grid TABLES it_outtab[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " fm_alv_disp&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  validate_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;P&gt;FORM validate_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : w_year1 LIKE vbrk-gjahr,&lt;/P&gt;&lt;P&gt;         w_year2 LIKE vbrk-gjahr,&lt;/P&gt;&lt;P&gt;         w_loc1 LIKE vbrk-gjahr,&lt;/P&gt;&lt;P&gt;         w_loc2 LIKE vbrk-gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  w_spmon = sy-datum+0(6).&lt;/P&gt;&lt;P&gt;  w_year  = sy-datum+0(4).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Year Wise Comparision ---- DATE validations.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  IF pa_year = 'X'.&lt;/P&gt;&lt;P&gt;    IF pr_year1 IS INITIAL AND  pr_year2 IS INITIAL.&lt;/P&gt;&lt;P&gt;      MESSAGE s001(zavme) WITH  text-006.&lt;/P&gt;&lt;P&gt;      STOP.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      IF pr_year1 IS INITIAL AND  pr_year2 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;        MESSAGE s001(zavme) WITH text-007.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        IF pr_year1 IS  NOT INITIAL AND  pr_year2 IS INITIAL.&lt;/P&gt;&lt;P&gt;          MESSAGE s001(zavme) WITH text-008.&lt;/P&gt;&lt;P&gt;          STOP.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          IF pr_year1 IS NOT INITIAL AND pr_year2 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            IF pr_year1 &amp;gt; w_year .&lt;/P&gt;&lt;P&gt;              MESSAGE s002(zavme) WITH  text-009 pr_year1.&lt;/P&gt;&lt;P&gt;              STOP.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            IF pr_year2 &amp;gt; w_year.&lt;/P&gt;&lt;P&gt;              MESSAGE s002(zavme) WITH  text-010 pr_year2.&lt;/P&gt;&lt;P&gt;              STOP.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            IF pr_year1 &amp;gt; pr_year2.&lt;/P&gt;&lt;P&gt;              MESSAGE s003(zavme) WITH  text-011 pr_year1 pr_year2.&lt;/P&gt;&lt;P&gt;              STOP.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Month Wise Comparision ---- DATE validations.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IF pa_month = 'X'.&lt;/P&gt;&lt;P&gt;      IF pr_mnth1 IS INITIAL AND  pr_mnth2 IS INITIAL.&lt;/P&gt;&lt;P&gt;        MESSAGE s001(zavme) WITH  text-012.&lt;/P&gt;&lt;P&gt;        STOP.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        IF pr_mnth1 IS INITIAL AND  pr_mnth2 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;          MESSAGE s001(zavme) WITH  text-013.&lt;/P&gt;&lt;P&gt;          STOP.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          IF pr_mnth1 IS  NOT INITIAL AND  pr_mnth2 IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            MESSAGE s001(zavme) WITH  text-014.&lt;/P&gt;&lt;P&gt;            STOP.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            IF pr_mnth1 IS NOT INITIAL AND pr_mnth2 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              IF pr_mnth1 EQ pr_mnth2.&lt;/P&gt;&lt;P&gt;                MESSAGE s001(zavme) WITH text-036.&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;              IF pr_mnth1&lt;EM&gt;4(2) NE pr_mnth2&lt;/EM&gt;4(2).&lt;/P&gt;&lt;P&gt;                MESSAGE s001(zavme) WITH text-035.&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;              IF pr_mnth1 &amp;gt; w_spmon.&lt;/P&gt;&lt;P&gt;                MESSAGE s002(zavme) WITH text-015 pr_mnth1.&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;              IF  pr_mnth2 &amp;gt; w_spmon.&lt;/P&gt;&lt;P&gt;                MESSAGE s002(zavme) WITH  text-016 pr_mnth2.&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;              IF pr_mnth1&lt;EM&gt;0(4) &amp;gt; pr_mnth2&lt;/EM&gt;0(4).&lt;/P&gt;&lt;P&gt;                MESSAGE s003(zavme) WITH text-017 pr_mnth1 pr_mnth2.&lt;/P&gt;&lt;P&gt;                STOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                IF pr_mnth1&lt;EM&gt;4(2) &amp;gt; pr_mnth2&lt;/EM&gt;4(2).&lt;/P&gt;&lt;P&gt;                  MESSAGE s003(zavme) WITH  text-018 pr_mnth1 pr_mnth2.&lt;/P&gt;&lt;P&gt;                  STOP.&lt;/P&gt;&lt;P&gt;                ENDIF.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*------- Data selection based on year.&lt;/P&gt;&lt;P&gt;  IF pr_year1 IS NOT INITIAL AND pr_year2 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-------  fiscal year starts with 01/04/yyyy and ends with 31/03/yyyy.&lt;/P&gt;&lt;P&gt;    CLEAR: w_yearhi,&lt;/P&gt;&lt;P&gt;           w_yearlow,&lt;/P&gt;&lt;P&gt;           w_yearhi1,&lt;/P&gt;&lt;P&gt;           w_yearlow1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    w_loc1 = pr_year1 + 1.&lt;/P&gt;&lt;P&gt;    w_loc2 = pr_year1 + 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------" /&gt;&lt;P&gt; this case is when we suppose to get the sales in one single year.&lt;/P&gt;&lt;P&gt;    IF pr_year2 EQ pr_year1.&lt;/P&gt;&lt;P&gt;      w_temp1 = pr_year1.&lt;/P&gt;&lt;P&gt;      w_temp2 = pr_year2 + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE w_temp1 '0401' INTO w_yearlow.&lt;/P&gt;&lt;P&gt;      CONCATENATE w_temp2 '0331' INTO w_yearlow1.&lt;/P&gt;&lt;P&gt;      CONCATENATE w_temp1 '0401' INTO w_yearhi.&lt;/P&gt;&lt;P&gt;      CONCATENATE w_temp2 '0331' INTO w_yearhi1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------" /&gt;&lt;P&gt;yearlow, yearlow1 contains the date interval.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------" /&gt;&lt;P&gt;yearhi, yearhi1 contains the date interval.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE  w_temp1 '-' w_temp2 INTO w_rep1.&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;HR originaltext="---------" /&gt;&lt;P&gt; yearwise&lt;/P&gt;&lt;P&gt;   if pr_year1 ne pr_year2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR : w_temp1,&lt;/P&gt;&lt;P&gt;              w_temp2,&lt;/P&gt;&lt;P&gt;              w_rep1,&lt;/P&gt;&lt;P&gt;              w_rep2,&lt;/P&gt;&lt;P&gt;              w_temp3,&lt;/P&gt;&lt;P&gt;              w_temp4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      w_temp1 = pr_year1.&lt;/P&gt;&lt;P&gt;      w_temp2 = pr_year1 + 1.&lt;/P&gt;&lt;P&gt;      w_temp3 = pr_year2.&lt;/P&gt;&lt;P&gt;      w_temp4 = pr_year2 + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE w_temp1 '0401' INTO w_yearlow.&lt;/P&gt;&lt;P&gt;      CONCATENATE w_temp2 '0331' INTO w_yearlow1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE w_temp3 '0401' INTO w_yearhi.&lt;/P&gt;&lt;P&gt;      CONCATENATE w_temp4 '0331' INTO w_yearhi1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE  w_temp1 '-' w_temp2 INTO w_rep1.&lt;/P&gt;&lt;P&gt;      CONCATENATE  w_temp3 '-' w_temp4 INTO w_rep2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; year1low and yearhi contains the first date of months.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; year1low1 and yearhi1 contains the last date of months.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;      PERFORM getdata.&lt;/P&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;P&gt;*------- Data selection based on Month&lt;/P&gt;&lt;P&gt;  IF pr_mnth1 IS NOT INITIAL AND pr_mnth2 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR : w_yearlow,&lt;/P&gt;&lt;P&gt;            w_yearhi,&lt;/P&gt;&lt;P&gt;            w_yearlow1,&lt;/P&gt;&lt;P&gt;            w_yearhi1,&lt;/P&gt;&lt;P&gt;            w_months,&lt;/P&gt;&lt;P&gt;            w_rep1,&lt;/P&gt;&lt;P&gt;            w_rep2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----" /&gt;&lt;P&gt;Allow the data selection in the same month.&lt;/P&gt;&lt;P&gt;    IF pr_mnth1&lt;EM&gt;4(2) EQ pr_mnth2&lt;/EM&gt;4(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE pr_mnth1 '01' INTO w_yearlow.&lt;/P&gt;&lt;P&gt;      CONCATENATE pr_mnth2 '01' INTO w_yearhi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------" /&gt;&lt;P&gt;last date of month might be 30 or 31 or 28 or 29&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'SG_PS_GET_LAST_DAY_OF_MONTH'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          day_in            = w_yearlow&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          last_day_of_month = w_yearlow1&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;          day_in_not_valid  = 1&lt;/P&gt;&lt;P&gt;          OTHERS            = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'SG_PS_GET_LAST_DAY_OF_MONTH'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          day_in            = w_yearhi&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          last_day_of_month = w_yearhi1&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;          day_in_not_valid  = 1&lt;/P&gt;&lt;P&gt;          OTHERS            = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; year1low and yearhi contains the first date of months.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt; year1low1 and yearhi1 contains the last date of months.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;getd data using w_yearlow w_yearlow1 w_yearhi w_yearhi1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE  w_yearlow&lt;EM&gt;4(2) '/' w_yearlow&lt;/EM&gt;0(4) INTO w_rep1.&lt;/P&gt;&lt;P&gt;      CONCATENATE  w_yearhi&lt;EM&gt;4(2) '/' w_yearhi1&lt;/EM&gt;0(4) INTO w_rep2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM getdata.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_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  build_fcat&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;FORM build_fcat  USING    value(col_pos)&lt;/P&gt;&lt;P&gt;                          value(fieldname)&lt;/P&gt;&lt;P&gt;                          value(tabname)&lt;/P&gt;&lt;P&gt;                          value(key)&lt;/P&gt;&lt;P&gt;                          value(no_zero)&lt;/P&gt;&lt;P&gt;                          value(do_sum)&lt;/P&gt;&lt;P&gt;                          value(reptext_ddic).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-col_pos       = col_pos.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname     = fieldname.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname       = tabname.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-key           = key.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-no_zero       = no_zero.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-do_sum        = do_sum.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-reptext_ddic  = reptext_ddic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_fcat&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  sort_cat&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;     --&amp;gt;P_IT_SORT[]  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 sort_cat TABLES it_outtab STRUCTURE it_outtab USING it_sort TYPE slis_t_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR wa_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_sort-fieldname       = 'MATKL'.&lt;/P&gt;&lt;P&gt;  wa_sort-tabname         = 'IT_OUTTAB'.&lt;/P&gt;&lt;P&gt;  wa_sort-spos            = 1.&lt;/P&gt;&lt;P&gt;  wa_sort-up              =  'X'.&lt;/P&gt;&lt;P&gt;  wa_sort-subtot          = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND wa_sort TO it_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sort_cat&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  getdata&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;FORM getdata .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH : it_vbrk[],&lt;/P&gt;&lt;P&gt;            it_vbrk1[].&lt;/P&gt;&lt;P&gt;  CLEAR : it_vbrk,&lt;/P&gt;&lt;P&gt;          it_vbrk1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH : it_vbrp[],&lt;/P&gt;&lt;P&gt;            it_vbrp1[].&lt;/P&gt;&lt;P&gt;  CLEAR : it_vbrp,&lt;/P&gt;&lt;P&gt;          it_vbrp1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;When Data has to get within One Fiscal Year&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  IF PR_YEAR1 IS NOT INITIAL AND PR_YEAR2 IS NOT INITIAL and  pr_year2 EQ pr_year1.&lt;/P&gt;&lt;P&gt;     SELECT&lt;/P&gt;&lt;P&gt;      vbeln&lt;/P&gt;&lt;P&gt;      netwr&lt;/P&gt;&lt;P&gt;      fkdat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      FROM&lt;/P&gt;&lt;P&gt;        vbrk&lt;/P&gt;&lt;P&gt;      INTO TABLE&lt;/P&gt;&lt;P&gt;        it_vbrk&lt;/P&gt;&lt;P&gt;      WHERE&lt;/P&gt;&lt;P&gt;           vkorg = pr_vkorg&lt;/P&gt;&lt;P&gt;      AND  vtweg IN so_vtweg&lt;/P&gt;&lt;P&gt;      AND  fkdat BETWEEN w_yearlow AND w_yearlow1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_vbrk[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      SELECT&lt;/P&gt;&lt;P&gt;        matkl&lt;/P&gt;&lt;P&gt;        matnr&lt;/P&gt;&lt;P&gt;        vbeln&lt;/P&gt;&lt;P&gt;        posnr&lt;/P&gt;&lt;P&gt;        fkimg&lt;/P&gt;&lt;P&gt;        netwr&lt;/P&gt;&lt;P&gt;      FROM&lt;/P&gt;&lt;P&gt;          vbrp&lt;/P&gt;&lt;P&gt;      INTO TABLE&lt;/P&gt;&lt;P&gt;          it_vbrp&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN&lt;/P&gt;&lt;P&gt;          it_vbrk&lt;/P&gt;&lt;P&gt;      WHERE&lt;/P&gt;&lt;P&gt;          vbeln = it_vbrk-vbeln&lt;/P&gt;&lt;P&gt;      AND matkl IN so_matkl.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    perform collect_data.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="4" type="ul"&gt;&lt;P&gt;Otherwise The first case&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    SELECT&lt;/P&gt;&lt;P&gt;      vbeln&lt;/P&gt;&lt;P&gt;      netwr&lt;/P&gt;&lt;P&gt;      fkdat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      FROM&lt;/P&gt;&lt;P&gt;        vbrk&lt;/P&gt;&lt;P&gt;      INTO TABLE&lt;/P&gt;&lt;P&gt;        it_vbrk&lt;/P&gt;&lt;P&gt;      WHERE&lt;/P&gt;&lt;P&gt;           vkorg = pr_vkorg&lt;/P&gt;&lt;P&gt;      AND  vtweg IN so_vtweg&lt;/P&gt;&lt;P&gt;      AND  fkdat BETWEEN w_yearlow AND w_yearlow1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_vbrk[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;      SELECT&lt;/P&gt;&lt;P&gt;        matkl&lt;/P&gt;&lt;P&gt;        matnr&lt;/P&gt;&lt;P&gt;        vbeln&lt;/P&gt;&lt;P&gt;        posnr&lt;/P&gt;&lt;P&gt;        fkimg&lt;/P&gt;&lt;P&gt;        netwr&lt;/P&gt;&lt;P&gt;      FROM&lt;/P&gt;&lt;P&gt;          vbrp&lt;/P&gt;&lt;P&gt;      INTO TABLE&lt;/P&gt;&lt;P&gt;          it_vbrp&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN&lt;/P&gt;&lt;P&gt;          it_vbrk&lt;/P&gt;&lt;P&gt;      WHERE&lt;/P&gt;&lt;P&gt;          vbeln = it_vbrk-vbeln&lt;/P&gt;&lt;P&gt;      AND matkl IN so_matkl.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    SELECT&lt;/P&gt;&lt;P&gt;      vbeln&lt;/P&gt;&lt;P&gt;      netwr&lt;/P&gt;&lt;P&gt;      fkdat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      FROM&lt;/P&gt;&lt;P&gt;        vbrk&lt;/P&gt;&lt;P&gt;      INTO TABLE&lt;/P&gt;&lt;P&gt;        it_vbrk1&lt;/P&gt;&lt;P&gt;      WHERE&lt;/P&gt;&lt;P&gt;           vkorg = pr_vkorg&lt;/P&gt;&lt;P&gt;      AND  vtweg IN so_vtweg&lt;/P&gt;&lt;P&gt;      AND  fkdat BETWEEN w_yearhi AND w_yearhi1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_vbrk1[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT&lt;/P&gt;&lt;P&gt;         matkl&lt;/P&gt;&lt;P&gt;         matnr&lt;/P&gt;&lt;P&gt;         vbeln&lt;/P&gt;&lt;P&gt;         posnr&lt;/P&gt;&lt;P&gt;         fkimg&lt;/P&gt;&lt;P&gt;         netwr&lt;/P&gt;&lt;P&gt;       FROM&lt;/P&gt;&lt;P&gt;           vbrp&lt;/P&gt;&lt;P&gt;       INTO TABLE&lt;/P&gt;&lt;P&gt;           it_vbrp1&lt;/P&gt;&lt;P&gt;       FOR ALL ENTRIES IN&lt;/P&gt;&lt;P&gt;           it_vbrk1&lt;/P&gt;&lt;P&gt;       WHERE&lt;/P&gt;&lt;P&gt;           vbeln = it_vbrk1-vbeln&lt;/P&gt;&lt;P&gt;       AND matkl IN so_matkl.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " getdata&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  DISP_GRID&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_IT_VBRP[]  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 disp_grid TABLES it_outtab STRUCTURE it_outtab.&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;P&gt;      i_callback_program     = sy-repid&lt;/P&gt;&lt;P&gt;      i_callback_top_of_page = 'TOP_OF_PAGE'&lt;/P&gt;&lt;P&gt;      it_fieldcat            = it_fieldcat&lt;/P&gt;&lt;P&gt;      it_sort                = it_sort&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab               = it_outtab&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;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " DISP_GRIP&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  collect_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;P&gt;FORM collect_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF it_vbrp[] IS INITIAL AND it_vbrp1[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    MESSAGE s001(zavme) WITH text-028.&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;  IF it_vbrp[] IS NOT INITIAL AND it_vbrp1[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT it_vbrp BY matkl matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT it_vbrp.&lt;/P&gt;&lt;P&gt;      it_temp-matkl = it_vbrp-matkl.&lt;/P&gt;&lt;P&gt;      it_temp-matnr = it_vbrp-matnr.&lt;/P&gt;&lt;P&gt;      it_temp-fkimg = it_vbrp-fkimg.&lt;/P&gt;&lt;P&gt;      it_temp-netwr = it_vbrp-netwr.&lt;/P&gt;&lt;P&gt;      APPEND it_temp.&lt;/P&gt;&lt;P&gt;      CLEAR it_temp.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    perform sort_tab tables it_temp.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF it_vbrp1[] IS NOT INITIAL AND it_vbrp[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SORT it_vbrp1 BY matkl matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT it_vbrp1.&lt;/P&gt;&lt;P&gt;        it_temp-matkl = it_vbrp1-matkl.&lt;/P&gt;&lt;P&gt;        it_temp-matnr = it_vbrp1-matnr.&lt;/P&gt;&lt;P&gt;        it_temp-fkimg1 = it_vbrp1-fkimg.&lt;/P&gt;&lt;P&gt;        it_temp-netwr1 = it_vbrp1-netwr.&lt;/P&gt;&lt;P&gt;        APPEND it_temp.&lt;/P&gt;&lt;P&gt;        CLEAR it_temp.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      perform sort_tab tables it_temp.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF it_vbrp[] IS NOT INITIAL AND it_vbrp1[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SORT it_vbrp BY matkl matnr.&lt;/P&gt;&lt;P&gt;        SORT it_vbrp1 BY matkl matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        LOOP AT it_vbrp.&lt;/P&gt;&lt;P&gt;          it_temp-matkl = it_vbrp-matkl.&lt;/P&gt;&lt;P&gt;          it_temp-matnr = it_vbrp-matnr.&lt;/P&gt;&lt;P&gt;          it_temp-netwr = it_vbrp-netwr.&lt;/P&gt;&lt;P&gt;          it_temp-fkimg = it_vbrp-fkimg.&lt;/P&gt;&lt;P&gt;          APPEND it_temp.&lt;/P&gt;&lt;P&gt;          CLEAR it_temp.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        LOOP AT it_vbrp1.&lt;/P&gt;&lt;P&gt;          it_temp-matkl = it_vbrp1-matkl.&lt;/P&gt;&lt;P&gt;          it_temp-matnr = it_vbrp1-matnr.&lt;/P&gt;&lt;P&gt;          it_temp-netwr1 = it_vbrp1-netwr.&lt;/P&gt;&lt;P&gt;          it_temp-fkimg1 = it_vbrp1-fkimg.&lt;/P&gt;&lt;P&gt;          APPEND it_temp.&lt;/P&gt;&lt;P&gt;          CLEAR it_temp.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;       perform sort_tab tables it_temp.&lt;/P&gt;&lt;P&gt;      ENDIF.&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.                    " collect_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;Top of page for Grid.&lt;/P&gt;&lt;P&gt;FORM top_of_page.&lt;/P&gt;&lt;P&gt;&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 = it_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "top_of_page&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  biuld_top&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;     --&amp;gt;P_IT_LISTHEADER[]  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 biuld_top  USING  it_listheader TYPE slis_t_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : text(100) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR  it_listheader.&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_listheader-typ  = 'H'.&lt;/P&gt;&lt;P&gt;  wa_listheader-info = text-037.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO it_listheader.&lt;/P&gt;&lt;P&gt;  CLEAR wa_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE text-038 ' , In  :' w_rep1  '---'  w_rep2 INTO text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_listheader-typ  = 'S'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; wa_listheader-key  = text.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  wa_listheader-info =  text.&lt;/P&gt;&lt;P&gt;  APPEND wa_listheader TO it_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " biuld_top&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  sort_tab&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;     --&amp;gt;P_IT_TEMP  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 sort_tab  tables it_temp structure it_temp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : price LIKE vbrp-netwr VALUE 0,&lt;/P&gt;&lt;P&gt;         qty LIKE vbrp-fkimg VALUE 0,&lt;/P&gt;&lt;P&gt;         price1 LIKE vbrp-netwr VALUE 0,&lt;/P&gt;&lt;P&gt;         qty1 LIKE vbrp-fkimg VALUE 0.&lt;/P&gt;&lt;P&gt;  refresh it_outtab[].&lt;/P&gt;&lt;P&gt;  clear it_outtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SORT it_temp BY matkl matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        LOOP AT it_temp.&lt;/P&gt;&lt;P&gt;          price = price + it_temp-netwr.&lt;/P&gt;&lt;P&gt;          qty   = qty   + it_temp-fkimg.&lt;/P&gt;&lt;P&gt;          price1 = price1 + it_temp-netwr1.&lt;/P&gt;&lt;P&gt;          qty1   = qty1   + it_temp-fkimg1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          AT END OF matnr.&lt;/P&gt;&lt;P&gt;            it_outtab-matkl = it_temp-matkl.&lt;/P&gt;&lt;P&gt;            it_outtab-matnr = it_temp-matnr.&lt;/P&gt;&lt;P&gt;            it_outtab-netwr = price.&lt;/P&gt;&lt;P&gt;            it_outtab-fkimg = qty.&lt;/P&gt;&lt;P&gt;            it_outtab-netwr1 = price1.&lt;/P&gt;&lt;P&gt;            it_outtab-fkimg1 = qty1.&lt;/P&gt;&lt;P&gt;            APPEND it_outtab.&lt;/P&gt;&lt;P&gt;            CLEAR : it_outtab,price,qty,price1,qty1.&lt;/P&gt;&lt;P&gt;          ENDAT.&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.                    " sort_tab&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Apr 2007 05:26:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/billing-documents/m-p/2139551#M450529</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-12T05:26:15Z</dc:date>
    </item>
  </channel>
</rss>

