<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic problem with subroutine- need urgrnt help in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-subroutine-need-urgrnt-help/m-p/1920336#M382395</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hai all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;need help in subroutine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in a report program,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i had calculated to get the total collection amount and need to generate a list for every day.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on next day that collection amount must come as a poeninig balance at the top of the list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this i had done using two subroutines.&lt;/P&gt;&lt;P&gt;i have to call the subroutine for opening balance for previous day's collection  first.  after that in have to calculate the todays collection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how can i have this please give me a suggession.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is my report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i want the 'Progressive Total C/O ' from subroutine form f002_item_data. of today to be come in &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'Progressive Total B/F -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;BLOCKQUOTE level="1"&gt;&lt;P&gt;' ,106 w_total_bf.  of  the  subroutine form f001_progressive_total on next day..&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here is the code.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZVR023_COLL_STATEMENT                                       *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report  zvr023_coll_statement           no standard page heading        .&lt;/P&gt;&lt;P&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. MSD                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      Objective :                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Program   : Updates Tables (   )    Downloads data (  )       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                  Outputs List   ( X  )                             *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Date Created                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Author                                                *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Location                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      LDB                .....                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      External Dependencies                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; Amendment History                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;Who        Change ID    Reason                                      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯                                     *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;XXXXXXXXX  AADDMMYYYY Where XXXX = Developers Name................. *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           AA- Developers Initial ................................  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      Includes                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*INCLUDE   :                                                           *&lt;/P&gt;&lt;P&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                                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;tables   : vbak,bsid,kna1,t001,adrc,vbrk,knvv.&lt;/P&gt;&lt;P&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;      Types                    Begin with TY_                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;types : begin of ty_cust,&lt;/P&gt;&lt;P&gt;        belnr type bseg-belnr,&lt;/P&gt;&lt;P&gt;        wrbtr type bseg-wrbtr,&lt;/P&gt;&lt;P&gt;        xref1 type bseg-xref1,&lt;/P&gt;&lt;P&gt;        kunnr type kna1-kunnr, " sarang&lt;/P&gt;&lt;P&gt;        bschl type bseg-bschl,&lt;/P&gt;&lt;P&gt;        hkont type bseg-hkont,&lt;/P&gt;&lt;P&gt;        end of ty_cust.&lt;/P&gt;&lt;P&gt;types : begin of ty_bp,&lt;/P&gt;&lt;P&gt;        kunnr type vbak-kunnr,&lt;/P&gt;&lt;P&gt;        bukrs type bseg-bukrs,&lt;/P&gt;&lt;P&gt;        budat type bkpf-budat,&lt;/P&gt;&lt;P&gt;        end of ty_bp.&lt;/P&gt;&lt;P&gt;types : begin of ty_kna1,&lt;/P&gt;&lt;P&gt;        kunnr type kna1-kunnr,&lt;/P&gt;&lt;P&gt;        name1 type kna1-name1,&lt;/P&gt;&lt;P&gt;        ort01 type kna1-ort01,&lt;/P&gt;&lt;P&gt;        end of ty_kna1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types   : begin of ty_lst,&lt;/P&gt;&lt;P&gt;          vbeln      type vbrk-vbeln,                          " INVOICE NO&lt;/P&gt;&lt;P&gt;          fkart      type vbrk-fkart,&lt;/P&gt;&lt;P&gt;          posnr      type vbrp-posnr ,&lt;/P&gt;&lt;P&gt;          fkimg      type vbrp-fkimg ,                         " qty&lt;/P&gt;&lt;P&gt;          fkdat      type vbrk-fkdat,                          " date&lt;/P&gt;&lt;P&gt;          vkorg      type vbrk-vkorg,                          " sales org&lt;/P&gt;&lt;P&gt;          vtweg      type vbrk-vtweg,                          " division&lt;/P&gt;&lt;P&gt;          spart      type vbrk-spart,                          " distribution&lt;/P&gt;&lt;P&gt;          knumv      type vbrk-knumv,                          " Number of the document condition&lt;/P&gt;&lt;P&gt;          matnr      type vbrp-matnr ,&lt;/P&gt;&lt;P&gt;          med_prod   type jptmg0-med_prod,&lt;/P&gt;&lt;P&gt;          kunrg      type vbrk-kunrg,&lt;/P&gt;&lt;P&gt;          kwert      type konv-kwert,&lt;/P&gt;&lt;P&gt;          kbetr      type konv-kbetr,&lt;/P&gt;&lt;P&gt;          netwr      type vbrk-netwr,&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Address Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         KUNRG type vbrk-KUNRG,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          name1      type kna1-name1,&lt;/P&gt;&lt;P&gt;          stras      type kna1-stras,&lt;/P&gt;&lt;P&gt;          pstlz      type kna1-pstlz,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;***Added For Billing&lt;/P&gt;&lt;P&gt;         bukrs       type vbrk-bukrs,                          " Company code&lt;/P&gt;&lt;P&gt;         xblnr       type vbrk-xblnr,                          " Bill Ref&lt;/P&gt;&lt;P&gt;***************&lt;/P&gt;&lt;P&gt;         ismpublication type mara-ismpublication,&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Condition Type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;         kschl_zj01  type konv-kschl,&lt;/P&gt;&lt;P&gt;         kschl_zdis  type konv-kschl,&lt;/P&gt;&lt;P&gt;         kschl_znet  type konv-kschl,&lt;/P&gt;&lt;P&gt;         kwert_zj01  type konv-kawrt,                          " Base Condition&lt;/P&gt;&lt;P&gt;         kwert_zdis  type konv-kawrt,&lt;/P&gt;&lt;P&gt;         kwert_znet  type konv-kawrt,&lt;/P&gt;&lt;P&gt;         adrnr  type kna1-adrnr,&lt;/P&gt;&lt;P&gt;****&lt;/P&gt;&lt;P&gt;         end of ty_lst.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types   : begin of ty_lst1,&lt;/P&gt;&lt;P&gt;          vbeln      type vbrk-vbeln,                          " INVOICE NO&lt;/P&gt;&lt;P&gt;          fkart      type vbrk-fkart,&lt;/P&gt;&lt;P&gt;          fkdat      type vbrk-fkdat,                          " date&lt;/P&gt;&lt;P&gt;          fkimg      type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          kunrg      type vbrk-kunrg,                          " Payer&lt;/P&gt;&lt;P&gt;          fkimg_1    type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          fkimg_2    type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          fkimg_3    type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          fkimg_4    type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          fkimg_5    type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          matnr      type vbrp-matnr,&lt;/P&gt;&lt;P&gt;          med_prod   type jptmg0-med_prod,&lt;/P&gt;&lt;P&gt;          kwert      type konv-kwert,&lt;/P&gt;&lt;P&gt;          kbetr      type konv-kbetr,&lt;/P&gt;&lt;P&gt;          netwr      type vbrk-netwr,&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Address Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        KUNRG      type vbrk-KUNRG,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          name1      type kna1-name1,&lt;/P&gt;&lt;P&gt;          stras      type kna1-stras,&lt;/P&gt;&lt;P&gt;          pstlz      type kna1-pstlz,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;***Added For Billing&lt;/P&gt;&lt;P&gt;         bukrs type vbrk-bukrs ,&lt;/P&gt;&lt;P&gt;         xblnr type vbrk-xblnr,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;         ismpublication type mara-ismpublication,&lt;/P&gt;&lt;P&gt;****SPLIT FOR RATE&lt;/P&gt;&lt;P&gt;         kbetr_1   type   konv-kbetr,&lt;/P&gt;&lt;P&gt;         kbetr_2   type   konv-kbetr,&lt;/P&gt;&lt;P&gt;         kbetr_3   type   konv-kbetr,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Condition Type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;         kschl_zj01 type konv-kschl,&lt;/P&gt;&lt;P&gt;         kschl_zdis type konv-kschl,&lt;/P&gt;&lt;P&gt;         kschl_znet type konv-kschl,&lt;/P&gt;&lt;P&gt;         kwert_zj01 type konv-kawrt,                          " Base Condition&lt;/P&gt;&lt;P&gt;         kwert_zdis type konv-kawrt,&lt;/P&gt;&lt;P&gt;         kwert_znet type konv-kawrt,&lt;/P&gt;&lt;P&gt;****&lt;/P&gt;&lt;P&gt;         end of ty_lst1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types   : begin of ty_condition,&lt;/P&gt;&lt;P&gt;          kschl type konv-kschl,                                " Condition Type&lt;/P&gt;&lt;P&gt;          kwert type konv-kwert,                                " Condition Value&lt;/P&gt;&lt;P&gt;          knumv type konv-knumv,                                " Document Condi&lt;/P&gt;&lt;P&gt;          kposn type konv-kposn,&lt;/P&gt;&lt;P&gt;          kbetr type konv-kbetr,                                " Condition Rate&lt;/P&gt;&lt;P&gt;          end of ty_condition.&lt;/P&gt;&lt;P&gt;types : begin of ty_bkpf ,&lt;/P&gt;&lt;P&gt;belnr type bkpf-belnr,&lt;/P&gt;&lt;P&gt;gjahr type bkpf-gjahr,&lt;/P&gt;&lt;P&gt;bukrs type bkpf-bukrs,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end of ty_bkpf.&lt;/P&gt;&lt;P&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;      Constants                Begin with C_                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*CONSTANTS:                                                            *&lt;/P&gt;&lt;P&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;      Data                     Begin with W_                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;data     : w_cnt type i .&lt;/P&gt;&lt;P&gt;*DATA     : W_DMBTR  TYPE BSID-DMBTR.   " Open Value&lt;/P&gt;&lt;P&gt;*DATA     : W_KWERT TYPE  VBRP-FKIMG.   " Invoice Value&lt;/P&gt;&lt;P&gt;*DATA     : W_QTY_CON TYPE  VBRP-FKIMG.   " QTY&lt;/P&gt;&lt;P&gt;*DATA     : W_TO_QTY_CON TYPE  VBRP-FKIMG.   " QTY&lt;/P&gt;&lt;P&gt;*DATA     : W_DIFF TYPE  BSID-DMBTR.   " W_DIFF Bt Open &amp;amp; Invoice&lt;/P&gt;&lt;P&gt;*DATA     : W_DMBTR_CR  TYPE BSID-DMBTR.   " Cr Value&lt;/P&gt;&lt;P&gt;*DATA     : W_DMBTR_DR  TYPE BSID-DMBTR.   " Dr Value&lt;/P&gt;&lt;P&gt;*DATA     : W_DMBTR_TO  TYPE BSID-DMBTR.   " Total Value&lt;/P&gt;&lt;P&gt;*DATA :     W_KDGRP(2) .&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_IS TYPE I.&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_IS1 TYPE I.&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_IS2 TYPE I.&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_FIRST TYPE I.&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_ITAB TYPE I.&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_FIRST1(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_TAB(62),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          W_CNT_TAB_HEA(62),&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*data:           W_CNT_POS TYPE I.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="6" type="ul"&gt;&lt;P&gt;Variable for balance window&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;P&gt;data : w_open_bal type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_total_bf type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_sub_tot  type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_total_co type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_bill_bal type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_drn_bal type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_othr_chr type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_total_bal type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_coll_bal type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_unsd_cr  type  dmshb_x8, "Unsold Credit&lt;/P&gt;&lt;P&gt;       w_inceve  type  dmshb_x8, "Incentive&lt;/P&gt;&lt;P&gt;       w_cr_nt   type  dmshb_x8. "Cr Note&lt;/P&gt;&lt;P&gt;data     : w_pos  type bseg-wrbtr.   " Total Value&lt;/P&gt;&lt;P&gt;data     : w_neg  type bseg-wrbtr.   " Total Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : w_du_start_date like sy-datum,&lt;/P&gt;&lt;P&gt;       w_du_end_date like sy-datum .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**vARIABLE DEFINED FOR CONSOLIDATED WINDOW&lt;/P&gt;&lt;P&gt;data    : w_prod_cnt type i .&lt;/P&gt;&lt;P&gt;data    : w_prod_ch(2)  .&lt;/P&gt;&lt;P&gt;data    : w_prod_rate type i .&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&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;      Infotypes                   ( HR Module Specific)             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*INFOTYPES :                                                           *&lt;/P&gt;&lt;P&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          Begin with IT_                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;data : it_bp type table of ty_bp with header line,&lt;/P&gt;&lt;P&gt;       it_bp1 type table of ty_bp with header line,&lt;/P&gt;&lt;P&gt;       it_bp2 type table of ty_bp with header line,&lt;/P&gt;&lt;P&gt;       it_bp3 type table of ty_bp with header line,&lt;/P&gt;&lt;P&gt;       it_kna1 type table of ty_kna1 with header line,&lt;/P&gt;&lt;P&gt;       it_cust type table of ty_cust with header line,&lt;/P&gt;&lt;P&gt;       it_cust1 type table of ty_cust with header line,&lt;/P&gt;&lt;P&gt;       it_bkpf type table of ty_bkpf with header line,&lt;/P&gt;&lt;P&gt;       it_cust2 type table of ty_cust with header line,&lt;/P&gt;&lt;P&gt;       it_cust3 type table of ty_cust with header line.&lt;/P&gt;&lt;P&gt;data : it_pos like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt; it_check like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt; it_pos_bc1 like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt; it_pos_bc like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt; it_pos_nc like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt;       it_pos1 like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt;       it_sec like rfposxext occurs 1 with header line.&lt;/P&gt;&lt;P&gt;data : it_bal like rfposxext occurs 1 with header line.&lt;/P&gt;&lt;P&gt;data : w_text(100) type c.&lt;/P&gt;&lt;P&gt;data : w_cnt1(3).&lt;/P&gt;&lt;P&gt;data : l_date like mara-ismpublperiod .&lt;/P&gt;&lt;P&gt;data : p_date1 like  jkpaz-jkpavon.&lt;/P&gt;&lt;P&gt;data : l_day_c(2).&lt;/P&gt;&lt;P&gt;data : l_month_c(2).&lt;/P&gt;&lt;P&gt;data : l_base_yr_c(4).&lt;/P&gt;&lt;P&gt;data : w_text1(100) type c.&lt;/P&gt;&lt;P&gt;data : w_text2(100) type c.&lt;/P&gt;&lt;P&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;      Field Symbols            Begin with FS_                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*FIELD-SYMBOLS:                                                        *&lt;/P&gt;&lt;P&gt;field-symbols:  type ty_condition.&lt;/P&gt;&lt;P&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;      Insert                                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*INSERT   :                                                            *&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Select Options          Begin with SO_                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;selection-screen skip 1.&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  :  so_bukrs for vbrk-bukrs no intervals no-extension obligatory  .&lt;/P&gt;&lt;P&gt;select-options  :  so_kunrg for vbrk-vkorg no intervals no-extension obligatory,&lt;/P&gt;&lt;P&gt;                   so_vkbur for knvv-vkbur no intervals no-extension ,&lt;/P&gt;&lt;P&gt;                   so_fkdat for bsid-budat  no-extension obligatory ,&lt;/P&gt;&lt;P&gt;                   so_bdat1 for bsid-budat  no-display ,&lt;/P&gt;&lt;P&gt;                   so_bdat3 for bsid-budat  no-display ,&lt;/P&gt;&lt;P&gt;                   so_kunnr for kna1-kunnr no-display.&lt;/P&gt;&lt;P&gt;selection-screen:  end of block b1.&lt;/P&gt;&lt;P&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;      Parameters              Begin with PR_                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*PARAMETERS     :                                                      *&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;selection-screen begin of block b3 with frame title text-003.&lt;/P&gt;&lt;P&gt;parameters pr_3 radiobutton group rad1.&lt;/P&gt;&lt;P&gt;parameters pr_4 radiobutton group rad1.&lt;/P&gt;&lt;P&gt;selection-screen end of block b3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of block b2 with frame title text-002.&lt;/P&gt;&lt;P&gt;parameters pr_1 radiobutton group rad.&lt;/P&gt;&lt;P&gt;parameters pr_2 radiobutton group rad.&lt;/P&gt;&lt;P&gt;selection-screen end of block b2.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*INITIALISATION   :&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      At selection-screen                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&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;      S T A R T   O F   S E L E C T I O N                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if pr_3 is not initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Code commented/added by Praveen on 20.07.2006&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT kunnr INTO CORRESPONDING FIELDS OF TABLE it_bp1 FROM knvv&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   WHERE vkorg IN so_kunrg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     AND kunnr GE '0004000000'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     AND kunnr LE '0004999999'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select kunnr into corresponding fields of table it_bp1 from knvv&lt;/P&gt;&lt;P&gt;                                    where vkorg in so_kunrg&lt;/P&gt;&lt;P&gt;                                      and aufsd &amp;lt;&amp;gt; '01'&lt;/P&gt;&lt;P&gt;                                      and kunnr ge '0004000000'&lt;/P&gt;&lt;P&gt;                                      and kunnr le '0004999999' .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     PLTYP ne 'HB'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ends here&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if pr_4 is not initial.&lt;/P&gt;&lt;P&gt;    clear so_kunnr[].&lt;/P&gt;&lt;P&gt;    clear so_kunnr.&lt;/P&gt;&lt;P&gt;    so_kunnr-sign = 'I'.&lt;/P&gt;&lt;P&gt;    so_kunnr-option = 'BT'.&lt;/P&gt;&lt;P&gt;    so_kunnr-low =  '0001000000'.&lt;/P&gt;&lt;P&gt;    so_kunnr-high = '0001999999'.&lt;/P&gt;&lt;P&gt;    append so_kunnr.&lt;/P&gt;&lt;P&gt;    so_kunnr-sign = 'I'.&lt;/P&gt;&lt;P&gt;    so_kunnr-option = 'BT'.&lt;/P&gt;&lt;P&gt;    so_kunnr-low =  '0002000000'.&lt;/P&gt;&lt;P&gt;    so_kunnr-high = '0002999999'.&lt;/P&gt;&lt;P&gt;    append so_kunnr.&lt;/P&gt;&lt;P&gt;    so_kunnr-sign = 'I'.&lt;/P&gt;&lt;P&gt;    so_kunnr-option = 'BT'.&lt;/P&gt;&lt;P&gt;    so_kunnr-low =  '0007000000'.&lt;/P&gt;&lt;P&gt;    so_kunnr-high = '0007999999'.&lt;/P&gt;&lt;P&gt;    append so_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Code commented/added by Praveen on 20.07.2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select kunnr into corresponding fields of table it_bp1 from knvv&lt;/P&gt;&lt;P&gt;                                    where vkorg in so_kunrg and&lt;/P&gt;&lt;P&gt;                                        kunnr in so_kunnr and&lt;/P&gt;&lt;P&gt;                                        vkbur in so_vkbur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   AND kunnr GE '0001000000'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   AND kunnr LE '0001999999'   .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select kunnr into corresponding fields of table it_bp1 from knvv&lt;/P&gt;&lt;P&gt;                                       where vkorg in so_kunrg and&lt;/P&gt;&lt;P&gt;                                           aufsd &amp;lt;&amp;gt; '01' and&lt;/P&gt;&lt;P&gt;                                           kunnr in so_kunnr and&lt;/P&gt;&lt;P&gt;                                           vkbur in so_vkbur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   AND kunnr GE '0001000000'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   AND kunnr LE '0001999999'   .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ends here&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if pr_1 = 'X'.&lt;/P&gt;&lt;P&gt;    perform cust_prog.&lt;/P&gt;&lt;P&gt;    perform cust_line.&lt;/P&gt;&lt;P&gt;    perform f001_progressive_total.&lt;/P&gt;&lt;P&gt;    perform f002_item_data.&lt;/P&gt;&lt;P&gt;  elseif pr_2 = 'X'.&lt;/P&gt;&lt;P&gt;    perform cust_line.&lt;/P&gt;&lt;P&gt;    perform f002_item_data.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  cust_prog&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form cust_prog.&lt;/P&gt;&lt;P&gt;  clear it_bp3[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_date1 = so_fkdat-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'Z_VF053_DATE_GET_YEAR_MONTH'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_date  = p_date1&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      e_dd    = l_day_c&lt;/P&gt;&lt;P&gt;      e_month = l_month_c&lt;/P&gt;&lt;P&gt;      e_year  = l_base_yr_c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ranges so_bdat2 for bsid-budat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear : so_bdat3[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if l_day_c &amp;gt; 01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_day_c = '01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    concatenate   l_base_yr_c l_month_c l_day_c     into l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    so_bdat2-low = l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    so_bdat2-high = so_fkdat-low - 1.&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;    so_bdat2-low = '00000000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    so_bdat2-high = '00000000'.&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;  so_bdat2-sign = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  so_bdat2-option = 'BT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  append so_bdat2 to so_bdat3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select kunnr bukrs budat into corresponding fields of table it_bp3 from bsid&lt;/P&gt;&lt;P&gt;                                     for all entries in it_bp1&lt;/P&gt;&lt;P&gt;                                     where bukrs in so_bukrs&lt;/P&gt;&lt;P&gt;                                       and kunnr = it_bp1-kunnr&lt;/P&gt;&lt;P&gt;                                       and budat in so_bdat3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select kunnr bukrs budat &lt;/P&gt;&lt;P&gt;appending corresponding fields of table it_bp3 &lt;/P&gt;&lt;P&gt;from bsad&lt;/P&gt;&lt;P&gt;for all entries in it_bp1 &lt;/P&gt;&lt;P&gt;where bukrs in so_bukrs&lt;/P&gt;&lt;P&gt;and kunnr = it_bp1-kunnr&lt;/P&gt;&lt;P&gt;and budat in so_bdat3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort it_bp3 by kunnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  delete adjacent duplicates from it_bp3 comparing kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort it_bp3 by kunnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear w_total_bf.&lt;/P&gt;&lt;P&gt;endform.                    "cust_prog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  cust_line&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form cust_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear it_bp[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select kunnr bukrs budat &lt;/P&gt;&lt;P&gt;  into corresponding fields of table it_bp &lt;/P&gt;&lt;P&gt;  from bsid&lt;/P&gt;&lt;P&gt;  for all entries in it_bp1&lt;/P&gt;&lt;P&gt;  where bukrs in so_bukrs&lt;/P&gt;&lt;P&gt;  and kunnr = it_bp1-kunnr&lt;/P&gt;&lt;P&gt;  and budat in so_fkdat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select kunnr bukrs budat &lt;/P&gt;&lt;P&gt;  appending corresponding fields of table it_bp &lt;/P&gt;&lt;P&gt;  from bsad&lt;/P&gt;&lt;P&gt;  for all entries in it_bp1&lt;/P&gt;&lt;P&gt;  where bukrs in so_bukrs&lt;/P&gt;&lt;P&gt;  and kunnr = it_bp1-kunnr&lt;/P&gt;&lt;P&gt;  And budat in so_fkdat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort it_bp by kunnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  delete adjacent duplicates from it_bp comparing kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort it_bp by kunnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "cust_line&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f001_progressive_total&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f001_progressive_total.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not it_bp3[] is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : w_text ,w_cnt,p_date1,l_base_yr_c, l_month_c,l_day_c,l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   w_cnt1 = sy-tabix .&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;   CONCATENATE w_cnt1 '  Feaching Data  '  INTO w_text.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       text = w_text.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ranges so_bdat2 for bsid-bldat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : so_bdat1[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    p_date1 = so_fkdat-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'Z_VF053_DATE_GET_YEAR_MONTH'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        i_date  = p_date1&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        e_dd    = l_day_c&lt;/P&gt;&lt;P&gt;        e_month = l_month_c&lt;/P&gt;&lt;P&gt;        e_year  = l_base_yr_c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if l_day_c &amp;gt; 01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_day_c = '01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      concatenate   l_base_yr_c l_month_c l_day_c     into l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      so_bdat2-low = l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      so_bdat2-high = so_fkdat-low - 1.&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;      l_day_c = so_fkdat-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      so_bdat2-low = l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      so_bdat2-high = '00000000'.&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;    so_bdat2-sign = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    so_bdat2-option = 'BT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append so_bdat2 to so_bdat1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    export so_bdat1 to memory id 'DATE1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    export it_bp3 to memory id 'IT_BP3'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : so_bdat1, it_bp3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    submit  z_rfitemar1&lt;/P&gt;&lt;P&gt;            with x_aisel = 'X'&lt;/P&gt;&lt;P&gt;            with x_norm = 'X'&lt;/P&gt;&lt;P&gt;            with dd_bukrs-low = so_bukrs-low                "#EC *&lt;/P&gt;&lt;P&gt;            and return.&lt;/P&gt;&lt;P&gt;    clear : it_pos[], it_pos .&lt;/P&gt;&lt;P&gt;    import it_pos from memory id 'zit_pos'.&lt;/P&gt;&lt;P&gt;    free memory id 'zit_pos'.&lt;/P&gt;&lt;P&gt;    delete it_pos where blart &amp;lt;&amp;gt; 'DZ'.&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;Here Plz Clear all the varible to avoid overlap&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    clear : w_open_bal,w_du_start_date,w_du_end_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select belnr bukrs gjahr into corresponding fields of table it_bkpf&lt;/P&gt;&lt;P&gt;    from bkpf  for all entries in it_pos where belnr = it_pos-belnr and gjahr = it_pos-gjahr&lt;/P&gt;&lt;P&gt; and bukrs = it_pos-bukrs and xreversal = ' '.&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;    loop at it_pos.&lt;/P&gt;&lt;P&gt;      clear it_bkpf.&lt;/P&gt;&lt;P&gt;      read table it_bkpf with key bukrs = it_pos-bukrs belnr = it_pos-belnr gjahr = it_pos-gjahr.&lt;/P&gt;&lt;P&gt;      if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;        append it_pos to it_check.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    it_pos[] = it_check[].&lt;/P&gt;&lt;P&gt;***opening bal&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;since runtime error is coming while summing the alternate way is being used ... done by jayakumar on 11 10 06&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   LOOP AT it_pos .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     SUM .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     w_open_bal = it_pos-dmshb .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     EXIT .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   ENDLOOP .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at it_pos .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   read table it_cust3 with key belnr = it_pos-belnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_pos-dmshb = it_cust3-wrbtr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      w_open_bal = w_open_bal + it_pos-dmshb .&lt;/P&gt;&lt;P&gt;    endloop .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if w_open_bal &amp;lt; 0 .&lt;/P&gt;&lt;P&gt;      w_open_bal = w_open_bal * -1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    w_total_bf = w_total_bf + w_open_bal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write :20 'Progressive Total B/F -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;BLOCKQUOTE level="1"&gt;&lt;P&gt;' ,106 w_total_bf.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;  skip 1 .&lt;/P&gt;&lt;P&gt;endform.                    "f001_progressive_total&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f002_item_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f002_item_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not it_bp[] is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select * into corresponding fields of table it_kna1 from kna1&lt;/P&gt;&lt;P&gt;                          for all entries in it_bp&lt;/P&gt;&lt;P&gt;                          where kunnr = it_bp-kunnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    export so_fkdat to memory id 'DATE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    export it_bp to memory id 'IT_BP'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : so_fkdat, it_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    submit  z_rfitemar1&lt;/P&gt;&lt;P&gt;            with x_aisel = 'X'&lt;/P&gt;&lt;P&gt;            with x_norm = 'X'&lt;/P&gt;&lt;P&gt;            with dd_bukrs-low = so_bukrs-low                "#EC *&lt;/P&gt;&lt;P&gt;            and return.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DELETE it_pos WHERE u_xreversal &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    clear : it_pos[], it_pos .&lt;/P&gt;&lt;P&gt;    import it_pos from memory id 'zit_pos'.&lt;/P&gt;&lt;P&gt;    free memory id 'zit_pos'.&lt;/P&gt;&lt;P&gt;    delete it_pos where blart &amp;lt;&amp;gt; 'DZ'.&lt;/P&gt;&lt;P&gt;    sort it_pos by belnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND LINES OF it_pos TO it_pos1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DELETE ADJACENT DUPLICATES FROM it_pos COMPARING belnr." commented by sarang&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : it_cust[], it_cust.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if not it_pos[] is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      select belnr wrbtr xref1 kunnr bschl  &lt;/P&gt;&lt;P&gt;      into corresponding fields of table it_cust &lt;/P&gt;&lt;P&gt;      from bseg&lt;/P&gt;&lt;P&gt;      for all entries in it_pos&lt;/P&gt;&lt;P&gt;      where belnr = it_pos-belnr&lt;/P&gt;&lt;P&gt;      and bukrs = it_pos-bukrs&lt;/P&gt;&lt;P&gt;      and gjahr = it_pos-gjahr&lt;/P&gt;&lt;P&gt;      and bschl in ('15','40') .  &lt;/P&gt;&lt;P&gt;     it_cust2[] = it_cust[].&lt;/P&gt;&lt;P&gt;      delete it_cust where bschl ne 15.&lt;/P&gt;&lt;P&gt;      delete it_cust2 where bschl ne 40.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      sort it_pos by konto.&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;      write : 20 '**&lt;STRONG&gt;No Transaction to Display&lt;/STRONG&gt;**'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DELETE it_pos WHERE u_xreversal = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    tables bkpf.&lt;/P&gt;&lt;P&gt;    loop at it_pos.&lt;/P&gt;&lt;P&gt;      select single  * from bkpf where belnr = it_pos-belnr and bukrs = it_pos-bukrs and gjahr = it_pos-gjahr and xreversal = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        append it_pos to it_pos_bc1.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    clear it_pos.&lt;/P&gt;&lt;P&gt;    it_pos[] = it_pos_bc1[].&lt;/P&gt;&lt;P&gt;    sort it_pos by konto belnr xref3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at it_pos.&lt;/P&gt;&lt;P&gt;      read table it_cust2 with key belnr = it_pos-belnr.&lt;/P&gt;&lt;P&gt;      on change of it_pos-konto or "IT_CUST2-xref1 or&lt;/P&gt;&lt;P&gt;      it_pos-belnr.&lt;/P&gt;&lt;P&gt;        it_pos_bc[] = it_pos[].&lt;/P&gt;&lt;P&gt;        delete it_pos_bc[] where konto ne it_pos-konto.&lt;/P&gt;&lt;P&gt;        delete it_pos_bc[] where belnr ne it_pos-belnr.&lt;/P&gt;&lt;P&gt;        loop at it_pos_bc.&lt;/P&gt;&lt;P&gt;          sum.&lt;/P&gt;&lt;P&gt;          exit.&lt;/P&gt;&lt;P&gt;        endloop.&lt;/P&gt;&lt;P&gt;        append it_pos_bc to it_pos_nc.&lt;/P&gt;&lt;P&gt;      endon.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    free it_pos.&lt;/P&gt;&lt;P&gt;    it_pos[] = it_pos_nc[].&lt;/P&gt;&lt;P&gt;    data : w_amt1 type bseg-dmbtr,&lt;/P&gt;&lt;P&gt;          w_amt2 type bseg-dmbtr.&lt;/P&gt;&lt;P&gt;    clear : w_amt1 , w_amt2.&lt;/P&gt;&lt;P&gt;    sort it_pos by budat belnr konto.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data : w_ch(5) type c,&lt;/P&gt;&lt;P&gt;           w_i type i.&lt;/P&gt;&lt;P&gt;    w_i = 0.&lt;/P&gt;&lt;P&gt;    loop at it_pos where shkzg = 'H' .&lt;/P&gt;&lt;P&gt;      clear w_text.&lt;/P&gt;&lt;P&gt;      w_i = w_i + 1 .&lt;/P&gt;&lt;P&gt;      w_ch = w_i.&lt;/P&gt;&lt;P&gt;      read table it_cust with key belnr = it_pos-belnr  kunnr = it_pos-konto.&lt;/P&gt;&lt;P&gt;      read table it_kna1 with key kunnr = it_pos-konto .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CONCATENATE it_kna1-name1 INTO w_text.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      w_text = it_kna1-name1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CONDENSE w_text NO-GAPS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      write : / w_ch left-justified  , 07 it_pos-budat ,20 it_pos-belnr(10) ,31 it_pos-konto(10),42 w_text(60).&lt;/P&gt;&lt;P&gt;      read table it_cust2 with key belnr = it_pos-belnr.&lt;/P&gt;&lt;P&gt;      if it_cust2-xref1 = 'Cash Payment' or it_cust2-xref1 = 'Cash'.&lt;/P&gt;&lt;P&gt;        if it_pos-dmshb &amp;lt; 0 .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         it_pos-dmshb = it_pos-dmshb * -1 .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          it_pos-dmshb = it_cust2-wrbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        else.                              "+PM28072006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         it_pos-dmshb = it_pos-dmshb * -1 . "+PM28072006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          it_pos-dmshb = it_cust2-wrbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        write : 72 it_pos-dmshb.&lt;/P&gt;&lt;P&gt;        w_amt1 = w_amt1 + it_pos-dmshb.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        if it_pos-dmshb &amp;lt; 0 .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         it_pos-dmshb = it_pos-dmshb * -1 .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;           it_pos-dmshb = it_cust2-wrbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        else.                            "+PM28072006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         it_pos-dmshb = it_pos-dmshb * -1."+PM28072006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          it_pos-dmshb = it_cust2-wrbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        write : 87  it_pos-dmshb.&lt;/P&gt;&lt;P&gt;        w_amt2 = w_amt2 + it_pos-dmshb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      endif .&lt;/P&gt;&lt;P&gt;    endloop .&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    write : 20 '**&lt;STRONG&gt;No Transaction to Display&lt;/STRONG&gt;**'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear : it_cust1[] ,w_pos .&lt;/P&gt;&lt;P&gt;  it_cust1[] = it_cust[] .&lt;/P&gt;&lt;P&gt;  sort it_cust1 by wrbtr.&lt;/P&gt;&lt;P&gt;  delete it_cust1 where xref1 &amp;lt;&amp;gt; 'Cash Payment' .&lt;/P&gt;&lt;P&gt;  delete it_cust1 where xref1 &amp;lt;&amp;gt; 'Cash' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_cust1.&lt;/P&gt;&lt;P&gt;    sum .&lt;/P&gt;&lt;P&gt;    w_pos = it_cust1-wrbtr .&lt;/P&gt;&lt;P&gt;    exit .&lt;/P&gt;&lt;P&gt;  endloop .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear :it_cust1[],w_neg .&lt;/P&gt;&lt;P&gt;  it_cust1[] = it_cust[] .&lt;/P&gt;&lt;P&gt;  sort it_cust1 by wrbtr.&lt;/P&gt;&lt;P&gt;  delete it_cust1 where xref1 = 'Cash Payment' .&lt;/P&gt;&lt;P&gt;  delete it_cust1 where xref1 = 'Cash' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_cust1.&lt;/P&gt;&lt;P&gt;    sum .&lt;/P&gt;&lt;P&gt;    w_neg = it_cust1-wrbtr .&lt;/P&gt;&lt;P&gt;    exit .&lt;/P&gt;&lt;P&gt;  endloop .&lt;/P&gt;&lt;P&gt;  if w_pos &amp;lt; 0.&lt;/P&gt;&lt;P&gt;    w_pos = w_pos * -1 .&lt;/P&gt;&lt;P&gt;  else.                 "+PM28072006&lt;/P&gt;&lt;P&gt;    w_pos = w_pos * -1. "+PM28072006&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  if w_neg &amp;lt; 0.&lt;/P&gt;&lt;P&gt;    w_neg = w_neg * -1 .&lt;/P&gt;&lt;P&gt;  else.                 "+PM28072006&lt;/P&gt;&lt;P&gt;    w_neg = w_neg * -1. "+PM28072006&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  write sy-uline(125) .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write : /20 'Total Collection Amount -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;&amp;gt;'.&lt;/P&gt;&lt;P&gt;  write : 76 w_amt1 ,91 w_amt2.&lt;/P&gt;&lt;P&gt;  w_sub_tot = w_amt1 + w_amt2.&lt;/P&gt;&lt;P&gt;  if w_sub_tot &amp;lt; 0.&lt;/P&gt;&lt;P&gt;    w_sub_tot = w_sub_tot * -1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  write : 106 w_sub_tot.&lt;/P&gt;&lt;P&gt;  if pr_1 = 'X'.&lt;/P&gt;&lt;P&gt;    w_total_co = w_total_bf + w_sub_tot.&lt;/P&gt;&lt;P&gt;    if w_total_co &amp;lt; 0.&lt;/P&gt;&lt;P&gt;      w_total_co = w_total_co * -1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    write : /20 'Progressive Total C/O -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;&amp;gt;'.&lt;/P&gt;&lt;P&gt;    write : 106 w_total_co.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  write sy-uline(125) .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "f002_item_data&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      E N D       O F   S E L E C T I O N                           *&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;      At line selection                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*AT LINE-SELECTION.&lt;/P&gt;&lt;P&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;      User Command Processing                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*AT USER-COMMAND.&lt;/P&gt;&lt;P&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;      Top Of Page                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;top-of-page.&lt;/P&gt;&lt;P&gt;  select single * from t001 where bukrs = so_bukrs-low .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select single * from adrc where addrnumber = t001-adrnr . "EC *&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write : /05  t001-butxt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONCATENATE adrc-house_num1 '-' adrc-street INTO w_text1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONCATENATE adrc-city1 '-' adrc-post_code1 INTO w_text2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE : /05  w_text1 .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE : /05  w_text2 .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  write : /05  'Sales Organisation:', so_kunrg-low.&lt;/P&gt;&lt;P&gt;  write : /05  'Sales Office:', so_vkbur-low.&lt;/P&gt;&lt;P&gt;  skip 1.&lt;/P&gt;&lt;P&gt;  if pr_3 = 'X'.&lt;/P&gt;&lt;P&gt;    write : /05 'Agent Circulation Collection Statement From ' , so_fkdat-low , ' to ' ,so_fkdat-high .&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    write : /05 'Advertisement  Collection Statement From ' , so_fkdat-low , ' to ' ,so_fkdat-high .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if pr_3 = 'X'.&lt;/P&gt;&lt;P&gt;    write  &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; sy-uline(125) .&lt;/P&gt;&lt;P&gt;    write :/07 'Date' ,20 'Doc No',31 'Code' ,42 'Agent Name &amp;amp; Place',84 'BY CASH' ,97 'BY CHQ/DD' ,115 'Prog. Total'.&lt;/P&gt;&lt;P&gt;    write  &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; sy-uline(125) .&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;   write  &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; sy-uline(125) .&lt;/P&gt;&lt;P&gt;   write :/07 'Date' ,20 'Doc No',31 'Code' ,42 'Advertisers Name' ,  84 'BY CASH' ,97 'BY CHQ/DD' ,115 'Prog. Total'.&lt;/P&gt;&lt;P&gt;   write  &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; sy-uline(125) .&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;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      End Of Page                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;END-OF-PAGE.&lt;/STRONG&gt;END-OF-PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 20 Feb 2007 11:14:12 GMT</pubDate>
    <dc:creator>selvi1</dc:creator>
    <dc:date>2007-02-20T11:14:12Z</dc:date>
    <item>
      <title>problem with subroutine- need urgrnt help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-subroutine-need-urgrnt-help/m-p/1920336#M382395</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hai all,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;need help in subroutine.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in a report program,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i had calculated to get the total collection amount and need to generate a list for every day.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;on next day that collection amount must come as a poeninig balance at the top of the list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this i had done using two subroutines.&lt;/P&gt;&lt;P&gt;i have to call the subroutine for opening balance for previous day's collection  first.  after that in have to calculate the todays collection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how can i have this please give me a suggession.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is my report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i want the 'Progressive Total C/O ' from subroutine form f002_item_data. of today to be come in &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;'Progressive Total B/F -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;BLOCKQUOTE level="1"&gt;&lt;P&gt;' ,106 w_total_bf.  of  the  subroutine form f001_progressive_total on next day..&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;here is the code.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZVR023_COLL_STATEMENT                                       *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report  zvr023_coll_statement           no standard page heading        .&lt;/P&gt;&lt;P&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. MSD                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      Objective :                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Program   : Updates Tables (   )    Downloads data (  )       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                  Outputs List   ( X  )                             *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Date Created                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Author                                                *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Location                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      LDB                .....                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      External Dependencies                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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; Amendment History                                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;Who        Change ID    Reason                                      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯                                     *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;XXXXXXXXX  AADDMMYYYY Where XXXX = Developers Name................. *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           AA- Developers Initial ................................  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;      Includes                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*INCLUDE   :                                                           *&lt;/P&gt;&lt;P&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                                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;tables   : vbak,bsid,kna1,t001,adrc,vbrk,knvv.&lt;/P&gt;&lt;P&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;      Types                    Begin with TY_                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;types : begin of ty_cust,&lt;/P&gt;&lt;P&gt;        belnr type bseg-belnr,&lt;/P&gt;&lt;P&gt;        wrbtr type bseg-wrbtr,&lt;/P&gt;&lt;P&gt;        xref1 type bseg-xref1,&lt;/P&gt;&lt;P&gt;        kunnr type kna1-kunnr, " sarang&lt;/P&gt;&lt;P&gt;        bschl type bseg-bschl,&lt;/P&gt;&lt;P&gt;        hkont type bseg-hkont,&lt;/P&gt;&lt;P&gt;        end of ty_cust.&lt;/P&gt;&lt;P&gt;types : begin of ty_bp,&lt;/P&gt;&lt;P&gt;        kunnr type vbak-kunnr,&lt;/P&gt;&lt;P&gt;        bukrs type bseg-bukrs,&lt;/P&gt;&lt;P&gt;        budat type bkpf-budat,&lt;/P&gt;&lt;P&gt;        end of ty_bp.&lt;/P&gt;&lt;P&gt;types : begin of ty_kna1,&lt;/P&gt;&lt;P&gt;        kunnr type kna1-kunnr,&lt;/P&gt;&lt;P&gt;        name1 type kna1-name1,&lt;/P&gt;&lt;P&gt;        ort01 type kna1-ort01,&lt;/P&gt;&lt;P&gt;        end of ty_kna1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types   : begin of ty_lst,&lt;/P&gt;&lt;P&gt;          vbeln      type vbrk-vbeln,                          " INVOICE NO&lt;/P&gt;&lt;P&gt;          fkart      type vbrk-fkart,&lt;/P&gt;&lt;P&gt;          posnr      type vbrp-posnr ,&lt;/P&gt;&lt;P&gt;          fkimg      type vbrp-fkimg ,                         " qty&lt;/P&gt;&lt;P&gt;          fkdat      type vbrk-fkdat,                          " date&lt;/P&gt;&lt;P&gt;          vkorg      type vbrk-vkorg,                          " sales org&lt;/P&gt;&lt;P&gt;          vtweg      type vbrk-vtweg,                          " division&lt;/P&gt;&lt;P&gt;          spart      type vbrk-spart,                          " distribution&lt;/P&gt;&lt;P&gt;          knumv      type vbrk-knumv,                          " Number of the document condition&lt;/P&gt;&lt;P&gt;          matnr      type vbrp-matnr ,&lt;/P&gt;&lt;P&gt;          med_prod   type jptmg0-med_prod,&lt;/P&gt;&lt;P&gt;          kunrg      type vbrk-kunrg,&lt;/P&gt;&lt;P&gt;          kwert      type konv-kwert,&lt;/P&gt;&lt;P&gt;          kbetr      type konv-kbetr,&lt;/P&gt;&lt;P&gt;          netwr      type vbrk-netwr,&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Address Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         KUNRG type vbrk-KUNRG,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          name1      type kna1-name1,&lt;/P&gt;&lt;P&gt;          stras      type kna1-stras,&lt;/P&gt;&lt;P&gt;          pstlz      type kna1-pstlz,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;***Added For Billing&lt;/P&gt;&lt;P&gt;         bukrs       type vbrk-bukrs,                          " Company code&lt;/P&gt;&lt;P&gt;         xblnr       type vbrk-xblnr,                          " Bill Ref&lt;/P&gt;&lt;P&gt;***************&lt;/P&gt;&lt;P&gt;         ismpublication type mara-ismpublication,&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Condition Type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;         kschl_zj01  type konv-kschl,&lt;/P&gt;&lt;P&gt;         kschl_zdis  type konv-kschl,&lt;/P&gt;&lt;P&gt;         kschl_znet  type konv-kschl,&lt;/P&gt;&lt;P&gt;         kwert_zj01  type konv-kawrt,                          " Base Condition&lt;/P&gt;&lt;P&gt;         kwert_zdis  type konv-kawrt,&lt;/P&gt;&lt;P&gt;         kwert_znet  type konv-kawrt,&lt;/P&gt;&lt;P&gt;         adrnr  type kna1-adrnr,&lt;/P&gt;&lt;P&gt;****&lt;/P&gt;&lt;P&gt;         end of ty_lst.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types   : begin of ty_lst1,&lt;/P&gt;&lt;P&gt;          vbeln      type vbrk-vbeln,                          " INVOICE NO&lt;/P&gt;&lt;P&gt;          fkart      type vbrk-fkart,&lt;/P&gt;&lt;P&gt;          fkdat      type vbrk-fkdat,                          " date&lt;/P&gt;&lt;P&gt;          fkimg      type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          kunrg      type vbrk-kunrg,                          " Payer&lt;/P&gt;&lt;P&gt;          fkimg_1    type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          fkimg_2    type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          fkimg_3    type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          fkimg_4    type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          fkimg_5    type vbrp-fkimg,                          " qty&lt;/P&gt;&lt;P&gt;          matnr      type vbrp-matnr,&lt;/P&gt;&lt;P&gt;          med_prod   type jptmg0-med_prod,&lt;/P&gt;&lt;P&gt;          kwert      type konv-kwert,&lt;/P&gt;&lt;P&gt;          kbetr      type konv-kbetr,&lt;/P&gt;&lt;P&gt;          netwr      type vbrk-netwr,&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;Address Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        KUNRG      type vbrk-KUNRG,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          name1      type kna1-name1,&lt;/P&gt;&lt;P&gt;          stras      type kna1-stras,&lt;/P&gt;&lt;P&gt;          pstlz      type kna1-pstlz,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;***Added For Billing&lt;/P&gt;&lt;P&gt;         bukrs type vbrk-bukrs ,&lt;/P&gt;&lt;P&gt;         xblnr type vbrk-xblnr,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&gt;         ismpublication type mara-ismpublication,&lt;/P&gt;&lt;P&gt;****SPLIT FOR RATE&lt;/P&gt;&lt;P&gt;         kbetr_1   type   konv-kbetr,&lt;/P&gt;&lt;P&gt;         kbetr_2   type   konv-kbetr,&lt;/P&gt;&lt;P&gt;         kbetr_3   type   konv-kbetr,&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Condition Type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;         kschl_zj01 type konv-kschl,&lt;/P&gt;&lt;P&gt;         kschl_zdis type konv-kschl,&lt;/P&gt;&lt;P&gt;         kschl_znet type konv-kschl,&lt;/P&gt;&lt;P&gt;         kwert_zj01 type konv-kawrt,                          " Base Condition&lt;/P&gt;&lt;P&gt;         kwert_zdis type konv-kawrt,&lt;/P&gt;&lt;P&gt;         kwert_znet type konv-kawrt,&lt;/P&gt;&lt;P&gt;****&lt;/P&gt;&lt;P&gt;         end of ty_lst1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types   : begin of ty_condition,&lt;/P&gt;&lt;P&gt;          kschl type konv-kschl,                                " Condition Type&lt;/P&gt;&lt;P&gt;          kwert type konv-kwert,                                " Condition Value&lt;/P&gt;&lt;P&gt;          knumv type konv-knumv,                                " Document Condi&lt;/P&gt;&lt;P&gt;          kposn type konv-kposn,&lt;/P&gt;&lt;P&gt;          kbetr type konv-kbetr,                                " Condition Rate&lt;/P&gt;&lt;P&gt;          end of ty_condition.&lt;/P&gt;&lt;P&gt;types : begin of ty_bkpf ,&lt;/P&gt;&lt;P&gt;belnr type bkpf-belnr,&lt;/P&gt;&lt;P&gt;gjahr type bkpf-gjahr,&lt;/P&gt;&lt;P&gt;bukrs type bkpf-bukrs,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end of ty_bkpf.&lt;/P&gt;&lt;P&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;      Constants                Begin with C_                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*CONSTANTS:                                                            *&lt;/P&gt;&lt;P&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;      Data                     Begin with W_                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;data     : w_cnt type i .&lt;/P&gt;&lt;P&gt;*DATA     : W_DMBTR  TYPE BSID-DMBTR.   " Open Value&lt;/P&gt;&lt;P&gt;*DATA     : W_KWERT TYPE  VBRP-FKIMG.   " Invoice Value&lt;/P&gt;&lt;P&gt;*DATA     : W_QTY_CON TYPE  VBRP-FKIMG.   " QTY&lt;/P&gt;&lt;P&gt;*DATA     : W_TO_QTY_CON TYPE  VBRP-FKIMG.   " QTY&lt;/P&gt;&lt;P&gt;*DATA     : W_DIFF TYPE  BSID-DMBTR.   " W_DIFF Bt Open &amp;amp; Invoice&lt;/P&gt;&lt;P&gt;*DATA     : W_DMBTR_CR  TYPE BSID-DMBTR.   " Cr Value&lt;/P&gt;&lt;P&gt;*DATA     : W_DMBTR_DR  TYPE BSID-DMBTR.   " Dr Value&lt;/P&gt;&lt;P&gt;*DATA     : W_DMBTR_TO  TYPE BSID-DMBTR.   " Total Value&lt;/P&gt;&lt;P&gt;*DATA :     W_KDGRP(2) .&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_IS TYPE I.&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_IS1 TYPE I.&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_IS2 TYPE I.&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_FIRST TYPE I.&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_ITAB TYPE I.&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_FIRST1(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DATA  :    W_CNT_TAB(62),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          W_CNT_TAB_HEA(62),&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*data:           W_CNT_POS TYPE I.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="6" type="ul"&gt;&lt;P&gt;Variable for balance window&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;P&gt;data : w_open_bal type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_total_bf type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_sub_tot  type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_total_co type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_bill_bal type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_drn_bal type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_othr_chr type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_total_bal type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_coll_bal type dmshb_x8,&lt;/P&gt;&lt;P&gt;       w_unsd_cr  type  dmshb_x8, "Unsold Credit&lt;/P&gt;&lt;P&gt;       w_inceve  type  dmshb_x8, "Incentive&lt;/P&gt;&lt;P&gt;       w_cr_nt   type  dmshb_x8. "Cr Note&lt;/P&gt;&lt;P&gt;data     : w_pos  type bseg-wrbtr.   " Total Value&lt;/P&gt;&lt;P&gt;data     : w_neg  type bseg-wrbtr.   " Total Value&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : w_du_start_date like sy-datum,&lt;/P&gt;&lt;P&gt;       w_du_end_date like sy-datum .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**vARIABLE DEFINED FOR CONSOLIDATED WINDOW&lt;/P&gt;&lt;P&gt;data    : w_prod_cnt type i .&lt;/P&gt;&lt;P&gt;data    : w_prod_ch(2)  .&lt;/P&gt;&lt;P&gt;data    : w_prod_rate type i .&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;P&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;      Infotypes                   ( HR Module Specific)             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*INFOTYPES :                                                           *&lt;/P&gt;&lt;P&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          Begin with IT_                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;data : it_bp type table of ty_bp with header line,&lt;/P&gt;&lt;P&gt;       it_bp1 type table of ty_bp with header line,&lt;/P&gt;&lt;P&gt;       it_bp2 type table of ty_bp with header line,&lt;/P&gt;&lt;P&gt;       it_bp3 type table of ty_bp with header line,&lt;/P&gt;&lt;P&gt;       it_kna1 type table of ty_kna1 with header line,&lt;/P&gt;&lt;P&gt;       it_cust type table of ty_cust with header line,&lt;/P&gt;&lt;P&gt;       it_cust1 type table of ty_cust with header line,&lt;/P&gt;&lt;P&gt;       it_bkpf type table of ty_bkpf with header line,&lt;/P&gt;&lt;P&gt;       it_cust2 type table of ty_cust with header line,&lt;/P&gt;&lt;P&gt;       it_cust3 type table of ty_cust with header line.&lt;/P&gt;&lt;P&gt;data : it_pos like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt; it_check like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt; it_pos_bc1 like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt; it_pos_bc like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt; it_pos_nc like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt;       it_pos1 like rfposxext occurs 1 with header line,&lt;/P&gt;&lt;P&gt;       it_sec like rfposxext occurs 1 with header line.&lt;/P&gt;&lt;P&gt;data : it_bal like rfposxext occurs 1 with header line.&lt;/P&gt;&lt;P&gt;data : w_text(100) type c.&lt;/P&gt;&lt;P&gt;data : w_cnt1(3).&lt;/P&gt;&lt;P&gt;data : l_date like mara-ismpublperiod .&lt;/P&gt;&lt;P&gt;data : p_date1 like  jkpaz-jkpavon.&lt;/P&gt;&lt;P&gt;data : l_day_c(2).&lt;/P&gt;&lt;P&gt;data : l_month_c(2).&lt;/P&gt;&lt;P&gt;data : l_base_yr_c(4).&lt;/P&gt;&lt;P&gt;data : w_text1(100) type c.&lt;/P&gt;&lt;P&gt;data : w_text2(100) type c.&lt;/P&gt;&lt;P&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;      Field Symbols            Begin with FS_                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*FIELD-SYMBOLS:                                                        *&lt;/P&gt;&lt;P&gt;field-symbols:  type ty_condition.&lt;/P&gt;&lt;P&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;      Insert                                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*INSERT   :                                                            *&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Select Options          Begin with SO_                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;selection-screen skip 1.&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  :  so_bukrs for vbrk-bukrs no intervals no-extension obligatory  .&lt;/P&gt;&lt;P&gt;select-options  :  so_kunrg for vbrk-vkorg no intervals no-extension obligatory,&lt;/P&gt;&lt;P&gt;                   so_vkbur for knvv-vkbur no intervals no-extension ,&lt;/P&gt;&lt;P&gt;                   so_fkdat for bsid-budat  no-extension obligatory ,&lt;/P&gt;&lt;P&gt;                   so_bdat1 for bsid-budat  no-display ,&lt;/P&gt;&lt;P&gt;                   so_bdat3 for bsid-budat  no-display ,&lt;/P&gt;&lt;P&gt;                   so_kunnr for kna1-kunnr no-display.&lt;/P&gt;&lt;P&gt;selection-screen:  end of block b1.&lt;/P&gt;&lt;P&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;      Parameters              Begin with PR_                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*PARAMETERS     :                                                      *&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;selection-screen begin of block b3 with frame title text-003.&lt;/P&gt;&lt;P&gt;parameters pr_3 radiobutton group rad1.&lt;/P&gt;&lt;P&gt;parameters pr_4 radiobutton group rad1.&lt;/P&gt;&lt;P&gt;selection-screen end of block b3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of block b2 with frame title text-002.&lt;/P&gt;&lt;P&gt;parameters pr_1 radiobutton group rad.&lt;/P&gt;&lt;P&gt;parameters pr_2 radiobutton group rad.&lt;/P&gt;&lt;P&gt;selection-screen end of block b2.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*INITIALISATION   :&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      At selection-screen                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&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;      S T A R T   O F   S E L E C T I O N                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if pr_3 is not initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Code commented/added by Praveen on 20.07.2006&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT kunnr INTO CORRESPONDING FIELDS OF TABLE it_bp1 FROM knvv&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   WHERE vkorg IN so_kunrg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     AND kunnr GE '0004000000'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     AND kunnr LE '0004999999'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select kunnr into corresponding fields of table it_bp1 from knvv&lt;/P&gt;&lt;P&gt;                                    where vkorg in so_kunrg&lt;/P&gt;&lt;P&gt;                                      and aufsd &amp;lt;&amp;gt; '01'&lt;/P&gt;&lt;P&gt;                                      and kunnr ge '0004000000'&lt;/P&gt;&lt;P&gt;                                      and kunnr le '0004999999' .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                     PLTYP ne 'HB'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ends here&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if pr_4 is not initial.&lt;/P&gt;&lt;P&gt;    clear so_kunnr[].&lt;/P&gt;&lt;P&gt;    clear so_kunnr.&lt;/P&gt;&lt;P&gt;    so_kunnr-sign = 'I'.&lt;/P&gt;&lt;P&gt;    so_kunnr-option = 'BT'.&lt;/P&gt;&lt;P&gt;    so_kunnr-low =  '0001000000'.&lt;/P&gt;&lt;P&gt;    so_kunnr-high = '0001999999'.&lt;/P&gt;&lt;P&gt;    append so_kunnr.&lt;/P&gt;&lt;P&gt;    so_kunnr-sign = 'I'.&lt;/P&gt;&lt;P&gt;    so_kunnr-option = 'BT'.&lt;/P&gt;&lt;P&gt;    so_kunnr-low =  '0002000000'.&lt;/P&gt;&lt;P&gt;    so_kunnr-high = '0002999999'.&lt;/P&gt;&lt;P&gt;    append so_kunnr.&lt;/P&gt;&lt;P&gt;    so_kunnr-sign = 'I'.&lt;/P&gt;&lt;P&gt;    so_kunnr-option = 'BT'.&lt;/P&gt;&lt;P&gt;    so_kunnr-low =  '0007000000'.&lt;/P&gt;&lt;P&gt;    so_kunnr-high = '0007999999'.&lt;/P&gt;&lt;P&gt;    append so_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Code commented/added by Praveen on 20.07.2006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select kunnr into corresponding fields of table it_bp1 from knvv&lt;/P&gt;&lt;P&gt;                                    where vkorg in so_kunrg and&lt;/P&gt;&lt;P&gt;                                        kunnr in so_kunnr and&lt;/P&gt;&lt;P&gt;                                        vkbur in so_vkbur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   AND kunnr GE '0001000000'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   AND kunnr LE '0001999999'   .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select kunnr into corresponding fields of table it_bp1 from knvv&lt;/P&gt;&lt;P&gt;                                       where vkorg in so_kunrg and&lt;/P&gt;&lt;P&gt;                                           aufsd &amp;lt;&amp;gt; '01' and&lt;/P&gt;&lt;P&gt;                                           kunnr in so_kunnr and&lt;/P&gt;&lt;P&gt;                                           vkbur in so_vkbur.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   AND kunnr GE '0001000000'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   AND kunnr LE '0001999999'   .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ends here&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if pr_1 = 'X'.&lt;/P&gt;&lt;P&gt;    perform cust_prog.&lt;/P&gt;&lt;P&gt;    perform cust_line.&lt;/P&gt;&lt;P&gt;    perform f001_progressive_total.&lt;/P&gt;&lt;P&gt;    perform f002_item_data.&lt;/P&gt;&lt;P&gt;  elseif pr_2 = 'X'.&lt;/P&gt;&lt;P&gt;    perform cust_line.&lt;/P&gt;&lt;P&gt;    perform f002_item_data.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  cust_prog&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form cust_prog.&lt;/P&gt;&lt;P&gt;  clear it_bp3[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_date1 = so_fkdat-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'Z_VF053_DATE_GET_YEAR_MONTH'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_date  = p_date1&lt;/P&gt;&lt;P&gt;    importing&lt;/P&gt;&lt;P&gt;      e_dd    = l_day_c&lt;/P&gt;&lt;P&gt;      e_month = l_month_c&lt;/P&gt;&lt;P&gt;      e_year  = l_base_yr_c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ranges so_bdat2 for bsid-budat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear : so_bdat3[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if l_day_c &amp;gt; 01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_day_c = '01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    concatenate   l_base_yr_c l_month_c l_day_c     into l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    so_bdat2-low = l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    so_bdat2-high = so_fkdat-low - 1.&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;    so_bdat2-low = '00000000'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    so_bdat2-high = '00000000'.&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;  so_bdat2-sign = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  so_bdat2-option = 'BT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  append so_bdat2 to so_bdat3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select kunnr bukrs budat into corresponding fields of table it_bp3 from bsid&lt;/P&gt;&lt;P&gt;                                     for all entries in it_bp1&lt;/P&gt;&lt;P&gt;                                     where bukrs in so_bukrs&lt;/P&gt;&lt;P&gt;                                       and kunnr = it_bp1-kunnr&lt;/P&gt;&lt;P&gt;                                       and budat in so_bdat3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select kunnr bukrs budat &lt;/P&gt;&lt;P&gt;appending corresponding fields of table it_bp3 &lt;/P&gt;&lt;P&gt;from bsad&lt;/P&gt;&lt;P&gt;for all entries in it_bp1 &lt;/P&gt;&lt;P&gt;where bukrs in so_bukrs&lt;/P&gt;&lt;P&gt;and kunnr = it_bp1-kunnr&lt;/P&gt;&lt;P&gt;and budat in so_bdat3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort it_bp3 by kunnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  delete adjacent duplicates from it_bp3 comparing kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort it_bp3 by kunnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear w_total_bf.&lt;/P&gt;&lt;P&gt;endform.                    "cust_prog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  cust_line&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form cust_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear it_bp[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select kunnr bukrs budat &lt;/P&gt;&lt;P&gt;  into corresponding fields of table it_bp &lt;/P&gt;&lt;P&gt;  from bsid&lt;/P&gt;&lt;P&gt;  for all entries in it_bp1&lt;/P&gt;&lt;P&gt;  where bukrs in so_bukrs&lt;/P&gt;&lt;P&gt;  and kunnr = it_bp1-kunnr&lt;/P&gt;&lt;P&gt;  and budat in so_fkdat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select kunnr bukrs budat &lt;/P&gt;&lt;P&gt;  appending corresponding fields of table it_bp &lt;/P&gt;&lt;P&gt;  from bsad&lt;/P&gt;&lt;P&gt;  for all entries in it_bp1&lt;/P&gt;&lt;P&gt;  where bukrs in so_bukrs&lt;/P&gt;&lt;P&gt;  and kunnr = it_bp1-kunnr&lt;/P&gt;&lt;P&gt;  And budat in so_fkdat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort it_bp by kunnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  delete adjacent duplicates from it_bp comparing kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort it_bp by kunnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "cust_line&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f001_progressive_total&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f001_progressive_total.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not it_bp3[] is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : w_text ,w_cnt,p_date1,l_base_yr_c, l_month_c,l_day_c,l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   w_cnt1 = sy-tabix .&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;   CONCATENATE w_cnt1 '  Feaching Data  '  INTO w_text.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       text = w_text.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ranges so_bdat2 for bsid-bldat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : so_bdat1[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    p_date1 = so_fkdat-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    call function 'Z_VF053_DATE_GET_YEAR_MONTH'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;P&gt;        i_date  = p_date1&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;        e_dd    = l_day_c&lt;/P&gt;&lt;P&gt;        e_month = l_month_c&lt;/P&gt;&lt;P&gt;        e_year  = l_base_yr_c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if l_day_c &amp;gt; 01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      l_day_c = '01'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      concatenate   l_base_yr_c l_month_c l_day_c     into l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      so_bdat2-low = l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      so_bdat2-high = so_fkdat-low - 1.&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;      l_day_c = so_fkdat-low.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      so_bdat2-low = l_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      so_bdat2-high = '00000000'.&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;    so_bdat2-sign = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    so_bdat2-option = 'BT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append so_bdat2 to so_bdat1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    export so_bdat1 to memory id 'DATE1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    export it_bp3 to memory id 'IT_BP3'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : so_bdat1, it_bp3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    submit  z_rfitemar1&lt;/P&gt;&lt;P&gt;            with x_aisel = 'X'&lt;/P&gt;&lt;P&gt;            with x_norm = 'X'&lt;/P&gt;&lt;P&gt;            with dd_bukrs-low = so_bukrs-low                "#EC *&lt;/P&gt;&lt;P&gt;            and return.&lt;/P&gt;&lt;P&gt;    clear : it_pos[], it_pos .&lt;/P&gt;&lt;P&gt;    import it_pos from memory id 'zit_pos'.&lt;/P&gt;&lt;P&gt;    free memory id 'zit_pos'.&lt;/P&gt;&lt;P&gt;    delete it_pos where blart &amp;lt;&amp;gt; 'DZ'.&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;Here Plz Clear all the varible to avoid overlap&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    clear : w_open_bal,w_du_start_date,w_du_end_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select belnr bukrs gjahr into corresponding fields of table it_bkpf&lt;/P&gt;&lt;P&gt;    from bkpf  for all entries in it_pos where belnr = it_pos-belnr and gjahr = it_pos-gjahr&lt;/P&gt;&lt;P&gt; and bukrs = it_pos-bukrs and xreversal = ' '.&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;    loop at it_pos.&lt;/P&gt;&lt;P&gt;      clear it_bkpf.&lt;/P&gt;&lt;P&gt;      read table it_bkpf with key bukrs = it_pos-bukrs belnr = it_pos-belnr gjahr = it_pos-gjahr.&lt;/P&gt;&lt;P&gt;      if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;        append it_pos to it_check.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    it_pos[] = it_check[].&lt;/P&gt;&lt;P&gt;***opening bal&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;since runtime error is coming while summing the alternate way is being used ... done by jayakumar on 11 10 06&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   LOOP AT it_pos .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     SUM .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     w_open_bal = it_pos-dmshb .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;     EXIT .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   ENDLOOP .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at it_pos .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   read table it_cust3 with key belnr = it_pos-belnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   it_pos-dmshb = it_cust3-wrbtr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      w_open_bal = w_open_bal + it_pos-dmshb .&lt;/P&gt;&lt;P&gt;    endloop .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if w_open_bal &amp;lt; 0 .&lt;/P&gt;&lt;P&gt;      w_open_bal = w_open_bal * -1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    w_total_bf = w_total_bf + w_open_bal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write :20 'Progressive Total B/F -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;BLOCKQUOTE level="1"&gt;&lt;P&gt;' ,106 w_total_bf.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;  skip 1 .&lt;/P&gt;&lt;P&gt;endform.                    "f001_progressive_total&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f002_item_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form f002_item_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not it_bp[] is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select * into corresponding fields of table it_kna1 from kna1&lt;/P&gt;&lt;P&gt;                          for all entries in it_bp&lt;/P&gt;&lt;P&gt;                          where kunnr = it_bp-kunnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    export so_fkdat to memory id 'DATE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    export it_bp to memory id 'IT_BP'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : so_fkdat, it_bp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    submit  z_rfitemar1&lt;/P&gt;&lt;P&gt;            with x_aisel = 'X'&lt;/P&gt;&lt;P&gt;            with x_norm = 'X'&lt;/P&gt;&lt;P&gt;            with dd_bukrs-low = so_bukrs-low                "#EC *&lt;/P&gt;&lt;P&gt;            and return.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DELETE it_pos WHERE u_xreversal &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    clear : it_pos[], it_pos .&lt;/P&gt;&lt;P&gt;    import it_pos from memory id 'zit_pos'.&lt;/P&gt;&lt;P&gt;    free memory id 'zit_pos'.&lt;/P&gt;&lt;P&gt;    delete it_pos where blart &amp;lt;&amp;gt; 'DZ'.&lt;/P&gt;&lt;P&gt;    sort it_pos by belnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND LINES OF it_pos TO it_pos1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DELETE ADJACENT DUPLICATES FROM it_pos COMPARING belnr." commented by sarang&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear : it_cust[], it_cust.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if not it_pos[] is initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      select belnr wrbtr xref1 kunnr bschl  &lt;/P&gt;&lt;P&gt;      into corresponding fields of table it_cust &lt;/P&gt;&lt;P&gt;      from bseg&lt;/P&gt;&lt;P&gt;      for all entries in it_pos&lt;/P&gt;&lt;P&gt;      where belnr = it_pos-belnr&lt;/P&gt;&lt;P&gt;      and bukrs = it_pos-bukrs&lt;/P&gt;&lt;P&gt;      and gjahr = it_pos-gjahr&lt;/P&gt;&lt;P&gt;      and bschl in ('15','40') .  &lt;/P&gt;&lt;P&gt;     it_cust2[] = it_cust[].&lt;/P&gt;&lt;P&gt;      delete it_cust where bschl ne 15.&lt;/P&gt;&lt;P&gt;      delete it_cust2 where bschl ne 40.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      sort it_pos by konto.&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;      write : 20 '**&lt;STRONG&gt;No Transaction to Display&lt;/STRONG&gt;**'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DELETE it_pos WHERE u_xreversal = 'X'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    tables bkpf.&lt;/P&gt;&lt;P&gt;    loop at it_pos.&lt;/P&gt;&lt;P&gt;      select single  * from bkpf where belnr = it_pos-belnr and bukrs = it_pos-bukrs and gjahr = it_pos-gjahr and xreversal = ' '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        append it_pos to it_pos_bc1.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    clear it_pos.&lt;/P&gt;&lt;P&gt;    it_pos[] = it_pos_bc1[].&lt;/P&gt;&lt;P&gt;    sort it_pos by konto belnr xref3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    loop at it_pos.&lt;/P&gt;&lt;P&gt;      read table it_cust2 with key belnr = it_pos-belnr.&lt;/P&gt;&lt;P&gt;      on change of it_pos-konto or "IT_CUST2-xref1 or&lt;/P&gt;&lt;P&gt;      it_pos-belnr.&lt;/P&gt;&lt;P&gt;        it_pos_bc[] = it_pos[].&lt;/P&gt;&lt;P&gt;        delete it_pos_bc[] where konto ne it_pos-konto.&lt;/P&gt;&lt;P&gt;        delete it_pos_bc[] where belnr ne it_pos-belnr.&lt;/P&gt;&lt;P&gt;        loop at it_pos_bc.&lt;/P&gt;&lt;P&gt;          sum.&lt;/P&gt;&lt;P&gt;          exit.&lt;/P&gt;&lt;P&gt;        endloop.&lt;/P&gt;&lt;P&gt;        append it_pos_bc to it_pos_nc.&lt;/P&gt;&lt;P&gt;      endon.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    free it_pos.&lt;/P&gt;&lt;P&gt;    it_pos[] = it_pos_nc[].&lt;/P&gt;&lt;P&gt;    data : w_amt1 type bseg-dmbtr,&lt;/P&gt;&lt;P&gt;          w_amt2 type bseg-dmbtr.&lt;/P&gt;&lt;P&gt;    clear : w_amt1 , w_amt2.&lt;/P&gt;&lt;P&gt;    sort it_pos by budat belnr konto.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    data : w_ch(5) type c,&lt;/P&gt;&lt;P&gt;           w_i type i.&lt;/P&gt;&lt;P&gt;    w_i = 0.&lt;/P&gt;&lt;P&gt;    loop at it_pos where shkzg = 'H' .&lt;/P&gt;&lt;P&gt;      clear w_text.&lt;/P&gt;&lt;P&gt;      w_i = w_i + 1 .&lt;/P&gt;&lt;P&gt;      w_ch = w_i.&lt;/P&gt;&lt;P&gt;      read table it_cust with key belnr = it_pos-belnr  kunnr = it_pos-konto.&lt;/P&gt;&lt;P&gt;      read table it_kna1 with key kunnr = it_pos-konto .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CONCATENATE it_kna1-name1 INTO w_text.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      w_text = it_kna1-name1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CONDENSE w_text NO-GAPS.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      write : / w_ch left-justified  , 07 it_pos-budat ,20 it_pos-belnr(10) ,31 it_pos-konto(10),42 w_text(60).&lt;/P&gt;&lt;P&gt;      read table it_cust2 with key belnr = it_pos-belnr.&lt;/P&gt;&lt;P&gt;      if it_cust2-xref1 = 'Cash Payment' or it_cust2-xref1 = 'Cash'.&lt;/P&gt;&lt;P&gt;        if it_pos-dmshb &amp;lt; 0 .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         it_pos-dmshb = it_pos-dmshb * -1 .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          it_pos-dmshb = it_cust2-wrbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        else.                              "+PM28072006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         it_pos-dmshb = it_pos-dmshb * -1 . "+PM28072006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          it_pos-dmshb = it_cust2-wrbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        write : 72 it_pos-dmshb.&lt;/P&gt;&lt;P&gt;        w_amt1 = w_amt1 + it_pos-dmshb.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        if it_pos-dmshb &amp;lt; 0 .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         it_pos-dmshb = it_pos-dmshb * -1 .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;           it_pos-dmshb = it_cust2-wrbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        else.                            "+PM28072006&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         it_pos-dmshb = it_pos-dmshb * -1."+PM28072006&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          it_pos-dmshb = it_cust2-wrbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        write : 87  it_pos-dmshb.&lt;/P&gt;&lt;P&gt;        w_amt2 = w_amt2 + it_pos-dmshb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      endif .&lt;/P&gt;&lt;P&gt;    endloop .&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    write : 20 '**&lt;STRONG&gt;No Transaction to Display&lt;/STRONG&gt;**'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear : it_cust1[] ,w_pos .&lt;/P&gt;&lt;P&gt;  it_cust1[] = it_cust[] .&lt;/P&gt;&lt;P&gt;  sort it_cust1 by wrbtr.&lt;/P&gt;&lt;P&gt;  delete it_cust1 where xref1 &amp;lt;&amp;gt; 'Cash Payment' .&lt;/P&gt;&lt;P&gt;  delete it_cust1 where xref1 &amp;lt;&amp;gt; 'Cash' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_cust1.&lt;/P&gt;&lt;P&gt;    sum .&lt;/P&gt;&lt;P&gt;    w_pos = it_cust1-wrbtr .&lt;/P&gt;&lt;P&gt;    exit .&lt;/P&gt;&lt;P&gt;  endloop .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear :it_cust1[],w_neg .&lt;/P&gt;&lt;P&gt;  it_cust1[] = it_cust[] .&lt;/P&gt;&lt;P&gt;  sort it_cust1 by wrbtr.&lt;/P&gt;&lt;P&gt;  delete it_cust1 where xref1 = 'Cash Payment' .&lt;/P&gt;&lt;P&gt;  delete it_cust1 where xref1 = 'Cash' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at it_cust1.&lt;/P&gt;&lt;P&gt;    sum .&lt;/P&gt;&lt;P&gt;    w_neg = it_cust1-wrbtr .&lt;/P&gt;&lt;P&gt;    exit .&lt;/P&gt;&lt;P&gt;  endloop .&lt;/P&gt;&lt;P&gt;  if w_pos &amp;lt; 0.&lt;/P&gt;&lt;P&gt;    w_pos = w_pos * -1 .&lt;/P&gt;&lt;P&gt;  else.                 "+PM28072006&lt;/P&gt;&lt;P&gt;    w_pos = w_pos * -1. "+PM28072006&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  if w_neg &amp;lt; 0.&lt;/P&gt;&lt;P&gt;    w_neg = w_neg * -1 .&lt;/P&gt;&lt;P&gt;  else.                 "+PM28072006&lt;/P&gt;&lt;P&gt;    w_neg = w_neg * -1. "+PM28072006&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  write sy-uline(125) .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write : /20 'Total Collection Amount -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;&amp;gt;'.&lt;/P&gt;&lt;P&gt;  write : 76 w_amt1 ,91 w_amt2.&lt;/P&gt;&lt;P&gt;  w_sub_tot = w_amt1 + w_amt2.&lt;/P&gt;&lt;P&gt;  if w_sub_tot &amp;lt; 0.&lt;/P&gt;&lt;P&gt;    w_sub_tot = w_sub_tot * -1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  write : 106 w_sub_tot.&lt;/P&gt;&lt;P&gt;  if pr_1 = 'X'.&lt;/P&gt;&lt;P&gt;    w_total_co = w_total_bf + w_sub_tot.&lt;/P&gt;&lt;P&gt;    if w_total_co &amp;lt; 0.&lt;/P&gt;&lt;P&gt;      w_total_co = w_total_co * -1.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    write : /20 'Progressive Total C/O -&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---" /&gt;&lt;P&gt;&amp;gt;'.&lt;/P&gt;&lt;P&gt;    write : 106 w_total_co.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  write sy-uline(125) .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "f002_item_data&lt;/P&gt;&lt;P&gt;***&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDIF .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      E N D       O F   S E L E C T I O N                           *&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;      At line selection                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*AT LINE-SELECTION.&lt;/P&gt;&lt;P&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;      User Command Processing                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*AT USER-COMMAND.&lt;/P&gt;&lt;P&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;      Top Of Page                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;top-of-page.&lt;/P&gt;&lt;P&gt;  select single * from t001 where bukrs = so_bukrs-low .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select single * from adrc where addrnumber = t001-adrnr . "EC *&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write : /05  t001-butxt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONCATENATE adrc-house_num1 '-' adrc-street INTO w_text1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CONCATENATE adrc-city1 '-' adrc-post_code1 INTO w_text2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE : /05  w_text1 .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; WRITE : /05  w_text2 .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  write : /05  'Sales Organisation:', so_kunrg-low.&lt;/P&gt;&lt;P&gt;  write : /05  'Sales Office:', so_vkbur-low.&lt;/P&gt;&lt;P&gt;  skip 1.&lt;/P&gt;&lt;P&gt;  if pr_3 = 'X'.&lt;/P&gt;&lt;P&gt;    write : /05 'Agent Circulation Collection Statement From ' , so_fkdat-low , ' to ' ,so_fkdat-high .&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    write : /05 'Advertisement  Collection Statement From ' , so_fkdat-low , ' to ' ,so_fkdat-high .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if pr_3 = 'X'.&lt;/P&gt;&lt;P&gt;    write  &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; sy-uline(125) .&lt;/P&gt;&lt;P&gt;    write :/07 'Date' ,20 'Doc No',31 'Code' ,42 'Agent Name &amp;amp; Place',84 'BY CASH' ,97 'BY CHQ/DD' ,115 'Prog. Total'.&lt;/P&gt;&lt;P&gt;    write  &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; sy-uline(125) .&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;   write  &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; sy-uline(125) .&lt;/P&gt;&lt;P&gt;   write :/07 'Date' ,20 'Doc No',31 'Code' ,42 'Advertisers Name' ,  84 'BY CASH' ,97 'BY CHQ/DD' ,115 'Prog. Total'.&lt;/P&gt;&lt;P&gt;   write  &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; sy-uline(125) .&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;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      End Of Page                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;END-OF-PAGE.&lt;/STRONG&gt;END-OF-PAGE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Feb 2007 11:14:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-subroutine-need-urgrnt-help/m-p/1920336#M382395</guid>
      <dc:creator>selvi1</dc:creator>
      <dc:date>2007-02-20T11:14:12Z</dc:date>
    </item>
    <item>
      <title>Re: problem with subroutine- need urgrnt help</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-subroutine-need-urgrnt-help/m-p/1920337#M382396</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Selvi&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no need to use two subroutine. Actually, this would be bad programming. Instead use a switch for your subroutine which determines whether the calculation should be done for the actual and the previous day, e.g.:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;PERFORM do_calculation
                                 USING 'X'          " 'X' = calculate for previous day as well
                                 USING p_date   " current date
                          CHANGING gt_list.   " itab with list data&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And that's how the subroutine could look like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;FORM do_calculation
                         USING VALUE(ud_calculate_previous_day)  TYPE c
                                    VALUE(ud_date)                             TYPE d
                  CHANGING ct_list    TYPE &amp;lt;table type&amp;gt;.
* define local data
  DATA:
     ld_date_prev  TYPE d,
     lt_list_prev     TYPE &amp;lt;table type&amp;gt;.  " list for previous day

* Do the calculations for the current day
...

  IF ( ud_calculate_previous_day = 'X' ).
    ld_date_prev = ud_date - 1.
    PERFORM do_calculation
                                     USING ' '  " ' ' = no calculation for previous day
                                                ld_date_prev
                              CHANGING lt_list_prev.   " itab with list data
  ENDIF.

* Post-processing after calculation for both days
...
ENDFORM.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Feb 2007 11:24:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-subroutine-need-urgrnt-help/m-p/1920337#M382396</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-02-20T11:24:51Z</dc:date>
    </item>
  </channel>
</rss>

