<?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: subroutine pool in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588646#M592528</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;Subroutine pool is a type of program where you write the definitions of your subroutines. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form &amp;#133;&amp;#133;&amp;#133;&amp;#133;&lt;/P&gt;&lt;P&gt;&amp;#133;&amp;#133;&amp;#133;&amp;#133;&amp;#133;.&lt;/P&gt;&lt;P&gt;&amp;#133;&amp;#133;.&lt;/P&gt;&lt;P&gt;Endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;N number of subroutines can be written in subroutine pool and can be used by any program. So, it makes the subroutines global (may be used by any number of programs).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A subroutine pool can be created from SE38 with Attribute &amp;#145;TYPE&amp;#146;: Subroutine pool. You can not execute this type of program. Its subroutines can be used by other program&amp;#146;s Perform statements &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this link.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db999535c111d1829f0000e829fbfe/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db999535c111d1829f0000e829fbfe/frameset.htm&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;Padmam.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 24 Jul 2007 05:56:25 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-24T05:56:25Z</dc:date>
    <item>
      <title>subroutine pool</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588641#M592523</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;How to create a report using subroutine pool??? What is subroutine pool??? If possible any sample report &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Krishna&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jul 2007 05:27:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588641#M592523</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-24T05:27:46Z</dc:date>
    </item>
    <item>
      <title>Re: subroutine pool</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588642#M592524</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;u&amp;gt;&amp;lt;b&amp;gt;Subroutine Pools&amp;lt;/b&amp;gt;&amp;lt;/u&amp;gt;&lt;/P&gt;&lt;P&gt;Subroutine pools, as the name implies, were created to contain selections of subroutines that can be called externally from other programs. Before release 6.10, this was the only way subroutine pools could be used. But besides subroutines, subroutine pools can also contain local classes and interfaces. As of release 6.10, you can connect transaction codes to methods. Therefore, you can now also call subroutine pools via transaction codes. This is the closest to a Java program you can get in ABAP: a subroutine pool with a class containing a method &amp;#150; say &amp;#150; main connected to a transaction code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subroutine pools are created using the ABAP Editor and are introduced with the PROGRAM statement. They may not contain any screens of their own, and with the exception of the LOAD-OF-PROGRAM event block they may only use subroutines as processing blocks. Subroutine pools are loaded by externally calling their subroutines from within other ABAP programs. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;DATA: CODE(72) OCCURS 10,
PROG(8), MSG(120), LIN(3), WRD(10), OFF(3).

APPEND 'PROGRAM SUBPOOL.'
        TO CODE.
APPEND 'FORM DYN1.'
        TO CODE.
APPEND 
'WRITE / ''Hello, I am the temporary subroutine DYN1!''.'
        TO CODE.
APPEND 'ENDFORM.'
        TO CODE.
APPEND 'FORM DYN2.'
        TO CODE.
APPEND 
'WRIT / ''Hello, I am the temporary subroutine DYN2!''.'
        TO CODE.
APPEND 'ENDFORM.'
        TO CODE.

GENERATE SUBROUTINE POOL CODE NAME PROG
MESSAGE MSG
LINE LIN
WORD WRD
OFFSET OFF.

IF SY-SUBRC &amp;lt;&amp;gt; 0.
WRITE: / 'Error during generation in line', LIN,
/ MSG,
/ 'Word:', WRD, 'at offset', OFF.
ELSE.
  WRITE: / 'The name of the subroutine pool is', PROG.
  SKIP 2.
PERFORM DYN1 IN PROGRAM (PROG).
  SKIP 2.
PERFORM DYN2 IN PROGRAM (PROG).
ENDIF.

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this program, a subroutine pool containing two subroutines is placed into table CODE. Note that the temporary program must contain a REPORT or PROGRAM statement. Statement GENERATE SUBROUTINE POOL generates the temporary program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A generation error occurred since the WRITE statement has been misspelled in the second subroutine, DYN2. After that line has been revised:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
APPEND 
'WRITE / ''Hello, I am the temporary subroutine DYN2!''.'
        TO CODE.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Generation was successful. The internal program name is displayed. Then, the subroutines of the subroutine pool are called. Note that you do not need to know the program name to call the subroutines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward all helpfull answers&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Pavan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jul 2007 05:33:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588642#M592524</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-24T05:33:01Z</dc:date>
    </item>
    <item>
      <title>Re: subroutine pool</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588643#M592525</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;Subroutines are used for Reusability&lt;/P&gt;&lt;P&gt;They are called with PERFORM statement &lt;/P&gt;&lt;P&gt;and the code implementation is written between FORM...ENDFORM..&lt;/P&gt;&lt;P&gt;Hi see the sample program code&lt;/P&gt;&lt;P&gt;under each event we write one PERFORM and afterwards we wrote the related code in FORM..ENDFORM..&lt;/P&gt;&lt;P&gt;report zesdr001&lt;/P&gt;&lt;P&gt;       line-size 215&lt;/P&gt;&lt;P&gt;       line-count 65&lt;/P&gt;&lt;P&gt;       no standard page heading&lt;/P&gt;&lt;P&gt;       message-id zv.&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 Declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;tables:vbrk,       " Sales Document: Billing Header Data&lt;/P&gt;&lt;P&gt;       mara,       " Material Master Data&lt;/P&gt;&lt;P&gt;       mbew,       " Material Valuation data&lt;/P&gt;&lt;P&gt;       mbewh,      " Material Valuation: History Data&lt;/P&gt;&lt;P&gt;       t001,       " Company Codes&lt;/P&gt;&lt;P&gt;       t001w,      " Plants/Branches&lt;/P&gt;&lt;P&gt;       konv,       " Pricing Conditions Data&lt;/P&gt;&lt;P&gt;       t179t,      " Materials: Product hierarchies: Texts&lt;/P&gt;&lt;P&gt;       tcurx,      " Currency Conversion Table&lt;/P&gt;&lt;P&gt;       vbuk,       " Sales Document: Header Status data&lt;/P&gt;&lt;P&gt;       tvko,       " Organizational Unit: Sales Organizations&lt;/P&gt;&lt;P&gt;       tvtw,       " Organizational Unit: Dist.Channels&lt;/P&gt;&lt;P&gt;       tspa,       " Organizational Unit: Divisions&lt;/P&gt;&lt;P&gt;       tvfk,       " Billing Document Types&lt;/P&gt;&lt;P&gt;       kna1.       " Customer Master Data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             Declaration of Data and Internal Tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to store the Billing Details data.(VBRK,VBRP)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: begin of itab_bill occurs 0,&lt;/P&gt;&lt;P&gt;        vbeln like vbrk-vbeln,            " Billing Document Number&lt;/P&gt;&lt;P&gt;        fktyp like vbrk-fktyp,            " Billing Category&lt;/P&gt;&lt;P&gt;        vbtyp like vbrk-vbtyp,            " Sales Doc Category&lt;/P&gt;&lt;P&gt;        fkdat like vbrk-fkdat,            " Billing doc date&lt;/P&gt;&lt;P&gt;        fkart like vbrk-fkart,            " Billing Doc type&lt;/P&gt;&lt;P&gt;        bukrs like vbrk-bukrs,            " Company Code&lt;/P&gt;&lt;P&gt;        kurrf like vbrk-kurrf,            " Exchange type&lt;/P&gt;&lt;P&gt;        knumv like vbrk-knumv,            " Condition Number&lt;/P&gt;&lt;P&gt;        waerk like vbrk-waerk,            " Currency&lt;/P&gt;&lt;P&gt;        kunag like vbrk-kunag,            " Sold to Party&lt;/P&gt;&lt;P&gt;        vrkme like vbrp-vrkme,            " sales Unit&lt;/P&gt;&lt;P&gt;        posnr like vbrp-posnr,            " Item Number&lt;/P&gt;&lt;P&gt;        charg like vbrp-charg,            " Batch Number&lt;/P&gt;&lt;P&gt;        fkimg like vbrp-fkimg,            " Billed quantity&lt;/P&gt;&lt;P&gt;        werks like vbrp-werks,            " Plant&lt;/P&gt;&lt;P&gt;        matnr like vbrp-matnr,            " Material Number&lt;/P&gt;&lt;P&gt;        netwr like vbrp-netwr,            " Net Value of the doc&lt;/P&gt;&lt;P&gt;        wavwr like vbrp-wavwr,            " Cost in Doc Currency&lt;/P&gt;&lt;P&gt;        kdmat like vbap-kdmat,            " Customer Material&lt;/P&gt;&lt;P&gt;      end of itab_bill.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to write the report output when Customer Mode&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Radiobutton is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: begin of itab_out occurs 0,&lt;/P&gt;&lt;P&gt;        kunag like vbrk-kunag,            " Customer No&lt;/P&gt;&lt;P&gt;        vbeln like vbrk-vbeln,            " Billing Document Number&lt;/P&gt;&lt;P&gt;        fkart like vbrk-fkart,            " Billing Doc type&lt;/P&gt;&lt;P&gt;        fktyp like vbrk-fktyp,            " Billing Category&lt;/P&gt;&lt;P&gt;        vbtyp like vbrk-vbtyp,            " Sales Doc Category&lt;/P&gt;&lt;P&gt;        fkdat like vbrk-fkdat,            " Billing doc date&lt;/P&gt;&lt;P&gt;        kunnr like kna1-kunnr,            " Customer&lt;/P&gt;&lt;P&gt;        bukrs like vbrk-bukrs,            " Company Code&lt;/P&gt;&lt;P&gt;        kurrf like vbrk-kurrf,            " Exchange Rate&lt;/P&gt;&lt;P&gt;        waerk like vbrk-waerk,            " Currency&lt;/P&gt;&lt;P&gt;        vrkme like vbrp-vrkme,            " Sales Unit&lt;/P&gt;&lt;P&gt;        posnr like vbrp-posnr,            " Item Number&lt;/P&gt;&lt;P&gt;        charg like vbrp-charg,            " Batch Number&lt;/P&gt;&lt;P&gt;        fkimg like vbrp-fkimg,            " Billed quantity&lt;/P&gt;&lt;P&gt;        werks like vbrp-werks,            " Plant&lt;/P&gt;&lt;P&gt;        matnr like vbrp-matnr,            " Material NUmber&lt;/P&gt;&lt;P&gt;        kdmat like vbap-kdmat,            " Customer Material&lt;/P&gt;&lt;P&gt;        bil_amt(16) type p decimals 2,    " Bill Amount&lt;/P&gt;&lt;P&gt;        mode(10),                         " Mode&lt;/P&gt;&lt;P&gt;        density(10),                      " Density&lt;/P&gt;&lt;P&gt;        sel_prc(16) type p decimals 2,    " Selling Price&lt;/P&gt;&lt;P&gt;        mvg_prs like mbew-verpr,          " Moving Price&lt;/P&gt;&lt;P&gt;        gp_mvp_amt like vbrp-netwr,       " GrossProfit Amount(MVP)&lt;/P&gt;&lt;P&gt;        gp_mvp_pr(6)  type p decimals 2,  "   ,, percentage&lt;/P&gt;&lt;P&gt;      end of itab_out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to write the report output when Mode&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Radiobutton is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: begin of itab_out2 occurs 0,&lt;/P&gt;&lt;P&gt;        mode(10),&lt;/P&gt;&lt;P&gt;        vbeln like vbrk-vbeln,             " Billing Document Number&lt;/P&gt;&lt;P&gt;        fktyp like vbrk-fktyp,             " Billing Category&lt;/P&gt;&lt;P&gt;        vbtyp like vbrk-vbtyp,             " Sales Doc Category&lt;/P&gt;&lt;P&gt;        fkdat like vbrk-fkdat,             " Billing doc date&lt;/P&gt;&lt;P&gt;        kunag like vbrk-kunag,             " Sold to party&lt;/P&gt;&lt;P&gt;        kunnr like kna1-kunnr,             " Customer&lt;/P&gt;&lt;P&gt;        bukrs like vbrk-bukrs,             " Company Code&lt;/P&gt;&lt;P&gt;        kurrf like vbrk-kurrf,             " Exchange Rate&lt;/P&gt;&lt;P&gt;        waerk like vbrk-waerk,             " Currency&lt;/P&gt;&lt;P&gt;        vrkme like vbrp-vrkme,             " Sales UNit&lt;/P&gt;&lt;P&gt;        posnr like vbrp-posnr,             " Item No&lt;/P&gt;&lt;P&gt;        charg like vbrp-charg,             " Batch Number&lt;/P&gt;&lt;P&gt;        fkimg like vbrp-fkimg,             " Billed quantity&lt;/P&gt;&lt;P&gt;        werks like vbrp-werks,             " Plant&lt;/P&gt;&lt;P&gt;        matnr like vbrp-matnr,             " Material Number&lt;/P&gt;&lt;P&gt;        kdmat like vbap-kdmat,             " Customer Material No&lt;/P&gt;&lt;P&gt;        bil_amt(16)   type p decimals 2,   " Billing Amount&lt;/P&gt;&lt;P&gt;        density(10),                       " density&lt;/P&gt;&lt;P&gt;        sel_prc(16) type p decimals 4,     " Selling Price&lt;/P&gt;&lt;P&gt;        mvg_prs like mbew-verpr,           " Moving Price&lt;/P&gt;&lt;P&gt;        gp_mvp_amt like vbrp-netwr,        " GrossProfit Amount(MVP)&lt;/P&gt;&lt;P&gt;        gp_mvp_pr(6)  type p decimals 2,   "   ,, percentage&lt;/P&gt;&lt;P&gt;      end of itab_out2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to write the report output when Density&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Radiobutton is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: begin of itab_out3 occurs 0,&lt;/P&gt;&lt;P&gt;        mode(10),&lt;/P&gt;&lt;P&gt;        density(10),&lt;/P&gt;&lt;P&gt;        vbeln like vbrk-vbeln,            " Billing Document Number&lt;/P&gt;&lt;P&gt;        fktyp like vbrk-fktyp,            " Billing Category&lt;/P&gt;&lt;P&gt;        vbtyp like vbrk-vbtyp,            " Sales Doc Category&lt;/P&gt;&lt;P&gt;        fkdat like vbrk-fkdat,            " Billing doc date&lt;/P&gt;&lt;P&gt;        kunag like vbrk-kunag,            " Sold to Party&lt;/P&gt;&lt;P&gt;        kunnr like kna1-kunnr,            " Customer&lt;/P&gt;&lt;P&gt;        bukrs like vbrk-bukrs,            " Company Code&lt;/P&gt;&lt;P&gt;        kurrf like vbrk-kurrf,            " Exchange Rate&lt;/P&gt;&lt;P&gt;        waerk like vbrk-waerk,            " Currency&lt;/P&gt;&lt;P&gt;        vrkme like vbrp-vrkme,            " Sales Unit&lt;/P&gt;&lt;P&gt;        posnr like vbrp-posnr,            " Item Number&lt;/P&gt;&lt;P&gt;        charg like vbrp-charg,            " Batch Number&lt;/P&gt;&lt;P&gt;        fkimg like vbrp-fkimg,            " Billed quantity&lt;/P&gt;&lt;P&gt;        werks like vbrp-werks,            " Plant&lt;/P&gt;&lt;P&gt;        matnr like vbrp-matnr,            " Material Number&lt;/P&gt;&lt;P&gt;        kdmat like vbap-kdmat,            " Customer Material&lt;/P&gt;&lt;P&gt;        bil_amt(16)   type p decimals 2,  " Bill Amount&lt;/P&gt;&lt;P&gt;        sel_prc(16) type p decimals 4,    " Selling Price&lt;/P&gt;&lt;P&gt;        mvg_prs like mbew-verpr,          " Moving Price&lt;/P&gt;&lt;P&gt;        gp_mvp_amt like vbrp-netwr,       " GrossProfit Amount(MVP)&lt;/P&gt;&lt;P&gt;        gp_mvp_pr(6)  type p decimals 2,  "   ,, percentage&lt;/P&gt;&lt;P&gt;      end of itab_out3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-Internal Table to Hold data to be downloaded to file&lt;/P&gt;&lt;P&gt;data: begin of itab_out1 occurs 0,&lt;/P&gt;&lt;P&gt;        kunag(10),                       " Customer&lt;/P&gt;&lt;P&gt;        vbeln(10),                       " Billing Doc No&lt;/P&gt;&lt;P&gt;        fkdat(10),                       " Bill Date&lt;/P&gt;&lt;P&gt;        posnr(6),                        " Item No&lt;/P&gt;&lt;P&gt;        mode(6),                         " Mode&lt;/P&gt;&lt;P&gt;        density(6),                      " Density&lt;/P&gt;&lt;P&gt;        matnr(18),                       " Material&lt;/P&gt;&lt;P&gt;        charg(10),                       " Batch Number&lt;/P&gt;&lt;P&gt;        fkimg like vbrp-fkimg,           " Billed quantity&lt;/P&gt;&lt;P&gt;        vrkme(4),                        " Sales Unit&lt;/P&gt;&lt;P&gt;        sel_prc(14),                     " Selling Price&lt;/P&gt;&lt;P&gt;        bil_amt(15)  type p decimals 2,  " Billing Amount&lt;/P&gt;&lt;P&gt;        waerk(4),                        " Currency&lt;/P&gt;&lt;P&gt;        mvg_prs(15),                     " Moving Price&lt;/P&gt;&lt;P&gt;        gp_mvp_amt like vbrp-netwr,      " Gross profit Amount(MVP)&lt;/P&gt;&lt;P&gt;        gp_mvp_pr(15),                   "    ,,  percentage&lt;/P&gt;&lt;P&gt;        kdmat(35),                       " Customer Material&lt;/P&gt;&lt;P&gt;      end of itab_out1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal Table&lt;/P&gt;&lt;P&gt;data: begin of fieldnames occurs 0,&lt;/P&gt;&lt;P&gt;        title(25) type c,&lt;/P&gt;&lt;P&gt;        table(5)  type c,&lt;/P&gt;&lt;P&gt;        field(5)  type c,&lt;/P&gt;&lt;P&gt;        type(1)   type c,&lt;/P&gt;&lt;P&gt;      end of fieldnames.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Declaration Of Variables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: w_period like bapi0002_4-fiscal_period,&lt;/P&gt;&lt;P&gt;      w_year   like bapi0002_4-fiscal_year,&lt;/P&gt;&lt;P&gt;      w_date   like bsad-budat,&lt;/P&gt;&lt;P&gt;      w_lin type i.       "No.of lines in Internal Table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: t_fkimg             like vbrp-fkimg,&lt;/P&gt;&lt;P&gt;      t_bil_amt(8)        type p decimals 2,&lt;/P&gt;&lt;P&gt;      t_gp_mvp_amt(8)     type p decimals 2,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      t_gr_fkimg          like vbrp-fkimg,&lt;/P&gt;&lt;P&gt;      t_gr_bil_amt(8)     type p decimals 2,&lt;/P&gt;&lt;P&gt;      t_gr_gp_mvp_amt(8)  type p decimals 2,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      t_efkimg            like vbrp-fkimg,&lt;/P&gt;&lt;P&gt;      t_ebil_amt(8)       type p decimals 2,&lt;/P&gt;&lt;P&gt;      t_egp_mvp_amt(8)    type p decimals 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:f_flg .&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;                   Select-Options&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;selection-screen: begin of block b with frame.&lt;/P&gt;&lt;P&gt;selection-screen : begin of block b1 with frame title text-001.&lt;/P&gt;&lt;P&gt;select-options:s_bukrs for t001-bukrs no intervals no-extension&lt;/P&gt;&lt;P&gt;                                                     obligatory,&lt;/P&gt;&lt;P&gt;               s_vkorg for tvko-vkorg no intervals no-extension,&lt;/P&gt;&lt;P&gt;               s_vtweg for tvtw-vtweg no intervals no-extension,&lt;/P&gt;&lt;P&gt;               s_spart for tspa-spart no intervals no-extension,&lt;/P&gt;&lt;P&gt;               s_werks for t001w-werks no intervals no-extension,&lt;/P&gt;&lt;P&gt;               s_kunag for kna1-kunnr,&lt;/P&gt;&lt;P&gt;               s_vbeln for vbuk-vbeln,&lt;/P&gt;&lt;P&gt;               s_fkart for tvfk-fkart,&lt;/P&gt;&lt;P&gt;               s_fkdat for vbrk-fkdat obligatory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;selection-screen comment 1(20) text-008.&lt;/P&gt;&lt;P&gt;selection-screen end   of line.&lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;parameters p_cust type c radiobutton group cust.&lt;/P&gt;&lt;P&gt;selection-screen comment 3(20) text-004 for field p_cust.&lt;/P&gt;&lt;P&gt;selection-screen end of line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;parameters p_mode type c radiobutton group cust.&lt;/P&gt;&lt;P&gt;selection-screen comment 3(20) text-006 for field p_mode.&lt;/P&gt;&lt;P&gt;selection-screen end of line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;parameters p_dens type c radiobutton group cust.&lt;/P&gt;&lt;P&gt;selection-screen comment 3(20) text-007 for field p_dens.&lt;/P&gt;&lt;P&gt;selection-screen end of line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: end of block b1.&lt;/P&gt;&lt;P&gt;selection-screen : begin of block b2 with frame title text-002.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters:  p_dwnlod as checkbox,&lt;/P&gt;&lt;P&gt;             p_file like rlgrap-filename. " default 'C:\zesdr001'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: end of block b2.&lt;/P&gt;&lt;P&gt;selection-screen: end of block b.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*******&lt;STRONG&gt;At Selection Screen&lt;/STRONG&gt;********************************************&lt;/P&gt;&lt;P&gt;at selection-screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;At Selection Screen on Value Request&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;at selection-screen on value-request for p_file.&lt;/P&gt;&lt;P&gt;  perform f4_help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Checking for the input values of selection screen.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform screen_check.&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;LI level="7" type="ul"&gt;&lt;P&gt;Top Of Page***************************************************&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;P&gt;top-of-page.&lt;/P&gt;&lt;P&gt;  perform rep_headers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*******&lt;STRONG&gt;Start of Selection&lt;/STRONG&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;Selecting data from the database tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform invoice_selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  describe table itab_bill lines w_lin.&lt;/P&gt;&lt;P&gt;  if w_lin = 0.&lt;/P&gt;&lt;P&gt;    message i008.   " No Data Found for the Given Selection Criteria&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Moving the data records into output internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform bill_details.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;When Customer Radio button is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if p_cust eq 'X'.&lt;/P&gt;&lt;P&gt;      perform invoice_output_cust.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;When Mode Radio button is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    elseif p_mode eq 'X'.&lt;/P&gt;&lt;P&gt;      perform invoice_output_mode.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;When density Radio button is selected&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    elseif p_dens eq 'X'.&lt;/P&gt;&lt;P&gt;      perform invoice_output_dens.&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;*******&lt;STRONG&gt;End of Selection&lt;/STRONG&gt;***********************************************&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform init_fieldnames.&lt;/P&gt;&lt;P&gt;  if p_dwnlod = 'X'.&lt;/P&gt;&lt;P&gt;    perform read_data_for_dowlload.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  perform down_load_to_file using p_file.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform download_excel using p_file.&lt;/P&gt;&lt;P&gt;  endif.&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  screen_check&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;   Ckecking for Selection Screen fields Validation&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 screen_check.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Sales Organization&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear tvko.&lt;/P&gt;&lt;P&gt;  if not s_vkorg-low is initial.&lt;/P&gt;&lt;P&gt;    select vkorg from tvko up to 1 rows&lt;/P&gt;&lt;P&gt;           into tvko-vkorg&lt;/P&gt;&lt;P&gt;           where vkorg in s_vkorg.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      message e009.  " Invalid Sales Organization&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;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Distribution Channel&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear tvtw.&lt;/P&gt;&lt;P&gt;  if not s_vtweg-low is initial.&lt;/P&gt;&lt;P&gt;    select vtweg from tvtw up to 1 rows&lt;/P&gt;&lt;P&gt;           into tvtw-vtweg&lt;/P&gt;&lt;P&gt;           where vtweg in s_vtweg.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      message e010.  " Invalid Distribution Channel&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;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Division&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear tspa.&lt;/P&gt;&lt;P&gt;  if not s_spart-low is initial.&lt;/P&gt;&lt;P&gt;    select spart from tspa up to 1 rows&lt;/P&gt;&lt;P&gt;           into tspa-spart&lt;/P&gt;&lt;P&gt;           where spart in s_spart.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      message e011.  " Invalid Division&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;LI level="1" type="ul"&gt;&lt;P&gt;Validation for company code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear t001.&lt;/P&gt;&lt;P&gt;  if not s_bukrs-low is initial.&lt;/P&gt;&lt;P&gt;    select single bukrs from t001&lt;/P&gt;&lt;P&gt;         into t001-bukrs&lt;/P&gt;&lt;P&gt;         where bukrs in s_bukrs.&lt;/P&gt;&lt;P&gt;    if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      message e007.   " Enter valid Company Code&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;LI level="1" type="ul"&gt;&lt;P&gt;Validation of billing Document Type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear tvfk.&lt;/P&gt;&lt;P&gt;  if not s_fkart is initial.&lt;/P&gt;&lt;P&gt;    select fkart from tvfk up to 1 rows&lt;/P&gt;&lt;P&gt;           into tvfk-fkart&lt;/P&gt;&lt;P&gt;           where fkart in s_fkart.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      message e012.  " Invalid Billing Document Type&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;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Billing Document Number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear vbuk.&lt;/P&gt;&lt;P&gt;  if not s_vbeln is initial.&lt;/P&gt;&lt;P&gt;    select vbeln from vbuk up to 1 rows&lt;/P&gt;&lt;P&gt;           into vbuk-vbeln&lt;/P&gt;&lt;P&gt;           where vbeln in s_vbeln and&lt;/P&gt;&lt;P&gt;                 vbtyp = 'M'.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      message e013.   " Invalid Billing Doc Number&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;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Customer&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear kna1.&lt;/P&gt;&lt;P&gt;  if not s_kunag is initial.&lt;/P&gt;&lt;P&gt;    select kunnr from kna1 up to 1 rows&lt;/P&gt;&lt;P&gt;           into kna1-kunnr&lt;/P&gt;&lt;P&gt;           where kunnr in s_kunag.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      message e014.    " Invalid Customer Number&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;LI level="1" type="ul"&gt;&lt;P&gt;Validation of Plant&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear t001w.&lt;/P&gt;&lt;P&gt;  if not s_werks is initial.&lt;/P&gt;&lt;P&gt;    select werks from t001w up to 1 rows&lt;/P&gt;&lt;P&gt;           into t001w-werks&lt;/P&gt;&lt;P&gt;           where werks in s_werks.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;    if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;      message e004.    " Invalid Plant Number&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;LI level="1" type="ul"&gt;&lt;P&gt;Validation for File path to download&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if p_dwnlod = 'X'.&lt;/P&gt;&lt;P&gt;    if p_file is initial.&lt;/P&gt;&lt;P&gt;      message e006.  " Enter the Valid file path to Download&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.             "screen_check&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 invoice_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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Selecting data from the database 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;form invoice_selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select&lt;/P&gt;&lt;P&gt;        a~vbeln                   " Billing Doc Number&lt;/P&gt;&lt;P&gt;        a~fktyp                   " Billing Category&lt;/P&gt;&lt;P&gt;        a~vbtyp                   " Sales Doc category&lt;/P&gt;&lt;P&gt;        a~fkdat                   " Billing doc date&lt;/P&gt;&lt;P&gt;        a~fkart                   " Billing doc type&lt;/P&gt;&lt;P&gt;        a~bukrs                   " Company code&lt;/P&gt;&lt;P&gt;        a~kurrf                   " Exchange rate&lt;/P&gt;&lt;P&gt;        a~knumv                   " Condition record Number&lt;/P&gt;&lt;P&gt;        a~waerk                   " Currency&lt;/P&gt;&lt;P&gt;        a~kunag                   " Sold to Party&lt;/P&gt;&lt;P&gt;        b~vrkme                   " Sales Unit&lt;/P&gt;&lt;P&gt;        b~posnr                   " Item Number&lt;/P&gt;&lt;P&gt;        b~charg                   " Batch Number&lt;/P&gt;&lt;P&gt;        b~fkimg                   " Billed quantity&lt;/P&gt;&lt;P&gt;        b~werks                   " Plant&lt;/P&gt;&lt;P&gt;        b~matnr                   " Material Number&lt;/P&gt;&lt;P&gt;        b~netwr                   " Net Value of Bill Doc&lt;/P&gt;&lt;P&gt;        b~wavwr                   " Cost in Doc Currency&lt;/P&gt;&lt;P&gt;        c~kdmat                   " Customer Material&lt;/P&gt;&lt;P&gt;                 into table itab_bill&lt;/P&gt;&lt;P&gt;                 from vbrk as a join vbrp as b&lt;/P&gt;&lt;P&gt;                        on b&lt;SUB&gt;vbeln = a&lt;/SUB&gt;vbeln&lt;/P&gt;&lt;P&gt;                        join vbap as c&lt;/P&gt;&lt;P&gt;                        on b&lt;SUB&gt;aubel = c&lt;/SUB&gt;vbeln and&lt;/P&gt;&lt;P&gt;                           b&lt;SUB&gt;aupos = c&lt;/SUB&gt;posnr&lt;/P&gt;&lt;P&gt;                  where a~vbeln in s_vbeln and&lt;/P&gt;&lt;P&gt;                        a~fkdat in s_fkdat and&lt;/P&gt;&lt;P&gt;                        a~bukrs in s_bukrs and&lt;/P&gt;&lt;P&gt;                        a~vtweg in s_vtweg and&lt;/P&gt;&lt;P&gt;                        a~vkorg in s_vkorg and&lt;/P&gt;&lt;P&gt;                        a~spart in s_spart and&lt;/P&gt;&lt;P&gt;                        a~fkart in s_fkart and&lt;/P&gt;&lt;P&gt;                        b~werks in s_werks and&lt;/P&gt;&lt;P&gt;                        a~kunag in s_kunag and&lt;/P&gt;&lt;P&gt;                        a~sfakn eq ' ' and&lt;/P&gt;&lt;P&gt;                        a~fksto eq ' ' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform .&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 bill_details                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;appending data into itab_out 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 bill_details.&lt;/P&gt;&lt;P&gt;  sort itab_bill by vbeln.&lt;/P&gt;&lt;P&gt;  select single waers from t001 into t001-waers&lt;/P&gt;&lt;P&gt;                          where bukrs in s_bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data:f_txt1(10),f_txt2(10),f_txt3(10).&lt;/P&gt;&lt;P&gt;  loop at itab_bill.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    itab_out-vbeln   = itab_bill-vbeln.&lt;/P&gt;&lt;P&gt;    itab_out-fktyp   = itab_bill-fktyp.&lt;/P&gt;&lt;P&gt;    itab_out-vbtyp   = itab_bill-vbtyp.&lt;/P&gt;&lt;P&gt;    itab_out-fkdat   = itab_bill-fkdat.&lt;/P&gt;&lt;P&gt;    itab_out-fkart   = itab_bill-fkart.&lt;/P&gt;&lt;P&gt;    itab_out-bukrs   = itab_bill-bukrs.&lt;/P&gt;&lt;P&gt;    itab_out-kurrf   = itab_bill-kurrf.&lt;/P&gt;&lt;P&gt;    itab_out-waerk   = itab_bill-waerk.&lt;/P&gt;&lt;P&gt;    itab_out-kunag   = itab_bill-kunag.&lt;/P&gt;&lt;P&gt;    itab_out-vrkme   = itab_bill-vrkme.&lt;/P&gt;&lt;P&gt;    itab_out-posnr   = itab_bill-posnr.&lt;/P&gt;&lt;P&gt;    itab_out-charg   = itab_bill-charg.&lt;/P&gt;&lt;P&gt;    itab_out-fkimg   = itab_bill-fkimg.&lt;/P&gt;&lt;P&gt;    itab_out-werks   = itab_bill-werks.&lt;/P&gt;&lt;P&gt;    itab_out-matnr   = itab_bill-matnr.&lt;/P&gt;&lt;P&gt;    itab_out-kdmat   = itab_bill-kdmat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   select single currdec from tcurx into tcurx-currdec&lt;/P&gt;&lt;P&gt;          where currkey eq itab_out-waerk.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq '0' .&lt;/P&gt;&lt;P&gt;      if tcurx-currdec eq '0'.&lt;/P&gt;&lt;P&gt;        itab_bill-netwr = itab_bill-netwr * 100.&lt;/P&gt;&lt;P&gt;        itab_bill-wavwr = itab_bill-wavwr * 100.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    itab_out-bil_amt = itab_bill-netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : konv.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Pricing data from KONV table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single kbetr kwert kpein from konv into&lt;/P&gt;&lt;P&gt;                                  (konv-kbetr,konv-kwert,konv-kpein)&lt;/P&gt;&lt;P&gt;                                   where knumv = itab_bill-knumv and&lt;/P&gt;&lt;P&gt;                                         kposn = itab_bill-posnr and&lt;/P&gt;&lt;P&gt;                                         kschl eq 'ZSP1' and&lt;/P&gt;&lt;P&gt;                                         krech eq 'C' and&lt;/P&gt;&lt;P&gt;                                         kinak eq ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Currency conversion&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single currdec from tcurx into tcurx-currdec&lt;/P&gt;&lt;P&gt;                       where currkey eq itab_out-waerk.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq '0' .&lt;/P&gt;&lt;P&gt;      if tcurx-currdec eq '0'.&lt;/P&gt;&lt;P&gt;        konv-kbetr = konv-kbetr * 100.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Unit Price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    itab_out-sel_prc = konv-kbetr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Unit Price Calculation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if not konv-kpein is initial.&lt;/P&gt;&lt;P&gt;      itab_out-sel_prc = itab_out-sel_prc / konv-kpein .&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;Call Function to get the Period for the given Billing date&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and Company Code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform get_period.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selecting Material Valuation Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    clear:mbew.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if itab_out-fktyp eq 'L'.&lt;/P&gt;&lt;P&gt;      select single&lt;/P&gt;&lt;P&gt;          lfmon lfgja verpr stprs vmver vmstp&lt;/P&gt;&lt;P&gt;             from mbew&lt;/P&gt;&lt;P&gt;             into (mbew-lfmon,mbew-lfgja,mbew-verpr,&lt;/P&gt;&lt;P&gt;                   mbew-stprs,mbew-vmver,mbew-vmstp)&lt;/P&gt;&lt;P&gt;                      where matnr = itab_out-matnr&lt;/P&gt;&lt;P&gt;                      and   bwkey = itab_out-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if mbew-lfmon = w_period and mbew-lfgja = w_year.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        select single currdec from tcurx into tcurx-currdec&lt;/P&gt;&lt;P&gt;              where currkey eq t001-waers.&lt;/P&gt;&lt;P&gt;        if sy-subrc eq '0' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          if tcurx-currdec eq '0'.&lt;/P&gt;&lt;P&gt;            mbew-stprs = mbew-stprs * 100.&lt;/P&gt;&lt;P&gt;            mbew-verpr = mbew-verpr * 100.&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 itab_out-waerk eq t001-waers.&lt;/P&gt;&lt;P&gt;          itab_out-mvg_prs = mbew-verpr  ."/ itab_out-kurrf.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          itab_out-mvg_prs = mbew-verpr  / itab_out-kurrf.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        clear:mbewh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        select single&lt;/P&gt;&lt;P&gt;         lfmon lfgja verpr stprs&lt;/P&gt;&lt;P&gt;            from mbewh&lt;/P&gt;&lt;P&gt;            into (mbewh-lfmon,mbewh-lfgja,mbewh-verpr,&lt;/P&gt;&lt;P&gt;                  mbewh-stprs)&lt;/P&gt;&lt;P&gt;                     where matnr = itab_out-matnr&lt;/P&gt;&lt;P&gt;                     and   bwkey = itab_out-werks&lt;/P&gt;&lt;P&gt;                     and   lfmon = w_period&lt;/P&gt;&lt;P&gt;                     and   lfgja = w_year.&lt;/P&gt;&lt;P&gt;        select single currdec from tcurx into tcurx-currdec&lt;/P&gt;&lt;P&gt;                where currkey eq t001-waers.&lt;/P&gt;&lt;P&gt;        if sy-subrc eq '0' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          if tcurx-currdec eq '0'.&lt;/P&gt;&lt;P&gt;            mbewh-verpr = mbewh-verpr * 100.&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 itab_out-waerk eq t001-waers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          itab_out-mvg_prs = mbewh-verpr ."/ itab_out-kurrf.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          itab_out-mvg_prs = mbewh-verpr  / itab_out-kurrf.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        if itab_out-mvg_prs is initial.&lt;/P&gt;&lt;P&gt;          select single&lt;/P&gt;&lt;P&gt;                  lfmon lfgja verpr stprs vmver vmstp&lt;/P&gt;&lt;P&gt;                     from mbew&lt;/P&gt;&lt;P&gt;                     into (mbew-lfmon,mbew-lfgja,mbew-verpr,&lt;/P&gt;&lt;P&gt;                           mbew-stprs,mbew-vmver,mbew-vmstp)&lt;/P&gt;&lt;P&gt;                              where matnr = itab_out-matnr&lt;/P&gt;&lt;P&gt;                              and   bwkey = itab_out-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          select single currdec from tcurx&lt;/P&gt;&lt;P&gt;             into tcurx-currdec&lt;/P&gt;&lt;P&gt;             where currkey eq t001-waers.&lt;/P&gt;&lt;P&gt;          if sy-subrc eq '0' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            if tcurx-currdec eq '0'.&lt;/P&gt;&lt;P&gt;              mbew-verpr = mbew-verpr * 100.&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 itab_out-waerk eq t001-waers.&lt;/P&gt;&lt;P&gt;            itab_out-mvg_prs = mbew-verpr  ."/ itab_out-kurrf.&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            itab_out-mvg_prs = mbew-verpr  / itab_out-kurrf.&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;LI level="1" type="ul"&gt;&lt;P&gt;To find Density and Mode from MARA and T179T tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    clear :mara,t179t.&lt;/P&gt;&lt;P&gt;    select single prdha from mara&lt;/P&gt;&lt;P&gt;          into mara-prdha&lt;/P&gt;&lt;P&gt;          where matnr = itab_out-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select single vtext from t179t&lt;/P&gt;&lt;P&gt;           into t179t-vtext&lt;/P&gt;&lt;P&gt;           where spras = 'EN' and&lt;/P&gt;&lt;P&gt;           prodh = mara-prdha(4).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    split t179t-vtext at ' ' into f_txt1 f_txt2 f_txt3.&lt;/P&gt;&lt;P&gt;    itab_out-mode = f_txt2.&lt;/P&gt;&lt;P&gt;    itab_out-density = f_txt3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if not itab_out-mvg_prs is initial.&lt;/P&gt;&lt;P&gt;      if itab_out-fktyp eq 'L'.&lt;/P&gt;&lt;P&gt;        itab_out-gp_mvp_amt = itab_out-bil_amt - itab_out-mvg_prs *&lt;/P&gt;&lt;P&gt;                                                   itab_out-fkimg.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        itab_out-gp_mvp_amt = '0'.&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 not itab_out-mvg_prs is initial&lt;/P&gt;&lt;P&gt;       and not itab_out-sel_prc is initial.&lt;/P&gt;&lt;P&gt;      itab_out-gp_mvp_pr = ( itab_out-sel_prc - itab_out-mvg_prs )&lt;/P&gt;&lt;P&gt;                                     / itab_out-sel_prc * 100.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append itab_out.&lt;/P&gt;&lt;P&gt;    clear itab_out.&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;  loop at itab_out.&lt;/P&gt;&lt;P&gt;    if itab_out-vbtyp eq 'N' or itab_out-vbtyp eq 'O'.&lt;/P&gt;&lt;P&gt;      itab_out-fkimg   = itab_out-fkimg * -1.&lt;/P&gt;&lt;P&gt;      itab_out-sel_prc = itab_out-sel_prc * -1.&lt;/P&gt;&lt;P&gt;      itab_out-bil_amt = itab_out-bil_amt * -1.&lt;/P&gt;&lt;P&gt;      itab_out-mvg_prs = itab_out-mvg_prs * -1.&lt;/P&gt;&lt;P&gt;      itab_out-gp_mvp_amt = itab_out-gp_mvp_amt * -1.&lt;/P&gt;&lt;P&gt;      itab_out-gp_mvp_pr = itab_out-gp_mvp_pr * -1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the bill amount is 0 then the quantity should also be 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      if itab_out-bil_amt = 0.&lt;/P&gt;&lt;P&gt;        itab_out-fkimg = 0.&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;Check if the Bill amount is Credit memo amount, then the gross profit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;should also be the same bill amount irrespecitve of +ve or -ve.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      if itab_out-gp_mvp_amt = 0.&lt;/P&gt;&lt;P&gt;        move: itab_out-bil_amt to itab_out-gp_mvp_amt.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      modify itab_out.&lt;/P&gt;&lt;P&gt;      clear itab_out.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_period&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; Getting Document Period&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_period.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear :w_period,w_year,w_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  concatenate itab_out-fkdat(4)&lt;/P&gt;&lt;P&gt;               itab_out-fkdat+4(2)&lt;/P&gt;&lt;P&gt;               itab_out-fkdat+6(2)&lt;/P&gt;&lt;P&gt;               into w_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'BAPI_COMPANYCODE_GET_PERIOD'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            companycodeid = itab_out-bukrs&lt;/P&gt;&lt;P&gt;            posting_date  = w_date&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            fiscal_year   = w_year&lt;/P&gt;&lt;P&gt;            fiscal_period = w_period.&lt;/P&gt;&lt;P&gt;endform.                    " get_period&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  invoice_output_cust&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;      Report Output when customer is selected&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 invoice_output_cust.&lt;/P&gt;&lt;P&gt;  write at /1(214) sy-uline.&lt;/P&gt;&lt;P&gt;  sort itab_out  by kunag vbeln fkart posnr fkdat.&lt;/P&gt;&lt;P&gt;  loop at itab_out.&lt;/P&gt;&lt;P&gt;    if f_flg = 'X'.&lt;/P&gt;&lt;P&gt;      format color col_normal intensified off.&lt;/P&gt;&lt;P&gt;      f_flg = ' '.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      format color col_normal intensified on.&lt;/P&gt;&lt;P&gt;      f_flg = 'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    at new kunag.&lt;/P&gt;&lt;P&gt;      read table itab_out index sy-tabix.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    write:  /01 sy-vline,  2(10) itab_out-kunag,&lt;/P&gt;&lt;P&gt;             12 sy-vline, 13(10) itab_out-vbeln,&lt;/P&gt;&lt;P&gt;             23 sy-vline, 24(6)  itab_out-posnr,&lt;/P&gt;&lt;P&gt;             30 sy-vline, 31(10) itab_out-fkdat,&lt;/P&gt;&lt;P&gt;             41 sy-vline, 42(6)  itab_out-mode,&lt;/P&gt;&lt;P&gt;             48 sy-vline, 49(7)  itab_out-density,&lt;/P&gt;&lt;P&gt;             56 sy-vline, 57(18) itab_out-matnr,&lt;/P&gt;&lt;P&gt;             75 sy-vline, 76(10) itab_out-charg,&lt;/P&gt;&lt;P&gt;             86 sy-vline,&lt;/P&gt;&lt;P&gt;             87(13) itab_out-fkimg unit itab_out-vrkme no-sign,&lt;/P&gt;&lt;P&gt;             102(3) itab_out-vrkme,&lt;/P&gt;&lt;P&gt;            105 sy-vline,&lt;/P&gt;&lt;P&gt;            106(14) itab_out-sel_prc currency konv-waers no-sign,&lt;/P&gt;&lt;P&gt;            120 sy-vline,&lt;/P&gt;&lt;P&gt;            121(15) itab_out-bil_amt currency vbrk-waerk no-sign,&lt;/P&gt;&lt;P&gt;            138(3) itab_out-waerk,&lt;/P&gt;&lt;P&gt;            141 sy-vline,&lt;/P&gt;&lt;P&gt;            142(15) itab_out-mvg_prs currency vbrk-waerk no-sign,&lt;/P&gt;&lt;P&gt;            157 sy-vline,&lt;/P&gt;&lt;P&gt;            158(15) itab_out-gp_mvp_amt currency vbrk-waerk no-sign,&lt;/P&gt;&lt;P&gt;            173 sy-vline,174(6)  itab_out-gp_mvp_pr no-sign ,&lt;/P&gt;&lt;P&gt;            180 sy-vline,181(33) itab_out-kdmat,&lt;/P&gt;&lt;P&gt;            214 sy-vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_fkimg = t_fkimg + itab_out-fkimg.&lt;/P&gt;&lt;P&gt;    t_bil_amt = t_bil_amt + itab_out-bil_amt.&lt;/P&gt;&lt;P&gt;    t_gp_mvp_amt = t_gp_mvp_amt + itab_out-gp_mvp_amt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_gr_fkimg      = t_gr_fkimg         + itab_out-fkimg.&lt;/P&gt;&lt;P&gt;    t_gr_bil_amt    = t_gr_bil_amt       + itab_out-bil_amt.&lt;/P&gt;&lt;P&gt;    t_gr_gp_mvp_amt = t_gr_gp_mvp_amt    + itab_out-gp_mvp_amt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    at end of kunag.&lt;/P&gt;&lt;P&gt;      format reset.&lt;/P&gt;&lt;P&gt;      format color col_total intensified off.&lt;/P&gt;&lt;P&gt;      write:/1(214) sy-uline.&lt;/P&gt;&lt;P&gt;      write:/01 sy-vline,&lt;/P&gt;&lt;P&gt;             02 'Sub Total of Customer:'(035), itab_out-kunag,&lt;/P&gt;&lt;P&gt;             87(13) t_fkimg unit itab_out-vrkme no-sign,&lt;/P&gt;&lt;P&gt;            121(15) t_bil_amt no-sign,&lt;/P&gt;&lt;P&gt;            158(15) t_gp_mvp_amt no-sign,&lt;/P&gt;&lt;P&gt;            214 ' ',&lt;/P&gt;&lt;P&gt;            /1(214)  sy-uline.&lt;/P&gt;&lt;P&gt;      clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;    at last.&lt;/P&gt;&lt;P&gt;      write:/01 sy-vline,&lt;/P&gt;&lt;P&gt;             02 'Grand Total :'(032),&lt;/P&gt;&lt;P&gt;             87(13) t_gr_fkimg unit itab_out-vrkme no-sign,&lt;/P&gt;&lt;P&gt;            121(15) t_gr_bil_amt no-sign,&lt;/P&gt;&lt;P&gt;            158(15) t_gr_gp_mvp_amt no-sign,&lt;/P&gt;&lt;P&gt;            214 ' '.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;    format color off.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  write at /1(214) sy-uline.&lt;/P&gt;&lt;P&gt;endform.    "invoice_output_cust&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  invoice_output_mode&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;      Report Output&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 invoice_output_mode.&lt;/P&gt;&lt;P&gt;  loop at itab_out.&lt;/P&gt;&lt;P&gt;    move-corresponding itab_out to itab_out2.&lt;/P&gt;&lt;P&gt;    append itab_out2.&lt;/P&gt;&lt;P&gt;    clear: itab_out2.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write at /1(214) sy-uline.&lt;/P&gt;&lt;P&gt;  sort itab_out2  by mode vbeln posnr fkdat.&lt;/P&gt;&lt;P&gt;  loop at itab_out2.&lt;/P&gt;&lt;P&gt;    if f_flg = 'X'.&lt;/P&gt;&lt;P&gt;      format color col_normal intensified off.&lt;/P&gt;&lt;P&gt;      f_flg = ' '.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      format color col_normal intensified on.&lt;/P&gt;&lt;P&gt;      f_flg = 'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    at new mode.&lt;/P&gt;&lt;P&gt;      read table itab_out2 index sy-tabix.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    write: /01 sy-vline,  2(10) itab_out2-kunag,&lt;/P&gt;&lt;P&gt;            12 sy-vline, 13(10) itab_out2-vbeln,&lt;/P&gt;&lt;P&gt;            23 sy-vline, 24(6)  itab_out2-posnr,&lt;/P&gt;&lt;P&gt;            30 sy-vline, 31(10) itab_out2-fkdat,&lt;/P&gt;&lt;P&gt;            41 sy-vline, 42(6)  itab_out2-mode,&lt;/P&gt;&lt;P&gt;            48 sy-vline, 49(7)  itab_out2-density,&lt;/P&gt;&lt;P&gt;            56 sy-vline, 57(18) itab_out2-matnr,&lt;/P&gt;&lt;P&gt;            75 sy-vline, 76(10) itab_out2-charg,&lt;/P&gt;&lt;P&gt;            86 sy-vline,&lt;/P&gt;&lt;P&gt;            87(13) itab_out2-fkimg unit itab_out2-vrkme no-sign,&lt;/P&gt;&lt;P&gt;            102(3) itab_out2-vrkme,&lt;/P&gt;&lt;P&gt;            105 sy-vline,&lt;/P&gt;&lt;P&gt;            106(14) itab_out2-sel_prc currency vbrk-waerk no-sign,&lt;/P&gt;&lt;P&gt;            120 sy-vline,&lt;/P&gt;&lt;P&gt;            121(15) itab_out2-bil_amt currency vbrk-waerk no-sign,&lt;/P&gt;&lt;P&gt;                         138(3)  itab_out2-waerk,&lt;/P&gt;&lt;P&gt;            141 sy-vline,&lt;/P&gt;&lt;P&gt;            142(15) itab_out2-mvg_prs currency vbrk-waerk no-sign,&lt;/P&gt;&lt;P&gt;            157 sy-vline,&lt;/P&gt;&lt;P&gt;            158(15) itab_out2-gp_mvp_amt currency vbrk-waerk no-sign,&lt;/P&gt;&lt;P&gt;            173 sy-vline,174(6)  itab_out2-gp_mvp_pr no-sign,&lt;/P&gt;&lt;P&gt;            180 sy-vline,181(33) itab_out2-kdmat,&lt;/P&gt;&lt;P&gt;            214 sy-vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_fkimg = t_fkimg + itab_out2-fkimg.&lt;/P&gt;&lt;P&gt;    t_bil_amt = t_bil_amt + itab_out2-bil_amt.&lt;/P&gt;&lt;P&gt;    t_gp_mvp_amt = t_gp_mvp_amt + itab_out2-gp_mvp_amt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_gr_fkimg      = t_gr_fkimg         + itab_out2-fkimg.&lt;/P&gt;&lt;P&gt;    t_gr_bil_amt    = t_gr_bil_amt       + itab_out2-bil_amt.&lt;/P&gt;&lt;P&gt;    t_gr_gp_mvp_amt = t_gr_gp_mvp_amt    + itab_out2-gp_mvp_amt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    at end of mode.&lt;/P&gt;&lt;P&gt;      format reset.&lt;/P&gt;&lt;P&gt;      format color col_total intensified off.&lt;/P&gt;&lt;P&gt;      write:/1(214) sy-uline.&lt;/P&gt;&lt;P&gt;      write:/01 sy-vline,&lt;/P&gt;&lt;P&gt;             02 'Sub Total of Mode :'(033), itab_out2-mode,&lt;/P&gt;&lt;P&gt;             87(13) t_fkimg unit itab_out-vrkme no-sign,&lt;/P&gt;&lt;P&gt;            121(15) t_bil_amt no-sign,&lt;/P&gt;&lt;P&gt;            158(15) t_gp_mvp_amt no-sign,&lt;/P&gt;&lt;P&gt;            214 ' ',&lt;/P&gt;&lt;P&gt;            /1(214)  sy-uline.&lt;/P&gt;&lt;P&gt;      clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;    at last.&lt;/P&gt;&lt;P&gt;      write:/01 sy-vline,&lt;/P&gt;&lt;P&gt;             02 'Grand Total :'(032),&lt;/P&gt;&lt;P&gt;             87(13) t_gr_fkimg unit itab_out-vrkme no-sign,&lt;/P&gt;&lt;P&gt;            121(15) t_gr_bil_amt no-sign,&lt;/P&gt;&lt;P&gt;            158(15) t_gr_gp_mvp_amt no-sign,&lt;/P&gt;&lt;P&gt;            214 ' '.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;    format color off.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  write at /1(214) sy-uline.&lt;/P&gt;&lt;P&gt;endform.    "invoice_output_mode&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  invoice_output_dens&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;      Report Output&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 invoice_output_dens.&lt;/P&gt;&lt;P&gt;  loop at itab_out.&lt;/P&gt;&lt;P&gt;    move-corresponding itab_out to itab_out3.&lt;/P&gt;&lt;P&gt;    append itab_out3.&lt;/P&gt;&lt;P&gt;    clear: itab_out3.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write at /1(214) sy-uline.&lt;/P&gt;&lt;P&gt;  sort itab_out3  by mode density vbeln posnr fkdat.&lt;/P&gt;&lt;P&gt;  loop at itab_out3.&lt;/P&gt;&lt;P&gt;    if f_flg = 'X'.&lt;/P&gt;&lt;P&gt;      format color col_normal intensified off.&lt;/P&gt;&lt;P&gt;      f_flg = ' '.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      format color col_normal intensified on.&lt;/P&gt;&lt;P&gt;      f_flg = 'X'.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    at new mode.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    at new density.&lt;/P&gt;&lt;P&gt;      read table itab_out3 index sy-tabix.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    write:  /01 sy-vline,  2(10) itab_out3-kunag,&lt;/P&gt;&lt;P&gt;             12 sy-vline, 13(10) itab_out3-vbeln,&lt;/P&gt;&lt;P&gt;             23 sy-vline, 24(6)  itab_out3-posnr,&lt;/P&gt;&lt;P&gt;             30 sy-vline, 31(10) itab_out3-fkdat,&lt;/P&gt;&lt;P&gt;             41 sy-vline, 42(6)  itab_out3-mode,&lt;/P&gt;&lt;P&gt;             48 sy-vline, 49(7)  itab_out3-density,&lt;/P&gt;&lt;P&gt;             56 sy-vline, 57(18) itab_out3-matnr,&lt;/P&gt;&lt;P&gt;             75 sy-vline, 76(10) itab_out3-charg,&lt;/P&gt;&lt;P&gt;             86 sy-vline,&lt;/P&gt;&lt;P&gt;             87(13) itab_out3-fkimg unit itab_out3-vrkme no-sign,&lt;/P&gt;&lt;P&gt;             102(3) itab_out3-vrkme,&lt;/P&gt;&lt;P&gt;             105 sy-vline,106(14) itab_out3-sel_prc no-sign,&lt;/P&gt;&lt;P&gt;             120 sy-vline,&lt;/P&gt;&lt;P&gt;             121(15) itab_out3-bil_amt currency vbrk-waerk no-sign,&lt;/P&gt;&lt;P&gt;                          138(3)  itab_out3-waerk,&lt;/P&gt;&lt;P&gt;             141 sy-vline,142(15) itab_out3-mvg_prs no-sign&lt;/P&gt;&lt;P&gt;                                  currency vbrk-waerk,&lt;/P&gt;&lt;P&gt;             157 sy-vline,158(15) itab_out3-gp_mvp_amt no-sign&lt;/P&gt;&lt;P&gt;                                  currency vbrk-waerk,&lt;/P&gt;&lt;P&gt;             173 sy-vline,174(6)  itab_out3-gp_mvp_pr no-sign,&lt;/P&gt;&lt;P&gt;             180 sy-vline,181(33) itab_out3-kdmat,&lt;/P&gt;&lt;P&gt;             214 sy-vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_efkimg      = t_efkimg      + itab_out3-fkimg.&lt;/P&gt;&lt;P&gt;    t_ebil_amt    = t_ebil_amt    + itab_out3-bil_amt.&lt;/P&gt;&lt;P&gt;    t_egp_mvp_amt = t_egp_mvp_amt + itab_out3-gp_mvp_amt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_fkimg = t_fkimg + itab_out3-fkimg.&lt;/P&gt;&lt;P&gt;    t_bil_amt = t_bil_amt + itab_out3-bil_amt.&lt;/P&gt;&lt;P&gt;    t_gp_mvp_amt = t_gp_mvp_amt + itab_out3-gp_mvp_amt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_gr_fkimg      = t_gr_fkimg         + itab_out3-fkimg.&lt;/P&gt;&lt;P&gt;    t_gr_bil_amt    = t_gr_bil_amt       + itab_out3-bil_amt.&lt;/P&gt;&lt;P&gt;    t_gr_gp_mvp_amt = t_gr_gp_mvp_amt    + itab_out3-gp_mvp_amt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    at end of density.&lt;/P&gt;&lt;P&gt;      format reset.&lt;/P&gt;&lt;P&gt;      format color col_total intensified off.&lt;/P&gt;&lt;P&gt;      write:/1(214) sy-uline.&lt;/P&gt;&lt;P&gt;      write:/01 sy-vline,&lt;/P&gt;&lt;P&gt;             02 'Sub Total of Density :'(034), itab_out3-density,&lt;/P&gt;&lt;P&gt;            87(13) t_efkimg unit itab_out-vrkme no-sign,&lt;/P&gt;&lt;P&gt;           121(15) t_ebil_amt currency vbrk-waerk no-sign,&lt;/P&gt;&lt;P&gt;           158(15) t_egp_mvp_amt currency vbrk-waerk no-sign,&lt;/P&gt;&lt;P&gt;           214 ' ',&lt;/P&gt;&lt;P&gt;            /1(214) sy-uline.&lt;/P&gt;&lt;P&gt;      clear: t_efkimg, t_ebil_amt,t_egp_mvp_amt.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;    at end of mode.&lt;/P&gt;&lt;P&gt;      format reset.&lt;/P&gt;&lt;P&gt;      format color col_total intensified off.&lt;/P&gt;&lt;P&gt;      write:/01 sy-vline,&lt;/P&gt;&lt;P&gt;             02 'Sub Total of Mode :'(033), itab_out3-mode,&lt;/P&gt;&lt;P&gt;             87(13) t_fkimg unit itab_out-vrkme no-sign,&lt;/P&gt;&lt;P&gt;            121(15) t_bil_amt no-sign,&lt;/P&gt;&lt;P&gt;            158(15) t_gp_mvp_amt no-sign,&lt;/P&gt;&lt;P&gt;            214 ' ',&lt;/P&gt;&lt;P&gt;            /1(214) sy-uline.&lt;/P&gt;&lt;P&gt;      clear: t_fkimg, t_bil_amt, t_gp_mvp_amt.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    at last.&lt;/P&gt;&lt;P&gt;      write:/01 sy-vline,&lt;/P&gt;&lt;P&gt;             02 'Grand Total :'(032),&lt;/P&gt;&lt;P&gt;            87(13) t_gr_fkimg unit itab_out-vrkme no-sign,&lt;/P&gt;&lt;P&gt;           121(15) t_gr_bil_amt no-sign,&lt;/P&gt;&lt;P&gt;           158(15) t_gr_gp_mvp_amt no-sign,&lt;/P&gt;&lt;P&gt;           214 ' '.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;    format color off.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write at /1(214) sy-uline.&lt;/P&gt;&lt;P&gt;endform.    "invoice_output_dens&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  f4_help&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;      To Get F4 Help to Select File Name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form f4_help.&lt;/P&gt;&lt;P&gt;  call function 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            program_name  = sy-cprog&lt;/P&gt;&lt;P&gt;            dynpro_number = syst-dynnr&lt;/P&gt;&lt;P&gt;            field_name    = 'P_FILE'&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            file_name     = p_file.&lt;/P&gt;&lt;P&gt;endform.                                                    " f4_help&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  rep_headers&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;      Report Header&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 rep_headers.&lt;/P&gt;&lt;P&gt;  format color col_heading on.&lt;/P&gt;&lt;P&gt;  format color col_heading on.&lt;/P&gt;&lt;P&gt;  select single butxt from t001 into t001-butxt&lt;/P&gt;&lt;P&gt;                                where bukrs = s_bukrs-low.&lt;/P&gt;&lt;P&gt;  skip 2.&lt;/P&gt;&lt;P&gt;  write: /2 t001-butxt, 92 'BILLING ANALYSIS'(003),&lt;/P&gt;&lt;P&gt;         190 'Date :'(010),sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write :/2 'Company Code :'(011), s_bukrs-low ,&lt;/P&gt;&lt;P&gt;        85 'Billing Date :'(012) , s_fkdat-low , '-' ,s_fkdat-high ,&lt;/P&gt;&lt;P&gt;        190 'Page :'(013), sy-pagno,&lt;/P&gt;&lt;P&gt;        214 ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write at /1(214) sy-uline.&lt;/P&gt;&lt;P&gt;  write: /1 sy-vline,  2(10) 'Customer'(004) centered,&lt;/P&gt;&lt;P&gt;         12 sy-vline, 13(10) 'Billing'(009) centered,&lt;/P&gt;&lt;P&gt;         23 sy-vline, 24(6)  'Billing'(009) centered,&lt;/P&gt;&lt;P&gt;         30 sy-vline, 31(10) 'Billing'(009) centered,&lt;/P&gt;&lt;P&gt;         41 sy-vline, 42(6)  'Mode'(006) centered,&lt;/P&gt;&lt;P&gt;         48 sy-vline, 49(7)  'Density'(014) centered,&lt;/P&gt;&lt;P&gt;         56 sy-vline, 57(18) 'Material'(015) centered,&lt;/P&gt;&lt;P&gt;         75 sy-vline, 76(10) 'Batch'(016) centered,&lt;/P&gt;&lt;P&gt;         86 sy-vline, 87(13) 'Quantity'(017) centered,102(3) 'UOM'(027),&lt;/P&gt;&lt;P&gt;         105 sy-vline, 106(14) 'Selling'(018) centered ,&lt;/P&gt;&lt;P&gt;         120 sy-vline, 121(15) 'Billing'(009) centered,&lt;/P&gt;&lt;P&gt;                       138(3) 'Cur'(028),&lt;/P&gt;&lt;P&gt;         141 sy-vline, 142(15) 'Mvg.Avg.Price'(020) centered,&lt;/P&gt;&lt;P&gt;         157 sy-vline, 158(22) 'Gross Profit(MVP)'(022) centered,&lt;/P&gt;&lt;P&gt;         180 sy-vline, 181(33) 'Customer Material'(023) centered,&lt;/P&gt;&lt;P&gt;         214 sy-vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write: /1 sy-vline,  2(10) 'Code'(024) centered,&lt;/P&gt;&lt;P&gt;         12 sy-vline, 13(10) 'Document'(025) centered,&lt;/P&gt;&lt;P&gt;         23 sy-vline, 24(6)  'Item'(026) centered,&lt;/P&gt;&lt;P&gt;         30 sy-vline, 31(10) 'Date'(036) centered,&lt;/P&gt;&lt;P&gt;         41 sy-vline,&lt;/P&gt;&lt;P&gt;         48 sy-vline,&lt;/P&gt;&lt;P&gt;         56 sy-vline,&lt;/P&gt;&lt;P&gt;         75 sy-vline,&lt;/P&gt;&lt;P&gt;         86 sy-vline,&lt;/P&gt;&lt;P&gt;        105 sy-vline, 106(14) 'Price'(030) centered ,&lt;/P&gt;&lt;P&gt;        120 sy-vline, 121(15) 'Amount'(031) centered,&lt;/P&gt;&lt;P&gt;        141 sy-vline, 142(15) '(per Unit)'(019) centered,&lt;/P&gt;&lt;P&gt;        157 sy-vline, 158(15) 'Amount'(031) centered,&lt;/P&gt;&lt;P&gt;        173 sy-vline, 174(6) ' % '(029) centered,&lt;/P&gt;&lt;P&gt;        180 sy-vline,&lt;/P&gt;&lt;P&gt;        214 sy-vline.&lt;/P&gt;&lt;P&gt;  format color off.&lt;/P&gt;&lt;P&gt;endform.                    " rep_headers&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  init_fieldnames&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; Initialise all the fields to download in Excel Data File&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 init_fieldnames.&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-004 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'KUNAG'    'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-037 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'VBELN'   'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-036 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'FKDAT'  'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-038 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'POSNR'    'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-006 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'MODE' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-014 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'DENSITY' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-015 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'MATNR'    'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-016 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'CHARG' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-017 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'FKIMG'    'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-039 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'VRKME' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-040 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'SEL_PRC' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-041 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'BIL_AMT' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-028 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'WAERK' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-020 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'MVG_PRS' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-044 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'GP_MVP_AMT' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-045 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'GP_MVP_PR' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform append_fieldname using text-023 'itab_out1'&lt;/P&gt;&lt;P&gt;                                 'KDMAT'         'X'.&lt;/P&gt;&lt;P&gt;endform.&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  append_fieldname&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; Appending field Names&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 append_fieldname using p_title p_table p_field p_type.&lt;/P&gt;&lt;P&gt;  clear: fieldnames.&lt;/P&gt;&lt;P&gt;  fieldnames-title = p_title.&lt;/P&gt;&lt;P&gt;  fieldnames-table = p_table.&lt;/P&gt;&lt;P&gt;  fieldnames-field = p_field.&lt;/P&gt;&lt;P&gt;  fieldnames-type  = p_type.&lt;/P&gt;&lt;P&gt;  append fieldnames.&lt;/P&gt;&lt;P&gt;endform.&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  download_excel&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; Getting Data to Download to File&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 download_excel using f_file.&lt;/P&gt;&lt;P&gt;  call function 'EXCEL_OLE_STANDARD_DAT'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            file_name                 = f_file&lt;/P&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            data_tab                  = itab_out1&lt;/P&gt;&lt;P&gt;            fieldnames                = fieldnames&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            file_not_exist            = 1&lt;/P&gt;&lt;P&gt;            filename_expected         = 2&lt;/P&gt;&lt;P&gt;            communication_error       = 3&lt;/P&gt;&lt;P&gt;            ole_object_method_error   = 4&lt;/P&gt;&lt;P&gt;            ole_object_property_error = 5&lt;/P&gt;&lt;P&gt;            invalid_filename          = 6&lt;/P&gt;&lt;P&gt;            invalid_pivot_fields      = 7&lt;/P&gt;&lt;P&gt;            download_problem          = 8&lt;/P&gt;&lt;P&gt;            others                    = 9.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    message s005(zv) with p_file. "Download to &amp;amp; Successfully Completed&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.&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  read_data_for_download&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;  Getting Data to Download to File&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 read_data_for_dowlload.&lt;/P&gt;&lt;P&gt;  sort itab_out by vbeln posnr fkdat.&lt;/P&gt;&lt;P&gt;  loop at itab_out.&lt;/P&gt;&lt;P&gt;    move-corresponding itab_out to itab_out1.&lt;/P&gt;&lt;P&gt;    append itab_out1.&lt;/P&gt;&lt;P&gt;    clear itab_out1.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.                    " read_data_for_dowlload&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Reward points for useful Answers&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Anji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jul 2007 05:33:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588643#M592525</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-24T05:33:11Z</dc:date>
    </item>
    <item>
      <title>Re: subroutine pool</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588644#M592526</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;    The subroutine pool is a routine that is created while a program is working.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So the code of subroutine isn't directly wrote in the program, but it must be wrote in an internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: TEXT(6) VALUE 'HELLO!', NAME LIKE SY-REPID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA TCODE(1000) OCCURS 100 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;TCODE = 'REPORT MY_REPORT.'.&lt;/P&gt;&lt;P&gt;APPEND TCODE.&lt;/P&gt;&lt;P&gt;TCODE = 'FORM MY_FORM.'.&lt;/P&gt;&lt;P&gt;APPEND TCODE.&lt;/P&gt;&lt;P&gt;TCODE = 'DATA: TEXT(6) VALUE ''HELLO!''.'.&lt;/P&gt;&lt;P&gt;APPEND TCODE.&lt;/P&gt;&lt;P&gt;TCODE = 'WRITE TEXT.'.&lt;/P&gt;&lt;P&gt;APPEND TCODE.&lt;/P&gt;&lt;P&gt;TCODE = 'ENDFORM. " MY_FORM'.&lt;/P&gt;&lt;P&gt;APPEND TCODE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GENERATE SUBROUTINE POOL TCODE NAME NAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;PERFORM MY_FORM IN PROGRAM (NAME).&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this link.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db999535c111d1829f0000e829fbfe/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db999535c111d1829f0000e829fbfe/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jul 2007 05:37:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588644#M592526</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-24T05:37:18Z</dc:date>
    </item>
    <item>
      <title>Re: subroutine pool</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588645#M592527</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;Go thru following thread&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="330740"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="468681"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="484807"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="60842"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;plz reward if useful&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;Swati&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jul 2007 05:39:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588645#M592527</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-24T05:39:07Z</dc:date>
    </item>
    <item>
      <title>Re: subroutine pool</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588646#M592528</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;Subroutine pool is a type of program where you write the definitions of your subroutines. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form &amp;#133;&amp;#133;&amp;#133;&amp;#133;&lt;/P&gt;&lt;P&gt;&amp;#133;&amp;#133;&amp;#133;&amp;#133;&amp;#133;.&lt;/P&gt;&lt;P&gt;&amp;#133;&amp;#133;.&lt;/P&gt;&lt;P&gt;Endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;N number of subroutines can be written in subroutine pool and can be used by any program. So, it makes the subroutines global (may be used by any number of programs).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A subroutine pool can be created from SE38 with Attribute &amp;#145;TYPE&amp;#146;: Subroutine pool. You can not execute this type of program. Its subroutines can be used by other program&amp;#146;s Perform statements &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check this link.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db999535c111d1829f0000e829fbfe/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_erp2004/helpdata/en/9f/db999535c111d1829f0000e829fbfe/frameset.htm&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;Padmam.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Jul 2007 05:56:25 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/subroutine-pool/m-p/2588646#M592528</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-24T05:56:25Z</dc:date>
    </item>
  </channel>
</rss>

