Please help---give me the logic(very-2 urgent)

Hi Experts,,
i am struck in a very difficult situation.
actually its a ageing report,the problem is that when i run this report for a single customer it shows the correct output.
but when i run it for a range suppose for 0610000021 to 0610000024 it starts showing me the the wrong report although i have debugged it and found the problem that instead of picking data for a single customer at a time it picks for all customer in the loop.but i was not able to find out to exit it wen it it encounters a different customer and starts the outer loop again with different customer.please help as this has made my life hell..........plz help. i am attaching the code where the problem is please suggest.......
loop at ctab into wa_ctab. (for customer)
loop at itab_bb where shkzg <> 'C' and augdt > key_date and budat <= key_date and kunnr = wa_ctab-kunnr.
if itab_bb-budat between cc AND d.
amount214 = amount214 + itab_bb-wrbtr + itab_bb-bbb.
endif.
if itab_bb-budat between a AND b.
amount216 = amount216 + itab_bb-wrbtr + itab_bb-bbb.
endif.
if itab_bb-budat between e AND f.
amount210 = amount210 + itab_bb-wrbtr + itab_bb-bbb.
endif.
if itab_bb-budat between g AND h.
amount218 = amount218 + itab_bb-wrbtr + itab_bb-bbb.
endif.
if itab_bb-budat  BETWEEN gg AND hh.
amount212 = amount212 + itab_bb-wrbtr + itab_bb-bbb.
endif.
if itab_bb-budat <= j.
amt212 = amt212 + itab_bb-wrbtr + itab_bb-bbb.
endif.
endloop.
(wen i use exit here it only run onece and shows the right data for the first customer encounter)
endloop.

attaching u the whole code please tell wht changes should i make
*& Report  ZAGING1
REPORT  zage  NO STANDARD PAGE HEADING LINE-SIZE 250.
TABLES : bseg, kna1 ,bsad, bsid, vbrk.
SELECT-OPTIONS: s_kunnr FOR kna1-kunnr OBLIGATORY.
PARAMETERS : key_date TYPE bldat OBLIGATORY.
PARAMETERS : ccode    TYPE bukrs OBLIGATORY.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(30) text-001 FOR FIELD int1.
SELECTION-SCREEN POSITION POS_LOW.
PARAMETERS: int1(3) TYPE n DEFAULT '030'.
PARAMETERS: int2(3) TYPE n DEFAULT '060'.
PARAMETERS: int3(3) TYPE n DEFAULT '090'.
PARAMETERS: int4(3) TYPE n DEFAULT '120'.
PARAMETERS: int5(3) TYPE n DEFAULT '150'.
SELECTION-SCREEN END OF LINE.
DATA : onacc LIKE bsid-wrbtr,
ind TYPE i.
TYPES: BEGIN OF cust,
        kunnr TYPE kna1-kunnr,
        adrnr TYPE kna1-adrnr,
        name1 TYPE kna1-name1,
        wrbtr TYPE bseg-wrbtr,
        bzirk TYPE knvv-bzirk,
        zterm TYPE knvv-zterm,
        ztag1 TYPE t052-ztag1,
       END OF cust.
data : amount208 like bsad-wrbtr.
TYPES: BEGIN OF invt,
        kunnr TYPE kna1-kunnr,
        kunrg TYPE kna1-kunnr,
        wrbtr TYPE bseg-wrbtr,
        invamt TYPE bseg-wrbtr,
        name1 TYPE kna1-name1,
        vbeln TYPE vbrk-vbeln,
        belnr TYPE bseg-belnr,
       END OF invt.
TYPES : BEGIN OF ytab,
          kunnr TYPE bsid-kunnr,
          wrbtr TYPE bsid-wrbtr,
          sinv_amt TYPE bsid-wrbtr,
          paid_amt TYPE bsid-wrbtr,
          adj_amt   TYPE bsid-wrbtr,
          cncl_amt TYPE bsid-wrbtr,
          baln_amt TYPE bsid-wrbtr,
          onac_amt TYPE bsid-wrbtr,
          ac_amt   TYPE bsid-wrbtr,
          age_amt TYPE bsid-wrbtr,
          wrbtr_rvh TYPE bsid-wrbtr,
          wrbtr_rvs TYPE bsid-wrbtr,
          wrbtr_obh TYPE bsid-wrbtr,
          wrbtr_obs TYPE bsid-wrbtr,
          wrbtr_dg TYPE bsid-wrbtr,
          wrbtr_dr TYPE bsid-wrbtr,
          wrbtr_dzs TYPE bsid-wrbtr,
          wrbtr_dzh TYPE bsid-wrbtr,
          wrbtr_sas TYPE bsid-wrbtr,
          wrbtr_sah TYPE bsid-wrbtr,
          wrbtr_abs TYPE bsid-wrbtr,
          wrbtr_abh TYPE bsid-wrbtr,
          wrbtr_DAs TYPE bsid-wrbtr,
          wrbtr_DAh TYPE bsid-wrbtr,
          UMSKZ TYPE BSID-UMSKZ,
          baln1 TYPE bsid-wrbtr,
          baln2 TYPE bsid-wrbtr,
          baln3 TYPE bsid-wrbtr,
          baln4 TYPE bsid-wrbtr,
          baln5 TYPE bsid-wrbtr,
          baln6 TYPE bsid-wrbtr,
          blart TYPE bsid-blart,
          vbeln TYPE bsid-vbeln,
          fkdat TYPE vbrk-fkdat,
          belnr TYPE bsid-belnr,
          rebzg TYPE bsid-rebzg,
          shkzg TYPE bsid-shkzg,
          zuonr TYPE bsid-zuonr,
          od_days(4) TYPE n,
        END OF ytab.
DATA :  aa(3) TYPE n,
        bb(3) TYPE n,
        dd(3) TYPE n,
        ee(3) TYPE n,
       ind TYPE i,
        it TYPE i.
TYPES : BEGIN OF ftab,
          kunnr TYPE bsid-kunnr,
          name1 TYPE kna1-name1,
         WRBTR TYPE BSID-WRBTR,
          sinv_amt TYPE bsid-wrbtr,
          paid_amt TYPE bsid-wrbtr,
          adj_amt   TYPE bsid-wrbtr,
          cncl_amt TYPE bsid-wrbtr,
          baln_amt TYPE bsid-wrbtr,
          ac_amt   TYPE bsid-wrbtr,
          onac_amt TYPE bsid-wrbtr,
          outs_amt TYPE bsid-wrbtr,
          age_amt TYPE bsid-wrbtr,
          wrbtr_rvh TYPE bsid-wrbtr,
          wrbtr_rvs TYPE bsid-wrbtr,
          wrbtr_obh TYPE bsid-wrbtr,
          wrbtr_obs TYPE bsid-wrbtr,
          wrbtr_dg TYPE bsid-wrbtr,
          wrbtr_dr TYPE bsid-wrbtr,
          wrbtr_dzs TYPE bsid-wrbtr,
          wrbtr_dzh TYPE bsid-wrbtr,
          wrbtr_sas TYPE bsid-wrbtr,
          wrbtr_sah TYPE bsid-wrbtr,
          wrbtr_abs TYPE bsid-wrbtr,
          wrbtr_abh TYPE bsid-wrbtr,
          wrbtr_DAs TYPE bsid-wrbtr,
          wrbtr_DAh TYPE bsid-wrbtr,
          UMSKZ TYPE BSID-UMSKZ,
          baln1 TYPE bsid-wrbtr,
          baln2 TYPE bsid-wrbtr,
          baln3 TYPE bsid-wrbtr,
          baln4 TYPE bsid-wrbtr,
          baln5 TYPE bsid-wrbtr,
          baln6 TYPE bsid-wrbtr,
          blart TYPE bsid-blart,
          vbeln TYPE bsid-vbeln,
          belnr TYPE bsid-belnr,
          rebzg TYPE bsid-rebzg,
          shkzg TYPE bsid-shkzg,
          bzirk TYPE knvv-bzirk,
          zterm TYPE knvv-zterm,
          ztag1 TYPE t052-ztag1,
          zuonr TYPE bsid-zuonr,
          od_days(4) TYPE n,
          sno(3) TYPE n,
        END OF ftab.
data : wrbtr_note like bsid-wrbtr.
        DATA : BEGIN OF itab1 OCCURS 0,
        hkont LIKE bsid-hkont,   " General Ledger Account
        kunnr LIKE bsid-kunnr,   " Customer Number 1
        dmbtr LIKE bsid-dmbtr,  " Amount
        shkzg LIKE bsid-shkzg,  " Debit/Credit Indication
        budat LIKE bsid-budat,  " Posting date
        kostl LIKE bsid-kostl,  " Cost center
        opnbl LIKE bsid-dmbtr,  " Opening Balance Amount
        clsbl LIKE bsid-dmbtr,  " Closing balnce Amount
        vbeln LIKE bsid-vbeln,
        blart LIKE bsid-blart,
        wrbtr LIKE bsid-wrbtr,
        bukrs LIKE bsid-bukrs,
        belnr LIKE bsid-belnr,
        xblnr LIKE bsid-xblnr,
        abc LIKE bsid-wrbtr,
        aaa LIKE bsid-wrbtr,
        sgtxt LIKE bsid-sgtxt,
        bcd LIKE bsid-wrbtr,
        bbb LIKE bsid-wrbtr,
        flag TYPE c,
        flag1(3) TYPE c,
        flag2(15) TYPE c,
        bldat like bsid-bldat,
        zuonr like bsid-zuonr,
        umskz like bsid-umskz,
        END OF itab1.
        DATA : BEGIN OF itab2 OCCURS 0,
        hkont LIKE bsid-hkont,   " General Ledger Account
        kunnr LIKE bsid-kunnr,   " Customer Number 1
       txt50 LIKE skat-txt50,  " GL A/C TEXT
        dmbtr LIKE bsid-dmbtr,  " Amount
        shkzg LIKE bsid-shkzg,  " Debit/Credit Indication
        budat LIKE bsid-budat,  " Posting date
        kostl LIKE bsid-kostl,  " Cost center
        opnbl LIKE bsid-dmbtr,  " Opening Balance Amount
        clsbl LIKE bsid-dmbtr,  " Closing balnce Amount
        vbeln LIKE bsid-vbeln,
        blart LIKE bsid-blart,
        wrbtr LIKE bsid-wrbtr,
        bukrs LIKE bsid-bukrs,
        belnr LIKE bsid-belnr,
        xblnr LIKE bsid-xblnr,
        sgtxt LIKE bsid-sgtxt,
        abc LIKE bsid-wrbtr,
        aaa LIKE bsid-wrbtr,
        bcd LIKE bsid-wrbtr,
        bbb LIKE bsid-wrbtr,
        flag TYPE c,
        flag1(3) TYPE c,
        flag2(15) TYPE c,
        bldat like bsid-bldat,
        GJAHR like bsid-GJAHR,
        zuonr like bsid-zuonr,
        umskz like bsid-umskz,
        END OF itab2.
DATA : BEGIN OF itab3 OCCURS 0,
        hkont LIKE bsid-hkont,   " General Ledger Account
        kunnr LIKE bsid-kunnr,   " Customer Number 1
        dmbtr LIKE bsid-dmbtr,  " Amount
        shkzg LIKE bsid-shkzg,  " Debit/Credit Indication
        budat LIKE bsid-budat,  " Posting date
        kostl LIKE bsid-kostl,  " Cost center
        opnbl LIKE bsid-dmbtr,  " Opening Balance Amount
        clsbl LIKE bsid-dmbtr,  " Closing balnce Amount
        vbeln LIKE bsid-vbeln,
        blart LIKE bsid-blart,
        wrbtr LIKE bsid-wrbtr,
        bukrs LIKE bsid-bukrs,
        belnr LIKE bsid-belnr,
        xblnr LIKE bsid-xblnr,
        abc LIKE bsid-wrbtr,
        aaa LIKE bsid-wrbtr,
        bcd LIKE bsid-wrbtr,
        bbb LIKE bsid-wrbtr,
        flag TYPE c,
        flag1(3) TYPE c,
        flag2(15) TYPE c,
        sgtxt LIKE bsid-sgtxt,
        bldat like bsid-bldat,
                zuonr like bsid-zuonr,
                umskz like bsid-umskz,
        END OF itab3.
DATA : BEGIN OF itab4 OCCURS 0,
        hkont LIKE bsid-hkont,   " General Ledger Account
        kunnr LIKE bsid-kunnr,   " Customer Number 1
       txt50 LIKE skat-txt50,  " GL A/C TEXT
        dmbtr LIKE bsid-dmbtr,  " Amount
        shkzg LIKE bsid-shkzg,  " Debit/Credit Indication
        budat LIKE bsid-budat,  " Posting date
        kostl LIKE bsid-kostl,  " Cost center
        opnbl LIKE bsid-dmbtr,  " Opening Balance Amount
        clsbl LIKE bsid-dmbtr,  " Closing balnce Amount
        vbeln LIKE bsid-vbeln,
        blart LIKE bsid-blart,
        wrbtr LIKE bsid-wrbtr,
        bukrs LIKE bsid-bukrs,
        belnr LIKE bsid-belnr,
        xblnr LIKE bsid-xblnr,
        aaa LIKE bsid-wrbtr,
        abc LIKE bsid-wrbtr,
        bbb LIKE bsid-wrbtr,
        bcd LIKE bsid-wrbtr,
        flag TYPE c,
        flag1(3) TYPE c,
        flag2(15) TYPE c,
        sgtxt LIKE bsid-sgtxt,
        bldat like bsid-bldat,
                zuonr like bsid-zuonr,
                umskz like bsid-umskz,
        END OF itab4.
DATA : BEGIN OF itab5 OCCURS 0,
        hkont LIKE bsid-hkont,   " General Ledger Account
        kunnr LIKE bsid-kunnr,   " Customer Number 1
       txt50 LIKE skat-txt50,  " GL A/C TEXT
        dmbtr LIKE bsid-dmbtr,  " Amount
        shkzg LIKE bsid-shkzg,  " Debit/Credit Indication
        budat LIKE bsid-budat,  " Posting date
        kostl LIKE bsid-kostl,  " Cost center
        opnbl LIKE bsid-dmbtr,  " Opening Balance Amount
        clsbl LIKE bsid-dmbtr,  " Closing balnce Amount
        vbeln LIKE bsid-vbeln,
        blart LIKE bsid-blart,
        wrbtr LIKE bsid-wrbtr,
        bukrs LIKE bsid-bukrs,
        belnr LIKE bsid-belnr,
        xblnr LIKE bsid-xblnr,
        abc LIKE bsid-wrbtr,
        aaa LIKE bsid-wrbtr,
        bcd LIKE bsid-wrbtr,
        bbb LIKE bsid-wrbtr,
        flag TYPE c,
        flag1(3) TYPE c,
        flag2(15) TYPE c,
        sgtxt LIKE bsid-sgtxt,
        bldat like bsid-bldat,
                zuonr like bsid-zuonr,
                umskz like bsid-umskz,
        END OF itab5.
data : amount207 like bsad-wrbtr,
        amount210 like bsad-wrbtr,
        amount212 like bsad-wrbtr,
        amount213 like bsad-wrbtr,
        amount214 like bsad-wrbtr,
        amount215 like bsad-wrbtr,
        amount216 like bsad-wrbtr,
        amount217 like bsad-wrbtr,
        amount218 like bsad-wrbtr,
        amt like bsad-wrbtr,
        amt1 like bsad-wrbtr,
        amt212 like bsad-wrbtr,
        amt213 like bsad-wrbtr,
        amount219 like bsad-wrbtr.
DATA : BEGIN OF itab6 OCCURS 0,
        hkont LIKE bsid-hkont,   " General Ledger Account
        kunnr LIKE bsid-kunnr,   " Customer Number 1
       txt50 LIKE skat-txt50,  " GL A/C TEXT
        dmbtr LIKE bsid-dmbtr,  " Amount
        shkzg LIKE bsid-shkzg,  " Debit/Credit Indication
        budat LIKE bsid-budat,  " Posting date
        kostl LIKE bsid-kostl,  " Cost center
        opnbl LIKE bsid-dmbtr,  " Opening Balance Amount
        clsbl LIKE bsid-dmbtr,  " Closing balnce Amount
        vbeln LIKE bsid-vbeln,
        blart LIKE bsid-blart,
        wrbtr LIKE bsid-wrbtr,
        bukrs LIKE bsid-bukrs,
        belnr LIKE bsid-belnr,
        xblnr LIKE bsid-xblnr,
        sgtxt LIKE bsid-sgtxt,
        bldat like bsid-bldat,
        umskz like bsid-umskz,
        abc LIKE bsid-wrbtr,
        aaa LIKE bsid-wrbtr,
        bcd LIKE bsid-wrbtr,
        bbb LIKE bsid-wrbtr,
        flag TYPE c,
        flag1(3) TYPE c,
        flag2(15) TYPE c,
        xzahl like bsid-xzahl,
        rebzg like bsid-rebzg,
zuonr like bsid-zuonr,
        END OF itab6.
data : dr_deduct like bsid-wrbtr.
DATA : a TYPE sy-datum,
       b TYPE sy-datum,
       cc TYPE sy-datum,
       d TYPE sy-datum,
       e TYPE sy-datum,
       f TYPE sy-datum,
       g TYPE sy-datum,
       h TYPE sy-datum,
       i TYPE sy-datum,
       gg TYPE sy-datum,
       hh TYPE sy-datum,
       j TYPE sy-datum.
DATA : BEGIN OF itab7 OCCURS 0,
        hkont LIKE bsid-hkont,   " General Ledger Account
        kunnr LIKE bsid-kunnr,   " Customer Number 1
       txt50 LIKE skat-txt50,  " GL A/C TEXT
        dmbtr LIKE bsid-dmbtr,  " Amount
        shkzg LIKE bsid-shkzg,  " Debit/Credit Indication
        budat LIKE bsid-budat,  " Posting date
        kostl LIKE bsid-kostl,  " Cost center
        opnbl LIKE bsid-dmbtr,  " Opening Balance Amount
        clsbl LIKE bsid-dmbtr,  " Closing balnce Amount
        vbeln LIKE bsid-vbeln,
        blart LIKE bsid-blart,
        wrbtr LIKE bsid-wrbtr,
        bukrs LIKE bsid-bukrs,
        belnr LIKE bsid-belnr,
        xblnr LIKE bsid-xblnr,
        sgtxt LIKE bsid-sgtxt,
        bldat like bsid-bldat,
        umskz like bsid-umskz,
        END OF itab7.
DATA : BEGIN OF itab8 OCCURS 0,
        hkont LIKE bsid-hkont,   " General Ledger Account
        kunnr LIKE bsid-kunnr,   " Customer Number 1
       txt50 LIKE skat-txt50,  " GL A/C TEXT
        dmbtr LIKE bsid-dmbtr,  " Amount
        shkzg LIKE bsid-shkzg,  " Debit/Credit Indication
        budat LIKE bsid-budat,  " Posting date
        kostl LIKE bsid-kostl,  " Cost center
        opnbl LIKE bsid-dmbtr,  " Opening Balance Amount
        clsbl LIKE bsid-dmbtr,  " Closing balnce Amount
        vbeln LIKE bsid-vbeln,
        blart LIKE bsid-blart,
        wrbtr LIKE bsid-wrbtr,
        bukrs LIKE bsid-bukrs,
        belnr LIKE bsid-belnr,
        xblnr LIKE bsid-xblnr,
        abc LIKE bsid-wrbtr,
        aaa LIKE bsid-wrbtr,
        bcd LIKE bsid-wrbtr,
        bbb LIKE bsid-wrbtr,
        flag TYPE c,
        flag1(3) TYPE c,
        flag2(15) TYPE c,
        sgtxt LIKE bsid-sgtxt,
        bldat like bsid-bldat,
        zuonr like bsid-zuonr,
        umskz like bsid-umskz,
        END OF itab8.
DATA : BEGIN OF itab_b OCCURS 0,
       bukrs like bsad-bukrs,
       kunnr like bsad-kunnr,
       wrbtr like bsad-wrbtr,
       belnr like bsad-belnr,
       AUGDT like bsad-AUGDT,
       AUGBL like bsad-AUGBL,
       budat like bsad-budat,
       shkzg like bsad-shkzg,
       blart like bsad-blart,
       vbeln like bsad-vbeln,
       bldat like bsad-bldat,
       abc LIKE bsad-wrbtr,
       aaa LIKE bsad-wrbtr,
       bcd LIKE bsad-wrbtr,
       bbb LIKE bsad-wrbtr,
       flag TYPE c,
       flag1(3) TYPE c,
       flag2(15) TYPE c,
       END OF itab_b.
DATA : BEGIN OF itab_bb OCCURS 0,
       bukrs like bsad-bukrs,
       kunnr like bsad-kunnr,
       wrbtr like bsad-wrbtr,
       belnr like bsad-belnr,
       AUGDT like bsad-AUGDT,
       AUGBL like bsad-AUGBL,
       budat like bsad-budat,
       shkzg like bsad-shkzg,
       blart like bsad-blart,
       vbeln like bsad-vbeln,
       bldat like bsad-bldat,
       abc LIKE bsad-wrbtr,
       aaa LIKE bsad-wrbtr,
       bcd LIKE bsad-wrbtr,
       bbb LIKE bsad-wrbtr,
       flag TYPE c,
       flag1(3) TYPE c,
       flag2(15) TYPE c,
       END OF itab_bb.
DATA : BEGIN OF itab_rv OCCURS 0,
       bukrs like bsid-bukrs,
       kunnr like bsid-kunnr,
       wrbtr like bsid-wrbtr,
       belnr like bsid-belnr,
       budat like bsid-budat,
       shkzg like bsid-shkzg,
       blart like bsid-blart,
       vbeln like bsid-vbeln,
       bldat like bsid-bldat,
       abc LIKE bsid-wrbtr,
       aaa LIKE bsid-wrbtr,
       bcd LIKE bsid-wrbtr,
       bbb LIKE bsid-wrbtr,
       flag TYPE c,
       flag1(3) TYPE c,
       flag2(15) TYPE c,
       END OF itab_rv.
DATA : BEGIN OF itab_da OCCURS 0,
       bukrs like bsid-bukrs,
       kunnr like bsid-kunnr,
       wrbtr like bsid-wrbtr,
       belnr like bsid-belnr,
       budat like bsid-budat,
       shkzg like bsid-shkzg,
       blart like bsid-blart,
       vbeln like bsid-vbeln,
       bldat like bsid-bldat,
       abc LIKE bsid-wrbtr,
       aaa LIKE bsid-wrbtr,
       bcd LIKE bsid-wrbtr,
       bbb LIKE bsid-wrbtr,
       flag TYPE c,
       flag1(3) TYPE c,
       flag2(15) TYPE c,
       END OF itab_da.
DATA : wa_ctab TYPE cust.
DATA : wa_btab TYPE invt.
DATA : wa_bsid type bsid.
DATA : wai_bsid TYPE ytab.
DATA : wac_bsid TYPE ytab.        " CREDIT - INVOICE
DATA : wad_bsid TYPE ytab.        " DEBIT  - PAYMENT
DATA : wao_bsid TYPE ytab.        " ON ACCOUNT
DATA : wa_itab  TYPE ftab.
DATA : ctab TYPE cust OCCURS 0.
DATA : btab TYPE invt OCCURS 0.
DATA : it_bsid type bsid OCCURS 0.
DATA : iti_bsid TYPE ytab OCCURS 0.        " CANCELLED INVOICES
DATA : itc_bsid TYPE ytab OCCURS 0.        " CREDIT - INVOICE
DATA : itd_bsid TYPE ytab OCCURS 0.        " DEBIT  - PAYMENT
DATA : ito_bsid TYPE ytab OCCURS 0.        " ON ACCOUNT
DATA : itab     TYPE ftab OCCURS 0 with header line.        " OUTPUT
DATA : inv_amt LIKE bseg-wrbtr.
DATA : paid_amt LIKE bseg-wrbtr.
DATA : cncl_amt LIKE bseg-wrbtr.
DATA : adj_amt LIKE bseg-wrbtr.
DATA : billing_date LIKE sy-datum.
DATA : overdue_date LIKE sy-datum.
DATA : overdue_days LIKE rfposx-verzn.
DATA : credit_days(4) TYPE n.
DATA : int1s(3) TYPE n VALUE 0,
       int1e(3) TYPE n VALUE 0,
       int2s(3) TYPE n VALUE 0,
       int2e(3) TYPE n VALUE 0,
       int3s(3) TYPE n VALUE 0,
       int3e(3) TYPE n VALUE 0,
       int4s(3) TYPE n VALUE 0,
       int4e(3) TYPE n VALUE 0,
       int5s(3) TYPE n VALUE 0,
       int5e(3) TYPE n VALUE 0,
       int TYPE i,
       slno(5)  TYPE n VALUE 0.
CLEAR : INV_AMT, CTAB, BTAB, WA_ITAB, WAC_BSID, WAD_BSID, WAO_BSID, itab_bb , amount210 , amount212 ,amount214 , amount216 , amount218.
REFRESH : CTAB, BTAB,ITAB, ITC_BSID, ITD_BSID, ITO_BSID , itab_bb .
START-OF-SELECTION.
cc = key_date - int1.
d = key_date.
aa = int1 + 1.
a = key_date - int2.
b = cc - 1.
bb = int2 + 1.
e = key_date - int3.
f = a - 1.
dd = int3 + 1.
g = key_date - int4.
h = e - 1.
dd = int4 + 1.
gg = key_date - int5.
hh = g - 1.
ee = int5 + 1.
j = key_date - ee.
SELECT KUNNR NAME1 ADRNR FROM KNA1 INTO CORRESPONDING FIELDS OF WA_CTAB WHERE KUNNR IN S_KUNNR.
  SELECT SINGLE BZIRK ZTERM FROM KNVV INTO (WA_CTAB-BZIRK, WA_CTAB-ZTERM) WHERE KUNNR = WA_CTAB-KUNNR.
  SELECT SINGLE ZTAG1 FROM T052 INTO WA_CTAB-ZTAG1 WHERE ZTERM = WA_CTAB-ZTERM.
APPEND WA_CTAB TO CTAB.
ENDSELECT.
hide wa_ctab.
select bukrs kunnr wrbtr belnr AUGDT AUGBL budat shkzg blart vbeln bldat from bsad into
corresponding fields of table itab_bb where kunnr in s_kunnr and augdt > key_date and budat <= key_date.
*if sy-subrc = 0.
*loop at itab_bb.
*write : / 'yes' , itab_bb-wrbtr , itab_bb-kunnr.
*endloop.
*else.
*write : / 'no'.
*endif.
loop at itab_bb.
     IF itab_bb-blart = 'RV'.
            itab_bb-flag2 = 'INVOICE'.
            MODIFY itab_bb.
      ELSEIF itab_bb-blart = 'DR'.
            itab_bb-flag2 = 'DR-NOTE'.
            MODIFY itab_bb.
      ELSEIF itab_bb-blart = 'OB'.
            itab_bb-flag2 = 'OPN-BAL'.
            MODIFY itab_bb.
      ELSEIF itab_bb-blart = 'DG'.
            itab_bb-flag2 = 'CR-NOTE'.
            MODIFY itab_bb.
      ELSEIF itab_bb-blart = 'DZ'.
            itab_bb-flag2 = 'RECEIPTS'.
            MODIFY itab_bb.
      ELSEIF itab_bb-blart = 'SA'.
            itab_bb-flag2 = 'JOURNAL'.
            MODIFY itab_bb.
      ELSEIF itab_bb-blart = 'DA'.
            itab_bb-flag2 = 'CREDIT'.
            MODIFY itab_bb.
      ELSEIF itab_bb-blart = 'AB'.
            itab_bb-flag2 = 'ADJUSTMENTS'.
            MODIFY itab_bb.
      ENDIF.
            IF itab_bb-shkzg = 'S'.
            itab_bb-shkzg = 'D'.
            MODIFY itab_bb.
            else.
            itab_bb-shkzg = 'C'.
            MODIFY itab_bb.
            ENDIF.
            endloop.
            loop at itab_bb.
            ind  = sy-tabix.
  IF itab_bb-vbeln IS NOT INITIAL.
SELECT   wrbtr FROM bsad INTO itab_bb-abc WHERE vbeln = itab_bb-vbeln and augdt > key_date and budat <= key_date and kunnr = itab_bb-kunnr.
itab_bb-aaa = itab_bb-aaa + itab_bb-abc.
ENDSELECT.
  ENDIF.
      IF itab_bb-vbeln IS NOT INITIAL.
SELECT   wrbtr FROM bsid INTO itab_bb-abc WHERE vbeln = itab_bb-vbeln  and budat <= key_date  and kunnr = itab_bb-kunnr and blart = 'DZ' .
itab_bb-aaa = itab_bb-aaa + itab_bb-abc.
ENDSELECT.
endif.
  IF itab_bb-vbeln IS NOT INITIAL.
SELECT SINGLE  wrbtr FROM bsad INTO itab_bb-bcd WHERE vbeln = itab_bb-vbeln and augdt > key_date and budat <= key_date and kunnr = itab_bb-kunnr.
itab_bb-bbb = itab_bb-bcd - itab_bb-aaa.
ENDIF.
   IF itab_bb-vbeln IS INITIAL.
SELECT SINGLE  wrbtr FROM bsad INTO itab_bb-bcd WHERE belnr = itab_bb-belnr and augdt > key_date and budat <= key_date and kunnr = itab_bb-kunnr.
itab_bb-bbb = itab_bb-bcd - itab_bb-aaa.
ENDIF.
MODIFY itab_bb INDEX ind.
endloop.
*loop at ctab into wa_ctab.
sort itab_bb by kunnr.
data xyz like kna1-kunnr.
loop at itab_bb where shkzg <> 'C' and augdt > key_date and budat <= key_date.
amt = amt + itab_bb-bbb.
endloop.
loop at itab_bb where shkzg = 'C'. " ON ACCOUNT
amount207 = amount207 + itab_bb-wrbtr.
endloop.
loop at ctab into wa_ctab.
loop at itab_bb where shkzg <> 'C' and augdt > key_date and budat <= key_date and kunnr = wa_ctab-kunnr.
if itab_bb-budat between cc AND d.
amount214 = amount214 + itab_bb-wrbtr + itab_bb-bbb.
endif.
if itab_bb-budat between a AND b.
amount216 = amount216 + itab_bb-wrbtr + itab_bb-bbb.
endif.
if itab_bb-budat between e AND f.
amount210 = amount210 + itab_bb-wrbtr + itab_bb-bbb.
endif.
if itab_bb-budat between g AND h.
amount218 = amount218 + itab_bb-wrbtr + itab_bb-bbb.
endif.
if itab_bb-budat  BETWEEN gg AND hh.
amount212 = amount212 + itab_bb-wrbtr + itab_bb-bbb.
endif.
if itab_bb-budat <= j.
amt212 = amt212 + itab_bb-wrbtr + itab_bb-bbb.
endif.
endloop.
endloop.
SELECT * FROM BSID INTO TABLE IT_BSID FOR ALL ENTRIES IN CTAB WHERE KUNNR = CTAB-KUNNR
                                                              AND   BuDAT =< KEY_DATE
                                                             AND   BUKRS = CCODE.
SORT IT_BSID BY KUNNR.
LOOP AT IT_BSID INTO WA_BSID.
  IF  WA_BSID-BLART = 'RV' AND WA_BSID-SHKZG = 'S' OR
      WA_BSID-BLART = 'OB' AND WA_BSID-SHKZG = 'S' or
      wa_bsid-blart = 'DR'.
      WAC_BSID-KUNNR = WA_BSID-KUNNR.
      WAC_BSID-BLART = WA_BSID-BLART.
      WAC_BSID-VBELN = WA_BSID-VBELN.
      WAC_BSID-BELNR = WA_BSID-BELNR.
      WAC_BSID-REBZG = WA_BSID-REBZG.
      WAC_BSID-WRBTR = WA_BSID-WRBTR.
      WAC_BSID-ZUONR = WA_BSID-ZUONR.
      WAC_BSID-SHKZG = WA_BSID-SHKZG.
*write : / WAC_BSID-WRBTR , wac_bsid-blart ,WAC_BSID-VBELN.
      IF WAC_BSID-VBELN IS NOT INITIAL.
         SELECT SINGLE FKDAT FROM VBRK INTO WAC_BSID-FKDAT WHERE VBELN = WAC_BSID-VBELN.
      ELSEIF WAC_BSID-VBELN IS INITIAL.
        IF WAC_BSID-BELNR IS NOT INITIAL.
         SELECT SINGLE BuDAT FROM BSID INTO WAC_BSID-FKDAT WHERE BELNR = WAC_BSID-BELNR.
        ENDIF.
      ENDIF.
   WAC_BSID = WA_BSID.
    APPEND WAC_BSID TO ITC_BSID.
ELSEIF  WA_BSID-BLART = 'DZ' AND WA_BSID-VBELN <> ' '.
  ELSEIF  WA_BSID-BLART = 'DZ' .
   WAD_BSID = WA_BSID.
    WAD_BSID-KUNNR = WA_BSID-KUNNR.
    WAD_BSID-BLART = WA_BSID-BLART.
    WAD_BSID-VBELN = WA_BSID-VBELN.
    WAD_BSID-BELNR = WA_BSID-BELNR.
    WAD_BSID-REBZG = WA_BSID-REBZG.
    WAD_BSID-WRBTR = WA_BSID-WRBTR.
    WAD_BSID-ZUONR = WA_BSID-ZUONR.
    WAD_BSID-SHKZG = WA_BSID-SHKZG.
    APPEND WAD_BSID TO ITD_BSID.
  ELSEIF  WA_BSID-BLART = 'RV' AND WA_BSID-SHKZG = 'H' AND WA_BSID-ZUONR <> ' '.
    WAI_BSID-KUNNR = WA_BSID-KUNNR.
    WAI_BSID-BLART = WA_BSID-BLART.
    WAI_BSID-VBELN = WA_BSID-VBELN.
    WAI_BSID-BELNR = WA_BSID-BELNR.
    WAI_BSID-REBZG = WA_BSID-REBZG.
    WAI_BSID-WRBTR = WA_BSID-WRBTR.
    WAI_BSID-ZUONR = WA_BSID-ZUONR.
    WAI_BSID-SHKZG = WA_BSID-SHKZG.
   write : / 'rv-h ' , WAI_BSID-WRBTR.
    APPEND WAI_BSID TO ITI_BSID.
  ENDIF.
    MODIFY IT_BSID FROM WA_BSID.
ENDLOOP.
CLEAR : WAC_BSID.
LOOP AT ITC_BSID INTO WAC_BSID.
  CLEAR : WAD_BSID, INV_AMT, PAID_AMT, CNCL_AMT, ADJ_AMT.
  IF WAC_BSID-BLART = 'RV' AND WAC_BSID-SHKZG = 'S'.
      WAC_BSID-SINV_AMT = WAC_BSID-WRBTR.
      INV_AMT = WAC_BSID-SINV_AMT.
*WRITE : / WAC_BSID-SINV_AMT.
    READ TABLE ITD_BSID INTO WAD_BSID WITH KEY KUNNR = WAC_BSID-KUNNR VBELN = WAC_BSID-VBELN.
    LOOP AT ITD_BSID INTO WAD_BSID WHERE KUNNR = WAC_BSID-KUNNR AND VBELN = WAC_BSID-VBELN.
     IF SY-SUBRC = 0.
       WAC_BSID-PAID_AMT = WAD_BSID-WRBTR.
        PAID_AMT = PAID_AMT + WAD_BSID-WRBTR.
     ENDIF.
    WRITE : / PAID_AMT.
    ENDLOOP.
     IF PAID_AMT IS NOT INITIAL.
       WAC_BSID-BALN_AMT = WAC_BSID-SINV_AMT - WAC_BSID-PAID_AMT.
        WAC_BSID-PAID_AMT = PAID_AMT.
        WAC_BSID-BALN_AMT = WAC_BSID-SINV_AMT - PAID_AMT.
        WAC_BSID-AGE_AMT  = WAC_BSID-BALN_AMT.
     ELSE.
        WAC_BSID-PAID_AMT = 0.
        WAC_BSID-BALN_AMT = WAC_BSID-SINV_AMT.
       WRITE : / WAC_BSID-BALN_AMT.
        WAC_BSID-AGE_AMT  = WAC_BSID-BALN_AMT.
     ENDIF.
    LOOP AT ITI_BSID INTO WAI_BSID WHERE KUNNR = WAC_BSID-KUNNR AND ZUONR = WAC_BSID-VBELN.
    IF SY-SUBRC = 0.
       WAC_BSID-PAID_AMT = WAD_BSID-WRBTR.
        CNCL_AMT = CNCL_AMT + WAI_BSID-WRBTR.
       write :/ 'cancelled' , cncl_amt.
    ENDIF.
    ENDLOOP.
     IF CNCL_AMT IS NOT INITIAL.
       WAC_BSID-BALN_AMT = WAC_BSID-SINV_AMT - WAC_BSID-PAID_AMT.
        WAC_BSID-CNCL_AMT = CNCL_AMT.
        WAC_BSID-BALN_AMT = WAC_BSID-BALN_AMT." - CNCL_AMT.
        WAC_BSID-AGE_AMT  = WAC_BSID-BALN_AMT.
     ELSE.
        WAC_BSID-BALN_AMT = WAC_BSID-BALN_AMT.
        WAC_BSID-AGE_AMT  = WAC_BSID-BALN_AMT.
     ENDIF.
  ELSEIF WAC_BSID-BLART = 'DR'.
      IF WAC_BSID-ZUONR <> ' '.
         LOOP AT ITD_BSID INTO WAD_BSID WHERE KUNNR = WAC_BSID-KUNNR AND VBELN = ' ' AND ZUONR = WAC_BSID-ZUONR.
           IF SY-SUBRC = 0.
              ADJ_AMT = ADJ_AMT + WAD_BSID-WRBTR.
           ENDIF.
         ENDLOOP.
         WAC_BSID-ADJ_AMT  = ADJ_AMT.
         WAC_BSID-BALN_AMT = WAC_BSID-WRBTR - ADJ_AMT.
         WAC_BSID-AGE_AMT  = WAC_BSID-BALN_AMT.
      ELSEIF WAC_BSID-ZUONR = ' '.
        WAC_BSID-BALN_AMT = WAC_BSID-WRBTR.
        WAC_BSID-AGE_AMT  = WAC_BSID-BALN_AMT.
      ENDIF.
  ELSEIF WAC_BSID-BLART = 'OB' AND WAC_BSID-SHKZG = 'S'.
      IF WAC_BSID-ZUONR <> ' '.
         LOOP AT ITD_BSID INTO WAD_BSID WHERE KUNNR = WAC_BSID-KUNNR AND VBELN = ' ' AND ZUONR = WAC_BSID-ZUONR.
           IF SY-SUBRC = 0.
              ADJ_AMT = ADJ_AMT + WAD_BSID-WRBTR.
           ENDIF.
         ENDLOOP.
         WAC_BSID-ADJ_AMT  = ADJ_AMT.
         WAC_BSID-BALN_AMT = WAC_BSID-WRBTR - ADJ_AMT.
         WAC_BSID-AGE_AMT  = WAC_BSID-BALN_AMT.
      ELSEIF WAC_BSID-ZUONR = ' '.
        WAC_BSID-BALN_AMT = WAC_BSID-WRBTR.
        WAC_BSID-AGE_AMT  = WAC_BSID-BALN_AMT.
      ENDIF.
  ENDIF.
    PERFORM AGING_CALCULATION.
    WA_ITAB-KUNNR = WAC_BSID-KUNNR.
    WA_ITAB-SINV_AMT = WAC_BSID-SINV_AMT.
    WA_ITAB-PAID_AMT = WAC_BSID-PAID_AMT.
    WA_ITAB-CNCL_AMT = WAC_BSID-CNCL_AMT.
    WA_ITAB-BALN_AMT = WAC_BSID-BALN_AMT.
   WA_ITAB-OD_DAYS  = WAC_BSID-OD_DAYS.
    WA_ITAB-BALN1 = WAC_BSID-BALN1.
    WA_ITAB-BALN2 = WAC_BSID-BALN2.
    WA_ITAB-BALN3 = WAC_BSID-BALN3.
    WA_ITAB-BALN4 = WAC_BSID-BALN4.
    WA_ITAB-BALN5 = WAC_BSID-BALN5.
    WA_ITAB-BALN6 = WAC_BSID-BALN6.
    COLLECT WA_ITAB INTO ITAB.
  MODIFY ITC_BSID FROM WAC_BSID.
COLLECT WAC_BSID.
ENDLOOP.
CLEAR : WA_ITAB, WA_CTAB.
LOOP AT CTAB INTO WA_CTAB.
CLEAR : WAO_BSID.
LOOP AT IT_BSID INTO WA_BSID WHERE KUNNR = WA_CTAB-KUNNR.
  IF WA_BSID-BLART = 'RV' OR
     WA_BSID-BLART = 'OB' OR
     WA_BSID-BLART = 'DG' OR
     WA_BSID-BLART = 'DR' OR
     WA_BSID-BLART = 'DZ' OR
     WA_BSID-BLART = 'DA' OR
     WA_BSID-BLART = 'SA' OR
     WA_BSID-BLART = 'AB'.
     WAO_BSID-KUNNR = WA_BSID-KUNNR.
     WAO_BSID-BLART = WA_BSID-BLART.
     WAO_BSID-VBELN = WA_BSID-VBELN.
     WAO_BSID-BELNR = WA_BSID-BELNR.
     WAO_BSID-REBZG = WA_BSID-REBZG.
     WAO_BSID-WRBTR = WA_BSID-WRBTR.
     WAO_BSID-SHKZG = WA_BSID-SHKZG.
     WAO_BSID-ZUONR = WA_BSID-ZUONR.
     WAO_BSID-SHKZG = WA_BSID-SHKZG.
     WAO_BSID-UMSKZ = WA_BSID-UMSKZ.
     APPEND WAO_BSID TO ITO_BSID.
   ENDIF.
ENDLOOP.
CLEAR : WAO_BSID.
LOOP AT ITO_BSID INTO WAO_BSID WHERE KUNNR = WA_CTAB-KUNNR.
  IF WAO_BSID-BLART = 'OB' AND WAO_BSID-SHKZG = 'H'.
    WAO_BSID-ONAC_AMT = WAO_BSID-ONAC_AMT - WAO_BSID-WRBTR.
      WAO_BSID-WRBTR_OBH = WAO_BSID-WRBTR.
  ELSEIF WAO_BSID-BLART = 'OB' AND WAO_BSID-SHKZG = 'S'.
    WAO_BSID-ONAC_AMT = WAO_BSID-ONAC_AMT - WAO_BSID-WRBTR.
      WAO_BSID-WRBTR_OBS = WAO_BSID-WRBTR.
  ELSEIF WAO_BSID-BLART = 'DG'.
    WAO_BSID-ONAC_AMT = WAO_BSID-ONAC_AMT - WAO_BSID-WRBTR.
      WAO_BSID-WRBTR_DG = WAO_BSID-WRBTR.
  ELSEIF WAO_BSID-BLART = 'DZ' AND WAO_BSID-SHKZG = 'H'.
    WAO_BSID-ONAC_AMT = WAO_BSID-ONAC_AMT - WAO_BSID-WRBTR.
     WAO_BSID-WRBTR_DZH = WAO_BSID-WRBTR.
  ELSEIF WAO_BSID-BLART = 'DZ' AND WAO_BSID-SHKZG = 'S'.
    WAO_BSID-ONAC_AMT = WAO_BSID-ONAC_AMT - WAO_BSID-WRBTR.
     WAO_BSID-WRBTR_DZS = WAO_BSID-WRBTR.
     ELSEIF WAO_BSID-BLART = 'DR'.
    WAO_BSID-ONAC_AMT = WAO_BSID-ONAC_AMT + WAO_BSID-WRBTR.
     WAO_BSID-WRBTR_DR = WAO_BSID-WRBTR.
  ELSEIF WAO_BSID-BLART = 'SA' AND WAO_BSID-SHKZG = 'S'.
    WAO_BSID-ONAC_AMT = WAO_BSID-ONAC_AMT + WAO_BSID-WRBTR.
      WAO_BSID-WRBTR_SAS = WAO_BSID-WRBTR.
  ELSEIF WAO_BSID-BLART = 'SA' AND WAO_BSID-SHKZG = 'H'.
    WAO_BSID-ONAC_AMT = WAO_BSID-ONAC_AMT - WAO_BSID-WRBTR.
     WAO_BSID-WRBTR_SAH = WAO_BSID-WRBTR.
  ELSEIF WAO_BSID-BLART = 'AB' AND WAO_BSID-SHKZG = 'S'.
    WAO_BSID-ONAC_AMT = WAO_BSID-ONAC_AMT + WAO_BSID-WRBTR.
      WAO_BSID-WRBTR_ABS = WAO_BSID-WRBTR.
  ELSEIF WAO_BSID-BLART = 'AB' AND WAO_BSID-SHKZG = 'H'.
    WAO_BSID-ONAC_AMT = WAO_BSID-ONAC_AMT - WAO_BSID-WRBTR.
     WAO_BSID-WRBTR_ABH = WAO_BSID-WRBTR.
ELSEIF WAO_BSID-BLART = 'RV' AND WAO_BSID-SHKZG = 'H' AND WAO_BSID-ZUONR = ' '.
  ELSEIF WAO_BSID-BLART = 'RV' AND WAO_BSID-SHKZG = 'H'.
     WAO_BSID-WRBTR_RVH = WAO_BSID-WRBTR.
    WRITE : / WAO_BSID-WRBTR_RVH .
  ELSEIF WAO_BSID-BLART = 'RV' AND WAO_BSID-SHKZG = 'S'.
     WAO_BSID-WRBTR_RVS = WAO_BSID-WRBTR.
  ELSEIF WAO_BSID-BLART = 'DA' AND WAO_BSID-SHKZG = 'H' AND WAO_BSID-UMSKZ <> 'G'.
     WAO_BSID-WRBTR_DAH = WAO_BSID-WRBTR.
  ENDIF.
    WA_ITAB-KUNNR    = WAO_BSID-KUNNR.
    WA_ITAB-WRBTR_DG = WAO_BSID-WRBTR_DG.
    WA_ITAB-WRBTR_DR = WAO_BSID-WRBTR_DR.
    WA_ITAB-WRBTR_DZS = WAO_BSID-WRBTR_DZS.
    WA_ITAB-WRBTR_DZH = WAO_BSID-WRBTR_DZH.
    WA_ITAB-WRBTR_OBH = WAO_BSID-WRBTR_OBH.
    WA_ITAB-WRBTR_OBS = WAO_BSID-WRBTR_OBS.
    WA_ITAB-WRBTR_SAH = WAO_BSID-WRBTR_SAH.
    WA_ITAB-WRBTR_SAS = WAO_BSID-WRBTR_SAS.
    WA_ITAB-WRBTR_RVH = WAO_BSID-WRBTR_RVH.
    WA_ITAB-WRBTR_RVS = WAO_BSID-WRBTR_RVS.
    WA_ITAB-WRBTR_ABH = WAO_BSID-WRBTR_ABH.
    WA_ITAB-WRBTR_ABS = WAO_BSID-WRBTR_ABS.
    WA_ITAB-WRBTR_DAH = WAO_BSID-WRBTR_DAH.
    WA_ITAB-WRBTR_DAS = WAO_BSID-WRBTR_DAS.
   WA_ITAB-AC_AMT    = WAO_BSID-AC_AMT.
    COLLECT WA_ITAB INTO ITAB.
  MODIFY ITO_BSID FROM WAO_BSID.
ENDLOOP.
ENDLOOP.
CLEAR : SLNO.
clear : wa_itab.
SORT ITAB BY KUNNR.
LOOP AT ITAB INTO WA_ITAB.
SLNO = SLNO + 1.
WA_ITAB-SNO = SLNO.
READ TABLE CTAB INTO WA_CTAB WITH KEY KUNNR = WA_ITAB-KUNNR.
     WA_ITAB-NAME1 = WA_CTAB-NAME1.
     WA_ITAB-BZIRK = WA_CTAB-BZIRK.
     WA_ITAB-ZTAG1 = WA_CTAB-ZTAG1.
    WA_ITAB-AC_AMT =     WA_ITAB-WRBTR_SAS
                       - WA_ITAB-WRBTR_SAH
                       - WA_ITAB-WRBTR_OBH
                       + WA_ITAB-WRBTR_OBS
                       + WA_ITAB-WRBTR_RVS
                       - WA_ITAB-WRBTR_RVH
                       - WA_ITAB-WRBTR_ABH
                       + WA_ITAB-WRBTR_ABS
                       - WA_ITAB-WRBTR_DAH
                       - WA_ITAB-WRBTR_DG
                       + WA_ITAB-WRBTR_DR
                       - WA_ITAB-WRBTR_DZH
                       + WA_ITAB-WRBTR_DZS.
data : amount211 like bsad-wrbtr,
amount_t like bsad-wrbtr.
                       data : aaaa type p decimals 2,
                       bbbb type p decimals 2,
                       cccc type p decimals 2,
                       wrbtr_shkzg like bsid-shkzg.
SELECT      shkzg wrbtr
            FROM bsid
            INTO (wrbtr_shkzg , wrbtr_note )
            WHERE kunnr = wa_itab-kunnr
            AND UMSKZ = 'G'.
            if wrbtr_shkzg = 'S'.
  aaaa = wrbtr_note + aaaa.
  elseif wrbtr_shkzg = 'H'.
  bbbb = wrbtr_note + bbbb.
  endif.
endselect.
cccc = BBBB - AAAA.
amount211 = wa_itab-baln3 + amount210.
amount213 = wa_itab-baln5 + amount212.
amount215 = wa_itab-baln1 + amount214.
amount217 = wa_itab-baln2 + amount216.
amount219 = wa_itab-baln4 + amount218.
amt213    = amt212 + wa_itab-baln6.
amount_t = amount215 + amount217 + amount211 + amount219 + amount213 + amt213.
wa_itab-outs_amt = wa_itab-ac_amt.
wa_itab-onac_amt = wa_itab-baln_amt - wa_itab-outs_amt + amount207 + amt.
onacc = wa_itab-onac_amt.
wa_itab-vbeln = wac_bsid-vbeln.
wa_itab-outs_amt = wa_itab-ac_amt + amount210 + amount212 - amount207.
amount_t = amount_t -  wa_itab-onac_amt.
WRITE : /    wa_itab-sno,
         5   wa_itab-kunnr  LEFT-JUSTIFIED HOTSPOT ON,
         16  wa_itab-name1,
         50  wa_itab-bzirk,
         63  wa_itab-ztag1 RIGHT-JUSTIFIED,
         69  CCCC,
         85  amount_t,
         105 amount215,
         125 amount217,
         145 amount211,
         165 amount219,
         185 amount213,
         205 AMT213,
         225 wa_itab-onac_amt.
MODIFY itab FROM wa_itab.
clear  : aaaa, bbbb, cccc ,amount215, amount217, amount211, amount219 ,AMT212, AMT213,  amount213 ,AMOUNT210 , AMOUNT212 , AMOUNT214 ,AMOUNT216 ,AMOUNT218 , AMOUNT207 , amount_t, cc , d , aa ,
a , b , bb , e , f , dd , g , h , dd, gg , hh , wa_itab-baln1 , wa_itab-baln2 , wa_itab-baln3 , wa_itab-baln4 , wa_itab-baln5 , wa_itab-baln6 ,wa_itab-onac_amt, amt.
HIDE : wa_itab-kunnr , wa_itab-name1.
ENDLOOP.
WRITE : / sy-uline.
TOP-OF-PAGE.
WRITE : 'SAKATA INX INDIA LTD.',
        / 'Age wise analysis as on', key_date,
        / sy-uline.
WRITE :  / 'SNo',
          5  'C-Code',
         16  'Customer Name',
         50  'Region',
         58  ' CR-DAYS',
         72  'SEC.AMOUNT',
         86  'Net O/S Amount',
         107  '0 to', int1, 'Days',
         125  int2s, 'to', int2e, 'Days',
         145 int3s, 'to', int3e, 'Days',
         165 int4s, 'to', int4e, 'Days',
         185 int5s, 'to', int5e, 'Days',
         210 '>',int5e, 'Days',
         230 'On Account',
         / sy-uline.
        'Invoice Amount',
        80  'Paid Amount',
        100 'Balance Amount',.
FORM aging_calculation.
CLEAR : billing_date, credit_days, wa_ctab.
DATA : shiftdays TYPE tb_days_to_pos.
CLEAR : shiftdays, overdue_days.
READ TABLE ctab INTO wa_ctab WITH KEY kunnr = wac_bsid-kunnr.
  billing_date = wac_bsid-fkdat.
  credit_days  = wa_ctab-ztag1.
     overdue_date = billing_date.
  CALL FUNCTION 'FAGL_ITEM_OVERDUE_DAYS'
    EXPORTING
     key_date                =  key_date
    PAY_DATE                =
      due_date                = overdue_date
    CLEAR_DATE              =
   IMPORTING
    OVER_SKONTO1_DAYS       =
     overdue_days            =  overdue_days
    wac_bsid-od_days = overdue_days.
       IF int1 IS INITIAL.
        int1s = 0.
        int1e = 0.
       ELSEIF int1 IS NOT INITIAL.
        int1s = 0.
        int1e = int1.
       ENDIF.
       IF int2 IS INITIAL.
        int2s = 0.
        int2e = 0.
       ELSE.
        int2s = int1 + 1.
        int2e = int2.
       ENDIF.
       IF int3 IS INITIAL.
        int3s = 0.
        int3e = 0.
       ELSE.
        int3s = int2 + 1.
        int3e = int3.
       ENDIF.
       IF int4 IS INITIAL.
        int4s = 0.
        int4e = 0.
       ELSE.
        int4s = int3 + 1.
        int4e = int4.
       ENDIF.
       IF int5 IS INITIAL.
        int5s = 0.
        int5e = 0.
       ELSE.
        int5s = int4 + 1.
        int5e = int5.
       ENDIF.
      write : / WAO_BSID-WRBTR_DR.
      IF  wac_bsid-od_days BETWEEN int1s AND int1e.
        wac_bsid-baln1 =  wac_bsid-age_amt.
      ELSEIF  wac_bsid-od_days BETWEEN int2s AND int2e.
        wac_bsid-baln2 =  wac_bsid-age_amt .
      ELSEIF  wac_bsid-od_days BETWEEN int3s AND int3e.
        wac_bsid-baln3 =   wac_bsid-age_amt.
      ELSEIF  wac_bsid-od_days BETWEEN int4s AND int4e.
        wac_bsid-baln4 =  wac_bsid-age_amt .
      ELSEIF  wac_bsid-od_days BETWEEN int5s AND int5e.
        wac_bsid-baln5 =  wac_bsid-age_amt .
      ELSEIF  wac_bsid-od_days > int5e.
        wac_bsid-baln6 =  wac_bsid-age_amt .
      ENDIF.
ENDFORM.
AT LINE-SELECTION.
CASE sy-lsind.
WHEN ' 1'.
WRITE : / sy-uline.
WRITE : 'SAKATA INX INDIA LTD.',
        / 'Age wise analysis as on', key_date,
        / 'Customer-Code : ' , wa_itab-kunnr, 'Customer-Name : ' , wa_itab-name1,
        / sy-uline.
DATA : amount1 LIKE bsid-dmbtr,
       amount2 LIKE bsid-dmbtr,
       amount3 LIKE bsid-dmbtr,
       amount4 LIKE bsid-dmbtr,
       amount5 LIKE bsid-dmbtr,
       amount6 LIKE bsid-dmbtr,
       amount7 LIKE bsid-dmbtr,
       amount8 LIKE bsid-dmbtr,
       amount9 LIKE bsid-dmbtr,
       amount10 LIKE bsid-dmbtr,
       amount11 LIKE bsid-dmbtr,
       amount12 LIKE bsid-dmbtr,
       amount13 LIKE bsid-dmbtr,
       amount14 LIKE bsid-dmbtr,
       amount15 LIKE bsid-dmbtr,
       amount17 LIKE bsid-dmbtr,
       amount16 LIKE bsid-dmbtr,
       amount19 LIKE bsid-dmbtr,
       amount22 LIKE bsid-dmbtr,
       amount23 LIKE bsid-dmbtr,
       amount200 LIKE bsid-dmbtr,
       amount201 LIKE bsid-dmbtr,
       amount202 LIKE bsid-dmbtr,
       amount203 LIKE bsid-dmbtr,
       amount204 LIKE bsid-dmbtr,
       amount205 LIKE bsid-dmbtr,
       amount206 LIKE bsid-dmbtr,
       amount233 LIKE bsid-dmbtr,
       amount234 LIKE bsid-dmbtr,
       amount235 LIKE bsid-dmbtr,
       amount550 LIKE bsid-dmbtr,
       amt202 LIKE bsid-dmbtr,
       amt205 LIKE bsid-dmbtr,
       amt13 LIKE bsid-dmbtr,
       amt111 LIKE bsid-dmbtr,
       amount236 LIKE bsid-dmbtr.
         select bukrs kunnr wrbtr belnr AUGDT AUGBL budat shkzg blart vbeln bldat from bsad into corresponding fields of table itab_b where bukrs = 'SAIL' and kunnr = wa_itab-kunnr and augdt > key_date and budat <= key_date.
loop at itab_b.
     IF itab_b-blart = 'RV'.
            itab_b-flag2 = 'INVOICE'.
            MODIFY itab_b.
      ELSEIF itab_b-blart = 'DR'.
            itab_b-flag2 = 'DR-NOTE'.
            MODIFY itab2.
      ELSEIF itab_b-blart = 'OB'.
            itab_b-flag2 = 'OPN-BAL'.
            MODIFY itab_b.
      ELSEIF itab_b-blart = 'DG'.
            itab_b-flag2 = 'CR-NOTE'.
            MODIFY itab_b.
      ELSEIF itab_b-blart = 'DZ'.
            itab_b-flag2 = 'RECEIPTS'.
            MODIFY itab_b.
      ELSEIF itab_b-blart = 'SA'.
            itab_b-flag2 = 'JOURNAL'.
            MODIFY itab_b.
      ELSEIF itab_b-blart = 'DA'.
            itab_b-flag2 = 'CREDIT'.
            MODIFY itab_b.
      ELSEIF itab_b-blart = 'AB'.
            itab_b-flag2 = 'ADJUSTMENTS'.
            MODIFY itab_b.
      ENDIF.
            IF itab_b-shkzg = 'S'.
            itab_b-shkzg = 'D'.
            MODIFY itab_b.
            else.
            itab_b-shkzg = 'C'.
            MODIFY itab_b.
            ENDIF.
            endloop.
            loop at itab_b.
            ind  = sy-tabix.
      IF itab_b-vbeln IS NOT INITIAL.
SELECT   wrbtr FROM bsad INTO itab_b-abc WHERE vbeln = itab_b-vbeln and augdt > key_date and budat <= key_date and blart = 'DZ' and kunnr = itab_b-kunnr.
itab_b-aaa = itab_b-aaa + itab_b-abc.
ENDSELECT.
  ENDIF.
      IF itab_b-vbeln IS NOT INITIAL.
SELECT   wrbtr FROM bsid INTO itab_b-abc WHERE vbeln = itab_b-vbeln and budat <= key_date  and kunnr = itab_b-kunnr.
itab_b-aaa = itab_b-aaa + itab_b-abc.
ENDSELECT.
endif.
  IF itab_b-vbeln IS NOT INITIAL.
SELECT SINGLE  wrbtr FROM bsad INTO itab_b-bcd WHERE vbeln = itab_b-vbeln and augdt > key_date and budat <= key_date and kunnr = itab_b-kunnr.
itab_b-bbb = itab_b-bcd - itab_b-aaa.
ENDIF.
   IF itab_b-vbeln IS INITIAL.
SELECT SINGLE  wrbtr FROM bsad INTO itab_b-bcd WHERE belnr = itab_b-belnr and augdt > key_date and budat <= key_date and kunnr = itab_b-kunnr.
itab_b-bbb = itab_b-bcd - itab_b-aaa.
ENDIF.
MODIFY itab_b INDEX ind.
*write : / itab_b-vbeln , itab_b-bbb.
endloop.
cc = key_date - int1.
d = key_date.
SELECT      hkont      " General Ledger Account
            kunnr      " Customer Number 1
           

Similar Messages

  • Please help me on the logic.

    Hi,
      Please help me the logic below my requirement.I found one function module to calculate the age
    HR_RU_AGE_YEARS.But iam not able to implement the logic.Please help me.
    If the value in table P0021-SUBTY = 1 send 'SP'
    If the value in table P0021-SUBTY = 2 send 'CH'
    Also use Condition Logic to check the age of Child in IT0021-FGBDT. If FGBDT =21 years or greater then Check the Student indicator on IT0021 if it is checked then set 'ST' on full file else set 'CH'.
    For Disabled Dependent check to see if the indicator in P0106-DISAB is set to X i.e. yes. If its Yes then set 'DD' on full file.
    DD takes precendence over 'CH'.  Send termination record for students on their 26th Birthday.
    Regards,
    Sujan

    Hi,
    You can use function module HR_HK_DIFF_BT_2_DATES with date1 as sy-datum and date2 as DOB from pa0002 to calculate age.
    Regards,
    Kanupriya

  • Could you please help me understand the logic behind certain things in OSX?

    Ok, so I try to be an open-minded guy, and I bear no particular allegiance to either OS. I own a Sony TZ and a Mac mini, and my wife has a MacBook Pro. I use both Oses.
    There are certain things I have trouble understanding in th Mac OS, so what I'd really like to understand the logic behind certain design decisions in the OS, and why these might be better ways of accomplishing things. I know how to get around all of the things I mention, so I'm not looking for instructions; rather I'm looking for well-thought out explanations for why these features are the way they are.
    *1. Programs don't quit when you close the window.*
    - This totally puzzles me. Why design it so that program windows are independent are from the running program itself? There must be a reason, cold someone explain how this is more efficient? To me, it's simpler to click an X on the window you are working on to completely shut down a program, rather than to either mouse through menus to select quit, or be obligated to using Command Q keyboard shortcut.
    *2. Menu bars are on the desktop.*
    - Related to the first point, why make the main thing framing your desktop be something which is always changing depending on the program? Why have file menus outside the main window of the program. Having the menu bar on the desktop then necessitates an additional area, the dock, which has to be used as a launch bar and to tell you what programs are currently running. That obligates you to having 3 different areas of screen: 1 for program menus, 1 for running programs, and the program window itself. This seems very inefficient to me. Not to mention all the messy-looking floating palettes all over the place, again because everything is separated and not nicely contained in a single program window.
    - Really, having a changing menu bar that frames the desktop isn't even consistent wth the whole desktop metaphor, which is that you place things on a desktop, like programs, files, etc. Are you changing the whole desk everytime you load a new program, yet the wallpaper stays the same? Doesn't seem to be logically consistent to me.
    *3. No delete key.*
    - This one really gets me. Why make such a commonly used key be a function key (Fn + Backspace)? Why make the user press a secondary key for a major function?
    *4. No Cut command.*
    - I read something about how Cut doesn't actually make sense when moving files around, but I obviously didn't fully understand it. Why make the user command drag, when you can just do Ctrl X??.
    *5. Launching Apps from the Finder.*
    - This seems weird to me, that you find and launch applications from the same thing you use to view files. Program icons in the finder are placeholders for the entire program, not files, yet they are found in the file viewer. Again, to me this seems logically mixed. I really dislike scrolling through Finder to look for apps. I know there is Spotlight and the dock (used as a quicklauncher), but these are really just workarounds for a setup which seems inherently illogical. To me at least, a menu of applications make more sense, ie, the start menu.
    Anyway, those are all I can think of now, although there are other things aout OSX that don't make sense to me.
    Thanks in advance! If I can understand Apple's reasoning and it is convincingly better, that will go a long way towards making me more comfortable with this OS.

    1. Programs don't quit when you close the window.
    That's really more a matter of what you're used to. It comes down to a programming decision as to what Apple and Microsoft considered to make sense. MS thinks that if there are no open windows, you're done using the app. Apple thinks you aren't necessarily done yet, as others have mentioned. I certainly wouldn't want Photoshop to quit every time I closed the last open image I was working on. Would be nice though if Safari would quit when I close the last open browser window. It's quick to relaunch if you really weren't done with it, so wouldn't be much of a bother to have it shut down with the last window.
    2. Menu bars are on the desktop.
    Makes way more sense the Microsoft's approach of repeating the same file menu on every open document in a program. How many places do you need to see File, Options and other common menu headings?
    2. Menu bars are on the desktop.
    Related to number two. The forward app is the only one you can directly work in, so why not have the menu bar change to reflect the choices for that application? When you go back to the previous app you were in, the menu bar changes back. So what loss of functionality is there? It comes back to not having menu bars on every single open window. There's no need or purpose for it.
    3. No delete key.
    Backspace does the same thing.
    4. No Cut command.
    Command+X, not Ctrl+X. This is Mac, not Windows. There's also very little need to ever do this from the keyboard. If you're moving files that are on the same drive/partition, then just drag and drop from the target folder window to the source. It's automatically a move. If going from one physical drive or partition to another, it's automatically a copy. Press and hold the Command key during the drag to make it a move.
    Besides, you don't really think Windows cuts the entire folder or file contents into RAM, do you? If your computer has 4 GB of RAM, and you cut 12 GB of data, it of course can't possibly fit in the clipboard. All Windows does when you do a cut is visually remove the files and folders from the screen. If the items are going to a location on the same drive/partition, it does the same thing as if you did a drag and drop move. The file table is simply updated to reflect the new file or folder locations. If it's to a different drive/partition, it then performs a copy then delete action, same as OS X.
    5. Launching Apps from the Finder.
    A program is just as much a file as any other file. It takes up space on the drive. The OS of course knows what to do with it when you double click an app. Same as it knows what to do when you double click a document related to an app. Windows is no different. An .exe file is also just as much a file as a .doc file. The .exe extension tells Windows to try and treat it as a program to load into RAM. It's not just a simple placeholder. The program has to be made up of something.

  • Please help me with the logic

    Hi All,
    I have a number on the selection-screen.I need to prepare a structure with fields equal to the number provided on the selection screen.please help me with it.
    Thanks in advance,
    kushagra sharma

    Hi Kushagra,
    Below is one way of doing it.
    First create a dynamic internal table, taking number of fields from selection screen using cl_alv_table_create=>create_dynamic_table.
    Then create a dynamic structure for that dynamic internal table.
    Ex:
    DATA:fcat_wa TYPE lvc_s_fcat,
         fcat_itab TYPE lvc_t_fcat,
         poi_itab TYPE REF TO data,
         poi_itab1 TYPE REF TO data,
         cha(4) TYPE c.
    FIELD-SYMBOLS: <itab> TYPE STANDARD TABLE,
                   <wa> TYPE ANY.
    PARAMETERS: p_num TYPE i.  " Number of fields
    DO p_num TIMES.
      cha = sy-index.
      CONCATENATE 'F' cha INTO cha.
      CONDENSE cha NO-GAPS.
      fcat_wa-fieldname = cha.
      fcat_wa-datatype = 'STRG'.
      APPEND fcat_wa TO fcat_itab.
    ENDDO.
    CALL METHOD cl_alv_table_create=>create_dynamic_table
      EXPORTING
        it_fieldcatalog           = fcat_itab
      IMPORTING
        ep_table                  = poi_itab
      EXCEPTIONS
        generate_subpool_dir_full = 1
        OTHERS                    = 2.
    ASSIGN poi_itab->* TO <itab>.  " Dynamic internal table
    CREATE DATA poi_itab1 LIKE LINE OF <itab>.
    ASSIGN poi_itab1->* TO <wa>.  " Dynamic structure
    Hope it helps u.
    Thanks,
    Edited by: Sap Fan on Oct 28, 2009 3:41 PM

  • Can anyone please help me with the logic for this..

    hi all,
    os  has the value Windows 2000
    IF os CP 'WINDOWS' OR os CP 'SUN'.
         OS1 = 'X'.
      ENDIF.
    (if i test this,
    os1 doesnot have any value, (should be x)).
    This doesnot work for me.
    Any suggestions.
    Regards,
    Sukumar.

    Dear Sukumar,
    just use the F1 help on CP in ABAP code, there is a description.
    I think you need to use the asterix '*' than it will work.
    Regards
    Tibor
    Just check the example:
    Report z_example.
    data: os1, os type string.
    os = 'WINDOWS 2000'.
    IF os CP 'WINDOWS' OR os CP 'SUN' or os = space.
    OS1 = 'X'.
    ENDIF.
    write: / os1.

  • Please Help me with this Logic.....

    Seniors , Please Help me with this Requirment
         BUKRS _____________________
         GJAHR  ____________________
         LIFNR    _____________________
         MONAT _____________________
    LIFNR  NAME1  GSBER   GJAHR  HBAL SBAL  ACCUMBAL
    1001   ABB    BUSS1   2005     300      00            
                 ABB      BUSS1    2005      00      100
                                                        300     100   (300-100)=200
                  ABB      BUSS1   2006      200      00
                  ABB      BUSS1   2006      200      00                 
                                                      400      00   (400-00)+ 200 =                                                                               
    600
                ABB     BUSS2   2005     300       00
                ABB      BUSS2    2005      00       100                                                                               
                                                     300      100    ( 300-100) =200                                                                               
                ABB      BUSS2   2006    400         00
                ABB      BUSS2   2006     00         100
                                                      400       100   (400-100)+200 =                                                                               
    500   ****************************************************************************                                                                               
    1400         300  (1400-300)                                            **********************************************************************************************************
    Same for the Next Vendor also...
    This is the report for this Requirment i am working on....Please Help me in the Logic..How to Go on with it....
    *& Report  ZVENDOR_RECONCILLATION
    REPORT  ZVENDOR_RECONCILLATION.
    TABLES : BSAK , BSIK , LFC1 , LFC3 , LFA1.
    *ALV
    TYPE-POOLS: SLIS.
    *TYPE-POOLS icon.
    DATA: It_SORT TYPE SLIS_T_SORTINFO_ALV ."WITH HEADER LINE.
    DATA: TOP TYPE slis_t_listheader,
          END TYPE slis_t_listheader,
          EVENTS TYPE slis_t_event.
    DATA : T_KEY TYPE SLIS_KEYINFO_ALV.
    DATA : FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          LAYOUT TYPE SLIS_LAYOUT_ALV OCCURS 1 WITH HEADER LINE ,
          LCAT TYPE SLIS_FIELDCAT_ALV.
    *INTERNAL TABLE
    DATA: BEGIN OF sd_bsak,
            bukrs TYPE bsak-bukrs,
            lifnr TYPE bsak-lifnr,
            umsks TYPE bsak-umsks,
            umskz TYPE bsak-umskz,
            augdt TYPE bsak-augdt,
            augbl TYPE bsak-augbl,
            zuonr TYPE bsak-zuonr,
            gjahr TYPE bsak-gjahr,
            belnr TYPE bsak-belnr,
            buzei TYPE bsak-buzei,
            budat TYPE bsak-budat,
            bldat TYPE bsak-bldat,
            xblnr TYPE bsak-xblnr,
            blart TYPE bsak-blart,
            monat TYPE bsak-monat,
            bschl TYPE bsak-bschl,
            zumsk TYPE bsak-zumsk,
            shkzg TYPE bsak-shkzg,
            gsber TYPE bsak-gsber,
            dmbtr TYPE bsak-dmbtr,
            wrbtr TYPE bsak-wrbtr,
            sgtxt TYPE bsak-sgtxt,
            saknr TYPE bsak-saknr,
            hkont TYPE bsak-hkont,
          END OF sd_bsak.
    DATA: BEGIN OF sd_bsik,
            bukrs TYPE bsik-bukrs,
            lifnr TYPE bsik-lifnr,
            umsks TYPE bsik-umsks,
            umskz TYPE bsik-umskz,
            augdt TYPE bsik-augdt,
            augbl TYPE bsik-augbl,
            zuonr TYPE bsik-zuonr,
            gjahr TYPE bsik-gjahr,
            belnr TYPE bsik-belnr,
            buzei TYPE bsik-buzei,
            budat TYPE bsik-budat,
            bldat TYPE bsik-bldat,
            xblnr TYPE bsik-xblnr,
            blart TYPE bsik-blart,
            monat TYPE bsik-monat,
            bschl TYPE bsik-bschl,
            zumsk TYPE bsik-zumsk,
            shkzg TYPE bsik-shkzg,
            gsber TYPE bsik-gsber,
            dmbtr TYPE bsik-dmbtr,
            wrbtr TYPE bsik-wrbtr,
            sgtxt TYPE bsik-sgtxt,
            saknr TYPE bsik-saknr,
            hkont TYPE bsik-hkont,
            zlsch TYPE bsik-zlsch,
          END OF sd_bsik.
    DATA: BEGIN OF it_lfa1,
            lifnr TYPE lfa1-lifnr,
            name1 TYPE lfa1-name1,
          END OF it_lfa1.
    *FINAL INTERNAL TABLE DECLARATION
    DATA: BEGIN OF IT_FINAL,
            lifnr TYPE bsak-lifnr,
            gsber TYPE bsak-gsber,
            bukrs TYPE bsak-bukrs,
            umsks TYPE bsak-umsks,
            umskz TYPE bsak-umskz,
            augdt TYPE bsak-augdt,
            augbl TYPE bsak-augbl,
            zuonr TYPE bsak-zuonr,
            gjahr TYPE bsak-gjahr,
            belnr TYPE bsak-belnr,
            buzei TYPE bsak-buzei,
            budat TYPE bsak-budat,
            bldat TYPE bsak-bldat,
            xblnr TYPE bsak-xblnr,
            blart TYPE bsak-blart,
            monat TYPE bsak-monat,
            bschl TYPE bsak-bschl,
            zumsk TYPE bsak-zumsk,
            shkzg TYPE bsak-shkzg,
           gsber TYPE bsak-gsber,
            dmbtr TYPE bsak-dmbtr,
            wrbtr TYPE bsak-wrbtr,
            sgtxt TYPE bsak-sgtxt,
            saknr TYPE bsak-saknr,
            hkont TYPE bsak-hkont,
            DMBTR_S  TYPE BSAK-DMBTR,
            DMBTR_H  TYPE BSAK-DMBTR,
            DS       TYPE P DECIMALS 2,
            DH       TYPE P DECIMALS 2,
            SUB      TYPE P DECIMALS 2,
            ADD      TYPE P DECIMALS 2,
            BAL      TYPE P DECIMALS 2,
           lifnr TYPE bsik-lifnr,
           umsks TYPE bsik-umsks,
           umskz TYPE bsik-umskz,
           augdt TYPE bsik-augdt,
           augbl TYPE bsik-augbl,
           zuonr TYPE bsik-zuonr,
           gjahr TYPE bsik-gjahr,
           belnr TYPE bsik-belnr,
           buzei TYPE bsik-buzei,
           budat TYPE bsik-budat,
           bldat TYPE bsik-bldat,
           xblnr TYPE bsik-xblnr,
           blart TYPE bsik-blart,
           monat TYPE bsik-monat,
           bschl TYPE bsik-bschl,
           zumsk TYPE bsik-zumsk,
           shkzg TYPE bsik-shkzg,
           gsber TYPE bsik-gsber,
           dmbtr TYPE bsik-dmbtr,
           wrbtr TYPE bsik-wrbtr,
           sgtxt TYPE bsik-sgtxt,
           saknr TYPE bsik-saknr,
           hkont TYPE bsik-hkont,
            zlsch TYPE bsik-zlsch,
                   lifnr TYPE lfa1-lifnr,
            name1 TYPE lfa1-name1,
    END OF IT_FINAL.
    DATA: BEGIN OF SD_FINAL,
            gsber TYPE bsak-gsber,
            lifnr TYPE bsak-lifnr,
            bukrs TYPE bsak-bukrs,
           lifnr TYPE bsak-lifnr,
            umsks TYPE bsak-umsks,
            umskz TYPE bsak-umskz,
            augdt TYPE bsak-augdt,
            augbl TYPE bsak-augbl,
            zuonr TYPE bsak-zuonr,
            gjahr TYPE bsak-gjahr,
            belnr TYPE bsak-belnr,
            buzei TYPE bsak-buzei,
            budat TYPE bsak-budat,
            bldat TYPE bsak-bldat,
            xblnr TYPE bsak-xblnr,
            blart TYPE bsak-blart,
            monat TYPE bsak-monat,
            bschl TYPE bsak-bschl,
            zumsk TYPE bsak-zumsk,
            shkzg TYPE bsak-shkzg,
            dmbtr TYPE bsak-dmbtr,
            wrbtr TYPE bsak-wrbtr,
            sgtxt TYPE bsak-sgtxt,
            saknr TYPE bsak-saknr,
            hkont TYPE bsak-hkont,
                   bukrs TYPE bsik-bukrs,
           lifnr TYPE bsik-lifnr,
           umsks TYPE bsik-umsks,
           umskz TYPE bsik-umskz,
           augdt TYPE bsik-augdt,
           augbl TYPE bsik-augbl,
           zuonr TYPE bsik-zuonr,
           gjahr TYPE bsik-gjahr,
           belnr TYPE bsik-belnr,
           buzei TYPE bsik-buzei,
           budat TYPE bsik-budat,
           bldat TYPE bsik-bldat,
           xblnr TYPE bsik-xblnr,
           blart TYPE bsik-blart,
           monat TYPE bsik-monat,
           bschl TYPE bsik-bschl,
           zumsk TYPE bsik-zumsk,
           shkzg TYPE bsik-shkzg,
           gsber TYPE bsik-gsber,
           dmbtr TYPE bsik-dmbtr,
           wrbtr TYPE bsik-wrbtr,
           sgtxt TYPE bsik-sgtxt,
           saknr TYPE bsik-saknr,
           hkont TYPE bsik-hkont,
            zlsch TYPE bsik-zlsch,
                   lifnr TYPE lfa1-lifnr,
            name1 TYPE lfa1-name1,
    line_color(4) TYPE c,
    END OF SD_FINAL.
    DATA IT_STD_BSAK  LIKE TABLE OF SD_BSAK  WITH HEADER LINE.
    DATA IT_STD_BSIK  LIKE TABLE OF SD_BSIK  WITH HEADER LINE.
    DATA IT_STD_LFA1  LIKE TABLE OF IT_LFA1  WITH HEADER LINE.
    DATA IT_STD_FINAL  LIKE TABLE OF IT_FINAL  WITH HEADER LINE.
    DATA IT_FINAL_DISPLAY LIKE TABLE OF SD_FINAL WITH HEADER LINE.
    *SELECTION-SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK HEADER WITH FRAME TITLE TEXT-001.
    PARAMETERS:  P_BUKRS LIKE BSAK-BUKRS OBLIGATORY.
    SELECT-OPTIONS : S_GJAHR FOR BSAK-GJAHR.
    SELECT-OPTIONS: S_LIFNR FOR BSAK-LIFNR.
    SELECT-OPTIONS: S_MONAT FOR BSAK-MONAT.
    SELECTION-SCREEN END OF BLOCK HEADER.
    START-OF-SELECTION.
      SET PF-STATUS 'STATUS'.
      PERFORM DATA_RETRIVAL.
      PERFORM FIELD.
      PERFORM EVENTS USING EVENTS.
    PERFORM EVENTS_1 USING EVENTS.
    PERFORM HEADER USING TOP.
      PERFORM LAYOUT.
      PERFORM DISPLAY.
      END-OF-PAGE.
    *&      Form  DATA_RETRIVAL
         text
    -->  p1        text
    <--  p2        text
    FORM DATA_RETRIVAL .
      SELECT BUKRS  LIFNR UMSKS UMSKZ AUGDT AUGBL ZUONR GJAHR BELNR BUZEI BUDAT BLDAT XBLNR BLART
             MONAT BSCHL ZUMSK SHKZG GSBER DMBTR WRBTR SGTXT SAKNR HKONT
        FROM BSAK INTO TABLE IT_STD_BSAK
        WHERE BUKRS = P_BUKRS
              AND GJAHR IN S_GJAHR
        AND LIFNR IN S_LIFNR
        AND MONAT IN S_MONAT.
      IF NOT IT_STD_BSAK[] IS INITIAL.
        SELECT BUKRS LIFNR UMSKS UMSKZ AUGDT AUGBL ZUONR GJAHR BELNR BUZEI BUDAT BLDAT XBLNR
               BLART MONAT BSCHL ZUMSK SHKZG GSBER DMBTR WRBTR SGTXT SAKNR HKONT ZLSCH
        FROM BSIK INTO TABLE IT_STD_BSIK FOR ALL ENTRIES IN IT_STD_BSAK
        WHERE BUKRS = IT_STD_BSAK-BUKRS AND LIFNR = IT_STD_BSAK-LIFNR AND GJAHR = IT_STD_BSAK-GJAHR .
      ENDIF.
    IF NOT IT_STD_BSAK[] IS INITIAL.
        SELECT LIFNR NAME1
               FROM LFA1  INTO TABLE IT_STD_LFA1 FOR ALL ENTRIES IN IT_STD_BSAK
               WHERE LIFNR = IT_STD_BSAK-LIFNR.
      ENDIF.
      LOOP AT IT_STD_BSAK.
        IT_STD_FINAL-BUKRS = IT_STD_BSAK-BUKRS.
        IT_STD_FINAL-LIFNR = IT_STD_BSAK-LIFNR.
        IT_STD_FINAL-UMSKS = IT_STD_BSAK-UMSKS.
        IT_STD_FINAL-UMSKZ = IT_STD_BSAK-UMSKZ.
        IT_STD_FINAL-AUGDT = IT_STD_BSAK-AUGDT.
        IT_STD_FINAL-AUGBL = IT_STD_BSAK-AUGBL.
        IT_STD_FINAL-ZUONR = IT_STD_BSAK-ZUONR.
        IT_STD_FINAL-GJAHR = IT_STD_BSAK-GJAHR.
        IT_STD_FINAL-BELNR = IT_STD_BSAK-BELNR.
        IT_STD_FINAL-BUZEI = IT_STD_BSAK-BUZEI.
        IT_STD_FINAL-BUDAT = IT_STD_BSAK-BUDAT.
        IT_STD_FINAL-BLDAT = IT_STD_BSAK-BLDAT.
        IT_STD_FINAL-XBLNR = IT_STD_BSAK-XBLNR.
        IT_STD_FINAL-BLART = IT_STD_BSAK-BLART.
        IT_STD_FINAL-MONAT = IT_STD_BSAK-MONAT.
        IT_STD_FINAL-BSCHL = IT_STD_BSAK-BSCHL.
        IT_STD_FINAL-ZUMSK = IT_STD_BSAK-ZUMSK.
        IT_STD_FINAL-SHKZG = IT_STD_BSAK-SHKZG.
        IT_STD_FINAL-GSBER = IT_STD_BSAK-GSBER.
        IT_STD_FINAL-DMBTR = IT_STD_BSAK-DMBTR.
        IT_STD_FINAL-WRBTR = IT_STD_BSAK-WRBTR.
        IT_STD_FINAL-SGTXT = IT_STD_BSAK-SGTXT.
        IT_STD_FINAL-SAKNR = IT_STD_BSAK-SAKNR.
        IT_STD_FINAL-HKONT = IT_STD_BSAK-HKONT.
    READ TABLE IT_STD_LFA1 WITH KEY LIFNR = IT_STD_FINAL-LIFNR.
      IF SY-SUBRC = 0.
        IT_STD_FINAL-NAME1 = IT_STD_LFA1-NAME1.
      ENDIF.
        APPEND IT_STD_FINAL.
        CLEAR IT_STD_FINAL.
      ENDLOOP.
    LOOP AT IT_STD_BSIK.
    IF SY-SUBRC = 0.
        IT_STD_FINAL-BUKRS = IT_STD_BSIK-BUKRS.
        IT_STD_FINAL-LIFNR = IT_STD_BSIK-LIFNR.
        IT_STD_FINAL-UMSKS = IT_STD_BSIK-UMSKS.
        IT_STD_FINAL-UMSKZ = IT_STD_BSIK-UMSKZ.
        IT_STD_FINAL-AUGDT = IT_STD_BSIK-AUGDT.
        IT_STD_FINAL-AUGBL = IT_STD_BSIK-AUGBL.
        IT_STD_FINAL-ZUONR = IT_STD_BSIK-ZUONR.
        IT_STD_FINAL-GJAHR = IT_STD_BSIK-GJAHR.
        IT_STD_FINAL-BELNR = IT_STD_BSIK-BELNR.
        IT_STD_FINAL-BUZEI = IT_STD_BSIK-BUZEI.
        IT_STD_FINAL-BUDAT = IT_STD_BSIK-BUDAT.
        IT_STD_FINAL-BLDAT = IT_STD_BSIK-BLDAT.
        IT_STD_FINAL-XBLNR = IT_STD_BSIK-XBLNR.
        IT_STD_FINAL-BLART = IT_STD_BSIK-BLART.
        IT_STD_FINAL-MONAT = IT_STD_BSIK-MONAT.
        IT_STD_FINAL-BSCHL = IT_STD_BSIK-BSCHL.
        IT_STD_FINAL-ZUMSK = IT_STD_BSIK-ZUMSK.
        IT_STD_FINAL-SHKZG = IT_STD_BSIK-SHKZG.
        IT_STD_FINAL-GSBER = IT_STD_BSIK-GSBER.
        IT_STD_FINAL-DMBTR = IT_STD_BSIK-DMBTR.
        IT_STD_FINAL-WRBTR = IT_STD_BSIK-WRBTR.
        IT_STD_FINAL-SGTXT = IT_STD_BSIK-SGTXT.
        IT_STD_FINAL-SAKNR = IT_STD_BSIK-SAKNR.
        IT_STD_FINAL-HKONT = IT_STD_BSIK-HKONT.
        IT_STD_FINAL-ZLSCH = IT_STD_BSIK-ZLSCH.
        ENDIF.
        APPEND IT_STD_FINAL.
        CLEAR IT_STD_FINAL.
      ENDLOOP.
    LOOP AT IT_STD_FINAL.
        IF IT_STD_FINAL-SHKZG = 'S'.
            IT_STD_FINAL-DMBTR_S  = IT_STD_FINAL-DMBTR.
        ELSE.
        IF IT_STD_FINAL-SHKZG = 'H'.
          IT_STD_FINAL-DMBTR_H  = IT_STD_FINAL-DMBTR.
          ENDIF.
        ENDIF.
        IT_STD_FINAL-DMBTR = ''.
        MODIFY IT_STD_FINAL INDEX SY-TABIX TRANSPORTING DMBTR_H DMBTR_S DMBTR.
    "VAR.
        CLEAR IT_STD_FINAL.
      ENDLOOP.
    SORT IT_STD_FINAL BY LIFNR GSBER GJAHR.
    ENDFORM.                    " DATA_RETRIVAL
    *&      Form  FIELD
         text
    -->  p1        text
    <--  p2        text
    form FIELD .
      LCAT-FIELDNAME = 'LIFNR'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Vendor No'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'NAME1'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Vendor Name'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'GJAHR'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Fiscal Year'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'GSBER'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'BussArea'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'DMBTR_S'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Debit Balanace'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'DMBTR_H'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Credit Balance'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'BAL'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Accumulated Balance'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
    endform.                    " FIELD
    *&      Form  DISPLAY
         text
    -->  p1        text
    <--  p2        text
    form DISPLAY .
      CLEAR: IT_STD_BSAK,IT_STD_BSIK, IT_STD_LFA1 .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
    I_INTERFACE_CHECK                = ' '
    I_BYPASSING_BUFFER                = ' '
    I_BUFFER_ACTIVE                  = ' '
        I_CALLBACK_PROGRAM                = SY-REPID
    I_CALLBACK_PF_STATUS_SET          = 'STATUS '
    I_CALLBACK_USER_COMMAND          = ' '
    I_CALLBACK_TOP_OF_PAGE            = ' '
    I_CALLBACK_HTML_TOP_OF_PAGE      = ' '
    I_CALLBACK_HTML_END_OF_LIST      = ' '
    I_STRUCTURE_NAME                  =
    I_BACKGROUND_ID                  = ' '
    I_GRID_TITLE                      =
    I_GRID_SETTINGS                  =
        IS_LAYOUT                        = LAYOUT
        IT_FIELDCAT                      = FIELDCAT[]
    IT_EXCLUDING                      =
    IT_SPECIAL_GROUPS                =
         IT_SORT                          = IT_SORT
    IT_FILTER                        =
    IS_SEL_HIDE                      =
    I_DEFAULT                        = 'X'
    I_SAVE                            = ' '
    IS_VARIANT                        =
        IT_EVENTS                        = EVENTS
    IT_EVENT_EXIT                    =
    IS_PRINT                          =
    IS_REPREP_ID                      =
    I_SCREEN_START_COLUMN            = 0
    I_SCREEN_START_LINE              = 0
    I_SCREEN_END_COLUMN              = 0
    I_SCREEN_END_LINE                = 0
    I_HTML_HEIGHT_TOP                = 0
    I_HTML_HEIGHT_END                = 0
    IT_ALV_GRAPHICS                  =
    IT_HYPERLINK                      =
    IT_ADD_FIELDCAT                  =
    IT_EXCEPT_QINFO                  =
    IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER          =
    ES_EXIT_CAUSED_BY_USER            =
        TABLES
       t_outtab                          = IT_CHARG
          t_outtab                          = IT_STD_FINAL[]
    EXCEPTIONS
    PROGRAM_ERROR                    = 1
    OTHERS                            = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "DISPLAY
    *&      Form  EVENTS
         text
    -->  p1        text
    <--  p2        text
    form EVENTS USING P_EVENTS TYPE slis_t_event.
      DATA: ls_event TYPE slis_alv_event.
      ls_event-name = 'TOP_OF_PAGE'.
      ls_event-form = 'TOP_OF_PAGE'.
      APPEND ls_event TO P_EVENTS.
    endform.                    " EVENTS
    *&      Form  TOP_OF_PAGE
         text
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = TOP.
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  LAYOUT
         text
    -->  p1        text
    <--  p2        text
    form LAYOUT .
    LAYOUT-ZEBRA = 'X'.
      LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
      LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
      APPEND LAYOUT." TO LAYOUT.
    endform.                    " LAYOUT
    *&      Form  EVENTS_1
         text
         -->P_EVENTS  text
    FORM EVENTS_1  USING    P_EVENTS TYPE slis_t_event.
      DATA: ls_event TYPE slis_alv_event.
      WRITE: SY-UNAME.
      ls_event-name = 'END_OF_PAGE'.
      ls_event-form = 'END_OF_PAGE'.
      APPEND ls_event TO P_EVENTS.
    ENDFORM.                    " EVENTS_1

    Seniors , Please Help me with this Requirment
         BUKRS _____________________
         GJAHR  ____________________
         LIFNR    _____________________
         MONAT _____________________
    LIFNR  NAME1  GSBER   GJAHR  HBAL SBAL  ACCUMBAL
    1001   ABB    BUSS1   2005     300      00            
                 ABB      BUSS1    2005      00      100
                                                        300     100   (300-100)=200
                  ABB      BUSS1   2006      200      00
                  ABB      BUSS1   2006      200      00                 
                                                      400      00   (400-00)+ 200 =                                                                               
    600
                ABB     BUSS2   2005     300       00
                ABB      BUSS2    2005      00       100                                                                               
                                                     300      100    ( 300-100) =200                                                                               
                ABB      BUSS2   2006    400         00
                ABB      BUSS2   2006     00         100
                                                      400       100   (400-100)+200 =                                                                               
    500   ****************************************************************************                                                                               
    1400         300  (1400-300)                                            **********************************************************************************************************
    Same for the Next Vendor also...
    This is the report for this Requirment i am working on....Please Help me in the Logic..How to Go on with it....
    *& Report  ZVENDOR_RECONCILLATION
    REPORT  ZVENDOR_RECONCILLATION.
    TABLES : BSAK , BSIK , LFC1 , LFC3 , LFA1.
    *ALV
    TYPE-POOLS: SLIS.
    *TYPE-POOLS icon.
    DATA: It_SORT TYPE SLIS_T_SORTINFO_ALV ."WITH HEADER LINE.
    DATA: TOP TYPE slis_t_listheader,
          END TYPE slis_t_listheader,
          EVENTS TYPE slis_t_event.
    DATA : T_KEY TYPE SLIS_KEYINFO_ALV.
    DATA : FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          LAYOUT TYPE SLIS_LAYOUT_ALV OCCURS 1 WITH HEADER LINE ,
          LCAT TYPE SLIS_FIELDCAT_ALV.
    *INTERNAL TABLE
    DATA: BEGIN OF sd_bsak,
            bukrs TYPE bsak-bukrs,
            lifnr TYPE bsak-lifnr,
            umsks TYPE bsak-umsks,
            umskz TYPE bsak-umskz,
            augdt TYPE bsak-augdt,
            augbl TYPE bsak-augbl,
            zuonr TYPE bsak-zuonr,
            gjahr TYPE bsak-gjahr,
            belnr TYPE bsak-belnr,
            buzei TYPE bsak-buzei,
            budat TYPE bsak-budat,
            bldat TYPE bsak-bldat,
            xblnr TYPE bsak-xblnr,
            blart TYPE bsak-blart,
            monat TYPE bsak-monat,
            bschl TYPE bsak-bschl,
            zumsk TYPE bsak-zumsk,
            shkzg TYPE bsak-shkzg,
            gsber TYPE bsak-gsber,
            dmbtr TYPE bsak-dmbtr,
            wrbtr TYPE bsak-wrbtr,
            sgtxt TYPE bsak-sgtxt,
            saknr TYPE bsak-saknr,
            hkont TYPE bsak-hkont,
          END OF sd_bsak.
    DATA: BEGIN OF sd_bsik,
            bukrs TYPE bsik-bukrs,
            lifnr TYPE bsik-lifnr,
            umsks TYPE bsik-umsks,
            umskz TYPE bsik-umskz,
            augdt TYPE bsik-augdt,
            augbl TYPE bsik-augbl,
            zuonr TYPE bsik-zuonr,
            gjahr TYPE bsik-gjahr,
            belnr TYPE bsik-belnr,
            buzei TYPE bsik-buzei,
            budat TYPE bsik-budat,
            bldat TYPE bsik-bldat,
            xblnr TYPE bsik-xblnr,
            blart TYPE bsik-blart,
            monat TYPE bsik-monat,
            bschl TYPE bsik-bschl,
            zumsk TYPE bsik-zumsk,
            shkzg TYPE bsik-shkzg,
            gsber TYPE bsik-gsber,
            dmbtr TYPE bsik-dmbtr,
            wrbtr TYPE bsik-wrbtr,
            sgtxt TYPE bsik-sgtxt,
            saknr TYPE bsik-saknr,
            hkont TYPE bsik-hkont,
            zlsch TYPE bsik-zlsch,
          END OF sd_bsik.
    DATA: BEGIN OF it_lfa1,
            lifnr TYPE lfa1-lifnr,
            name1 TYPE lfa1-name1,
          END OF it_lfa1.
    *FINAL INTERNAL TABLE DECLARATION
    DATA: BEGIN OF IT_FINAL,
            lifnr TYPE bsak-lifnr,
            gsber TYPE bsak-gsber,
            bukrs TYPE bsak-bukrs,
            umsks TYPE bsak-umsks,
            umskz TYPE bsak-umskz,
            augdt TYPE bsak-augdt,
            augbl TYPE bsak-augbl,
            zuonr TYPE bsak-zuonr,
            gjahr TYPE bsak-gjahr,
            belnr TYPE bsak-belnr,
            buzei TYPE bsak-buzei,
            budat TYPE bsak-budat,
            bldat TYPE bsak-bldat,
            xblnr TYPE bsak-xblnr,
            blart TYPE bsak-blart,
            monat TYPE bsak-monat,
            bschl TYPE bsak-bschl,
            zumsk TYPE bsak-zumsk,
            shkzg TYPE bsak-shkzg,
           gsber TYPE bsak-gsber,
            dmbtr TYPE bsak-dmbtr,
            wrbtr TYPE bsak-wrbtr,
            sgtxt TYPE bsak-sgtxt,
            saknr TYPE bsak-saknr,
            hkont TYPE bsak-hkont,
            DMBTR_S  TYPE BSAK-DMBTR,
            DMBTR_H  TYPE BSAK-DMBTR,
            DS       TYPE P DECIMALS 2,
            DH       TYPE P DECIMALS 2,
            SUB      TYPE P DECIMALS 2,
            ADD      TYPE P DECIMALS 2,
            BAL      TYPE P DECIMALS 2,
           lifnr TYPE bsik-lifnr,
           umsks TYPE bsik-umsks,
           umskz TYPE bsik-umskz,
           augdt TYPE bsik-augdt,
           augbl TYPE bsik-augbl,
           zuonr TYPE bsik-zuonr,
           gjahr TYPE bsik-gjahr,
           belnr TYPE bsik-belnr,
           buzei TYPE bsik-buzei,
           budat TYPE bsik-budat,
           bldat TYPE bsik-bldat,
           xblnr TYPE bsik-xblnr,
           blart TYPE bsik-blart,
           monat TYPE bsik-monat,
           bschl TYPE bsik-bschl,
           zumsk TYPE bsik-zumsk,
           shkzg TYPE bsik-shkzg,
           gsber TYPE bsik-gsber,
           dmbtr TYPE bsik-dmbtr,
           wrbtr TYPE bsik-wrbtr,
           sgtxt TYPE bsik-sgtxt,
           saknr TYPE bsik-saknr,
           hkont TYPE bsik-hkont,
            zlsch TYPE bsik-zlsch,
                   lifnr TYPE lfa1-lifnr,
            name1 TYPE lfa1-name1,
    END OF IT_FINAL.
    DATA: BEGIN OF SD_FINAL,
            gsber TYPE bsak-gsber,
            lifnr TYPE bsak-lifnr,
            bukrs TYPE bsak-bukrs,
           lifnr TYPE bsak-lifnr,
            umsks TYPE bsak-umsks,
            umskz TYPE bsak-umskz,
            augdt TYPE bsak-augdt,
            augbl TYPE bsak-augbl,
            zuonr TYPE bsak-zuonr,
            gjahr TYPE bsak-gjahr,
            belnr TYPE bsak-belnr,
            buzei TYPE bsak-buzei,
            budat TYPE bsak-budat,
            bldat TYPE bsak-bldat,
            xblnr TYPE bsak-xblnr,
            blart TYPE bsak-blart,
            monat TYPE bsak-monat,
            bschl TYPE bsak-bschl,
            zumsk TYPE bsak-zumsk,
            shkzg TYPE bsak-shkzg,
            dmbtr TYPE bsak-dmbtr,
            wrbtr TYPE bsak-wrbtr,
            sgtxt TYPE bsak-sgtxt,
            saknr TYPE bsak-saknr,
            hkont TYPE bsak-hkont,
                   bukrs TYPE bsik-bukrs,
           lifnr TYPE bsik-lifnr,
           umsks TYPE bsik-umsks,
           umskz TYPE bsik-umskz,
           augdt TYPE bsik-augdt,
           augbl TYPE bsik-augbl,
           zuonr TYPE bsik-zuonr,
           gjahr TYPE bsik-gjahr,
           belnr TYPE bsik-belnr,
           buzei TYPE bsik-buzei,
           budat TYPE bsik-budat,
           bldat TYPE bsik-bldat,
           xblnr TYPE bsik-xblnr,
           blart TYPE bsik-blart,
           monat TYPE bsik-monat,
           bschl TYPE bsik-bschl,
           zumsk TYPE bsik-zumsk,
           shkzg TYPE bsik-shkzg,
           gsber TYPE bsik-gsber,
           dmbtr TYPE bsik-dmbtr,
           wrbtr TYPE bsik-wrbtr,
           sgtxt TYPE bsik-sgtxt,
           saknr TYPE bsik-saknr,
           hkont TYPE bsik-hkont,
            zlsch TYPE bsik-zlsch,
                   lifnr TYPE lfa1-lifnr,
            name1 TYPE lfa1-name1,
    line_color(4) TYPE c,
    END OF SD_FINAL.
    DATA IT_STD_BSAK  LIKE TABLE OF SD_BSAK  WITH HEADER LINE.
    DATA IT_STD_BSIK  LIKE TABLE OF SD_BSIK  WITH HEADER LINE.
    DATA IT_STD_LFA1  LIKE TABLE OF IT_LFA1  WITH HEADER LINE.
    DATA IT_STD_FINAL  LIKE TABLE OF IT_FINAL  WITH HEADER LINE.
    DATA IT_FINAL_DISPLAY LIKE TABLE OF SD_FINAL WITH HEADER LINE.
    *SELECTION-SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK HEADER WITH FRAME TITLE TEXT-001.
    PARAMETERS:  P_BUKRS LIKE BSAK-BUKRS OBLIGATORY.
    SELECT-OPTIONS : S_GJAHR FOR BSAK-GJAHR.
    SELECT-OPTIONS: S_LIFNR FOR BSAK-LIFNR.
    SELECT-OPTIONS: S_MONAT FOR BSAK-MONAT.
    SELECTION-SCREEN END OF BLOCK HEADER.
    START-OF-SELECTION.
      SET PF-STATUS 'STATUS'.
      PERFORM DATA_RETRIVAL.
      PERFORM FIELD.
      PERFORM EVENTS USING EVENTS.
    PERFORM EVENTS_1 USING EVENTS.
    PERFORM HEADER USING TOP.
      PERFORM LAYOUT.
      PERFORM DISPLAY.
      END-OF-PAGE.
    *&      Form  DATA_RETRIVAL
         text
    -->  p1        text
    <--  p2        text
    FORM DATA_RETRIVAL .
      SELECT BUKRS  LIFNR UMSKS UMSKZ AUGDT AUGBL ZUONR GJAHR BELNR BUZEI BUDAT BLDAT XBLNR BLART
             MONAT BSCHL ZUMSK SHKZG GSBER DMBTR WRBTR SGTXT SAKNR HKONT
        FROM BSAK INTO TABLE IT_STD_BSAK
        WHERE BUKRS = P_BUKRS
              AND GJAHR IN S_GJAHR
        AND LIFNR IN S_LIFNR
        AND MONAT IN S_MONAT.
      IF NOT IT_STD_BSAK[] IS INITIAL.
        SELECT BUKRS LIFNR UMSKS UMSKZ AUGDT AUGBL ZUONR GJAHR BELNR BUZEI BUDAT BLDAT XBLNR
               BLART MONAT BSCHL ZUMSK SHKZG GSBER DMBTR WRBTR SGTXT SAKNR HKONT ZLSCH
        FROM BSIK INTO TABLE IT_STD_BSIK FOR ALL ENTRIES IN IT_STD_BSAK
        WHERE BUKRS = IT_STD_BSAK-BUKRS AND LIFNR = IT_STD_BSAK-LIFNR AND GJAHR = IT_STD_BSAK-GJAHR .
      ENDIF.
    IF NOT IT_STD_BSAK[] IS INITIAL.
        SELECT LIFNR NAME1
               FROM LFA1  INTO TABLE IT_STD_LFA1 FOR ALL ENTRIES IN IT_STD_BSAK
               WHERE LIFNR = IT_STD_BSAK-LIFNR.
      ENDIF.
      LOOP AT IT_STD_BSAK.
        IT_STD_FINAL-BUKRS = IT_STD_BSAK-BUKRS.
        IT_STD_FINAL-LIFNR = IT_STD_BSAK-LIFNR.
        IT_STD_FINAL-UMSKS = IT_STD_BSAK-UMSKS.
        IT_STD_FINAL-UMSKZ = IT_STD_BSAK-UMSKZ.
        IT_STD_FINAL-AUGDT = IT_STD_BSAK-AUGDT.
        IT_STD_FINAL-AUGBL = IT_STD_BSAK-AUGBL.
        IT_STD_FINAL-ZUONR = IT_STD_BSAK-ZUONR.
        IT_STD_FINAL-GJAHR = IT_STD_BSAK-GJAHR.
        IT_STD_FINAL-BELNR = IT_STD_BSAK-BELNR.
        IT_STD_FINAL-BUZEI = IT_STD_BSAK-BUZEI.
        IT_STD_FINAL-BUDAT = IT_STD_BSAK-BUDAT.
        IT_STD_FINAL-BLDAT = IT_STD_BSAK-BLDAT.
        IT_STD_FINAL-XBLNR = IT_STD_BSAK-XBLNR.
        IT_STD_FINAL-BLART = IT_STD_BSAK-BLART.
        IT_STD_FINAL-MONAT = IT_STD_BSAK-MONAT.
        IT_STD_FINAL-BSCHL = IT_STD_BSAK-BSCHL.
        IT_STD_FINAL-ZUMSK = IT_STD_BSAK-ZUMSK.
        IT_STD_FINAL-SHKZG = IT_STD_BSAK-SHKZG.
        IT_STD_FINAL-GSBER = IT_STD_BSAK-GSBER.
        IT_STD_FINAL-DMBTR = IT_STD_BSAK-DMBTR.
        IT_STD_FINAL-WRBTR = IT_STD_BSAK-WRBTR.
        IT_STD_FINAL-SGTXT = IT_STD_BSAK-SGTXT.
        IT_STD_FINAL-SAKNR = IT_STD_BSAK-SAKNR.
        IT_STD_FINAL-HKONT = IT_STD_BSAK-HKONT.
    READ TABLE IT_STD_LFA1 WITH KEY LIFNR = IT_STD_FINAL-LIFNR.
      IF SY-SUBRC = 0.
        IT_STD_FINAL-NAME1 = IT_STD_LFA1-NAME1.
      ENDIF.
        APPEND IT_STD_FINAL.
        CLEAR IT_STD_FINAL.
      ENDLOOP.
    LOOP AT IT_STD_BSIK.
    IF SY-SUBRC = 0.
        IT_STD_FINAL-BUKRS = IT_STD_BSIK-BUKRS.
        IT_STD_FINAL-LIFNR = IT_STD_BSIK-LIFNR.
        IT_STD_FINAL-UMSKS = IT_STD_BSIK-UMSKS.
        IT_STD_FINAL-UMSKZ = IT_STD_BSIK-UMSKZ.
        IT_STD_FINAL-AUGDT = IT_STD_BSIK-AUGDT.
        IT_STD_FINAL-AUGBL = IT_STD_BSIK-AUGBL.
        IT_STD_FINAL-ZUONR = IT_STD_BSIK-ZUONR.
        IT_STD_FINAL-GJAHR = IT_STD_BSIK-GJAHR.
        IT_STD_FINAL-BELNR = IT_STD_BSIK-BELNR.
        IT_STD_FINAL-BUZEI = IT_STD_BSIK-BUZEI.
        IT_STD_FINAL-BUDAT = IT_STD_BSIK-BUDAT.
        IT_STD_FINAL-BLDAT = IT_STD_BSIK-BLDAT.
        IT_STD_FINAL-XBLNR = IT_STD_BSIK-XBLNR.
        IT_STD_FINAL-BLART = IT_STD_BSIK-BLART.
        IT_STD_FINAL-MONAT = IT_STD_BSIK-MONAT.
        IT_STD_FINAL-BSCHL = IT_STD_BSIK-BSCHL.
        IT_STD_FINAL-ZUMSK = IT_STD_BSIK-ZUMSK.
        IT_STD_FINAL-SHKZG = IT_STD_BSIK-SHKZG.
        IT_STD_FINAL-GSBER = IT_STD_BSIK-GSBER.
        IT_STD_FINAL-DMBTR = IT_STD_BSIK-DMBTR.
        IT_STD_FINAL-WRBTR = IT_STD_BSIK-WRBTR.
        IT_STD_FINAL-SGTXT = IT_STD_BSIK-SGTXT.
        IT_STD_FINAL-SAKNR = IT_STD_BSIK-SAKNR.
        IT_STD_FINAL-HKONT = IT_STD_BSIK-HKONT.
        IT_STD_FINAL-ZLSCH = IT_STD_BSIK-ZLSCH.
        ENDIF.
        APPEND IT_STD_FINAL.
        CLEAR IT_STD_FINAL.
      ENDLOOP.
    LOOP AT IT_STD_FINAL.
        IF IT_STD_FINAL-SHKZG = 'S'.
            IT_STD_FINAL-DMBTR_S  = IT_STD_FINAL-DMBTR.
        ELSE.
        IF IT_STD_FINAL-SHKZG = 'H'.
          IT_STD_FINAL-DMBTR_H  = IT_STD_FINAL-DMBTR.
          ENDIF.
        ENDIF.
        IT_STD_FINAL-DMBTR = ''.
        MODIFY IT_STD_FINAL INDEX SY-TABIX TRANSPORTING DMBTR_H DMBTR_S DMBTR.
    "VAR.
        CLEAR IT_STD_FINAL.
      ENDLOOP.
    SORT IT_STD_FINAL BY LIFNR GSBER GJAHR.
    ENDFORM.                    " DATA_RETRIVAL
    *&      Form  FIELD
         text
    -->  p1        text
    <--  p2        text
    form FIELD .
      LCAT-FIELDNAME = 'LIFNR'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Vendor No'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'NAME1'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Vendor Name'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'GJAHR'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Fiscal Year'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'GSBER'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'BussArea'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'DMBTR_S'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Debit Balanace'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'DMBTR_H'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Credit Balance'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
      LCAT-FIELDNAME = 'BAL'.
      LCAT-TABNAME = 'IT_STD_FINAL'.
      LCAT-SELTEXT_L = 'Accumulated Balance'.
      LCAT-JUST = 'M'.
      APPEND LCAT TO FIELDCAT.
      CLEAR LCAT.
    endform.                    " FIELD
    *&      Form  DISPLAY
         text
    -->  p1        text
    <--  p2        text
    form DISPLAY .
      CLEAR: IT_STD_BSAK,IT_STD_BSIK, IT_STD_LFA1 .
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
    I_INTERFACE_CHECK                = ' '
    I_BYPASSING_BUFFER                = ' '
    I_BUFFER_ACTIVE                  = ' '
        I_CALLBACK_PROGRAM                = SY-REPID
    I_CALLBACK_PF_STATUS_SET          = 'STATUS '
    I_CALLBACK_USER_COMMAND          = ' '
    I_CALLBACK_TOP_OF_PAGE            = ' '
    I_CALLBACK_HTML_TOP_OF_PAGE      = ' '
    I_CALLBACK_HTML_END_OF_LIST      = ' '
    I_STRUCTURE_NAME                  =
    I_BACKGROUND_ID                  = ' '
    I_GRID_TITLE                      =
    I_GRID_SETTINGS                  =
        IS_LAYOUT                        = LAYOUT
        IT_FIELDCAT                      = FIELDCAT[]
    IT_EXCLUDING                      =
    IT_SPECIAL_GROUPS                =
         IT_SORT                          = IT_SORT
    IT_FILTER                        =
    IS_SEL_HIDE                      =
    I_DEFAULT                        = 'X'
    I_SAVE                            = ' '
    IS_VARIANT                        =
        IT_EVENTS                        = EVENTS
    IT_EVENT_EXIT                    =
    IS_PRINT                          =
    IS_REPREP_ID                      =
    I_SCREEN_START_COLUMN            = 0
    I_SCREEN_START_LINE              = 0
    I_SCREEN_END_COLUMN              = 0
    I_SCREEN_END_LINE                = 0
    I_HTML_HEIGHT_TOP                = 0
    I_HTML_HEIGHT_END                = 0
    IT_ALV_GRAPHICS                  =
    IT_HYPERLINK                      =
    IT_ADD_FIELDCAT                  =
    IT_EXCEPT_QINFO                  =
    IR_SALV_FULLSCREEN_ADAPTER        =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER          =
    ES_EXIT_CAUSED_BY_USER            =
        TABLES
       t_outtab                          = IT_CHARG
          t_outtab                          = IT_STD_FINAL[]
    EXCEPTIONS
    PROGRAM_ERROR                    = 1
    OTHERS                            = 2
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
           WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "DISPLAY
    *&      Form  EVENTS
         text
    -->  p1        text
    <--  p2        text
    form EVENTS USING P_EVENTS TYPE slis_t_event.
      DATA: ls_event TYPE slis_alv_event.
      ls_event-name = 'TOP_OF_PAGE'.
      ls_event-form = 'TOP_OF_PAGE'.
      APPEND ls_event TO P_EVENTS.
    endform.                    " EVENTS
    *&      Form  TOP_OF_PAGE
         text
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = TOP.
    ENDFORM.                    "TOP_OF_PAGE
    *&      Form  LAYOUT
         text
    -->  p1        text
    <--  p2        text
    form LAYOUT .
    LAYOUT-ZEBRA = 'X'.
      LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
      LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
      APPEND LAYOUT." TO LAYOUT.
    endform.                    " LAYOUT
    *&      Form  EVENTS_1
         text
         -->P_EVENTS  text
    FORM EVENTS_1  USING    P_EVENTS TYPE slis_t_event.
      DATA: ls_event TYPE slis_alv_event.
      WRITE: SY-UNAME.
      ls_event-name = 'END_OF_PAGE'.
      ls_event-form = 'END_OF_PAGE'.
      APPEND ls_event TO P_EVENTS.
    ENDFORM.                    " EVENTS_1

  • Hi, my apple account is locked. I can't receive the verification email and I forgot the answers to the verification questions. I can't reset my account now. Please help me. Thank you very much.

    Hi, my apple account is locked. I can't receive the verification email and I forgot the answers to the verification questions. I can't reset my account now. Please help me. Thank you very much.

    After two years? No, not likely you are going to get it. Try contacting iTunes support: https://getsupport.apple.com/Issues.action

  • Can anyone please give me the logic for this....

    I have a database table and in it i have a field department code. now, that department code might have '00' or '   ' (blank) or anyother value. now i want to add up all the currency amounts with department code '00'  and '  ' (blank) which have same company code and currency type. I called all the entries with '00' into one internal table and enrties with '  ' (blank) to other internal table.
    can anyone give me the logic for adding all the entries at a time.
    thanks in advance.....

    HI Srinivas
    i have a solution for this question.
    Use At control break statement for this.
    Loop the internal table.
    Use at Event AT LAST. In that use SUM Statement. U will get sum of all the numeric fields.
    Or else u can use ON CHANGE OF Currency type
    then find the total amount by adding previouse value with ur current value.
    Like itab1-amount = total + itab1-amount.
    Appent this into ur internal or write it into ur report.
    Reward me if its useful.
    Regards
    Ravi

  • HT4436 I am using IOS 4.1 in Ipod touch. I would like to take my data back using icloud. I am not able to enable icloud in to my ipod touch. please help me for the same.

    I am using IOS 4.1 in Ipod touch. I would like to take my data back using icloud. I am not able to enable icloud in to my ipod touch. please help me for the same. Basically I am trying to take back to upgrade my ios to 5 or 6 version.

    You can't back up to iCloud until you update to iOS 5 or higher.  You will have to back up your iPod on your computer using iTunes.  Update iTunes on your computer to the latest version, then connect your iPod to your computer, open iTunes, if iTunes give you a pop-up asking if you want to update your iPod, decline.  Then click on the name of your iPod in iTunes, go to File>Devices>Transfer Purchases to transfer any purchased media to your iTunes library.  Next, go to the Summary tab of your iTunes sync settings and click on Back Up Now to back up your iPod on your computer.
    When it's done backing up, click on Check for Update (or Update) on the Summary tab of your iTunes sync settings.  Allow your iPod to update, and leave it connected to your computer.  At the end, it will restart and give you the option to restore to the iTunes backup you made earlier.  Choose this option to restore your backup and sync your apps and other iTuens media to your phone.
    This process is outlined in this article: http://support.apple.com/kb/HT4972, under "If you are attempting to update using a Mac or PC with which you normally sync".

  • My mac has started displaying a message stating "You need to restart your computer".  Web says it's kind of kernel panic! Is this a hardware problem? Do i need to contact my distributor? please help..it annoys me very much..

    My mac has started displaying a message stating "You need to restart your computer".  Web says it's kind of kernel panic! Is this a hardware problem? Do i need to contact my distributor? please help..it annoys me very much..

    Hello welcome to the ASC user to user forums
    please see these support documents
    http://support.apple.com/kb/TS2570
    http://support.apple.com/kb/TS1440
    http://support.apple.com/kb/HT1455
    http://support.apple.com/kb/ht3964
    http://support.apple.com/kb/HT1379
    http://support.apple.com/kb/ht1379
    http://support.apple.com/kb/HT1509

  • Could anybody give me the logic in sales report

    Hi All,
    I have a sales report on multprovider. In this sales report, I want to find out how many customers had done the transactions in day.
    <b>Two transactions for one customer in a day can be counted as one transaction</b>.
    Could anybody give me the logic to how to find the total number of customers made transaction in a day.
    Thanks in advance
    Narendra

    Hi Anil,
    Thanks alot for your answer.
    I am not sure, how the user is going to excute the report.however there is a <b>user entry Characterstic variable on 0CALDAY with selection options.</b>
    For example :
    If the user run the sales report  from Calander Day from 01-06-2007 to 06.06.2007.
    that means 4 business days (1st, 4th, 5th and 6th June). He wants to see the total number of customer done the transaction in a day separately, means 1st June how many customers, 4th June how many customers, 5th June how many customers, and 6th June how many customers.
    Based on the user selections,how many customers per day made the transactions. could you please send me the logic.
    My email Id is : [email protected]
    <b>Note : Query <---- multiprovider <---- Infocube <---- ODS</b>
    Thanks in advance
    Narendra

  • Can you please help me with validation logic for Events in Table maintenance generator

    Can you please help me with validation logic for Events in Table maintenance generator,i.e if i enter record in 1st internal table then automatically 2nd internal table should be updated.

    Hi Glen Anthony,
        Thanks for replay,
         I used foreign key relationship between those 2 internal tables....
    I used event 05: When creating a new entry. I want to know the custom logic by which my 2nd Internal table gets automatically updated when i update my 1st Internal table
    Thanks Glen.

  • Please help me on the  Product costing report .... URGENT!!!

    Hi,
    Can anybody help me with the logic. teh present logic is given below. But as per the new requirement in the Selection screen when I add Material as Select Options then Logic should "expecting to get the report either in Product Group or (single/multiple/range) Material" . Please reply ASAP.
    get the list of product groups based on the range entered by the user.
      SELECT KSTRG FROM CKPH INTO TABLE I_KSTRG
                   WHERE KSTRG IN SO_KSTRG.
    for each product explode the hierarchy get all sub product groups
      LOOP AT I_KSTRG.
        CLEAR I_CKPH. REFRESH I_CKPH.
        CALL FUNCTION 'K_CKPH_GET_HIERARCHY'
             EXPORTING
                  DATBI     = '99991231'
                  KSTRG     = I_KSTRG-KSTRG
             TABLES
                  CKPH_I    = I_CKPH
             EXCEPTIONS
                  NOT_FOUND = 1
                  OTHERS    = 2.
        IF SY-SUBRC EQ 0.
        save all unique product groups within the hierarchy.
          LOOP AT I_CKPH.
            MOVE 'EQ' TO F_KSTRG-OPTION.
            MOVE 'I' TO F_KSTRG-SIGN.
            MOVE I_CKPH-KSTRG TO F_KSTRG-LOW.
            COLLECT F_KSTRG.
            MOVE I_CKPH-KSTRG TO KSTRG-LEVEL2.
            MOVE I_CKPH-UEKTR TO KSTRG-LEVEL1.
            COLLECT KSTRG. CLEAR KSTRG.
          ENDLOOP.
        ENDIF.
      ENDLOOP.
    SORT KSTRG BY LEVEL2 LEVEL1.
    check if there are product groups extracted.
      CLEAR Z_LINES. DESCRIBE TABLE F_KSTRG LINES Z_LINES.
      IF Z_LINES GT 0.
    get the materials attached to each product group.
        SELECT KSTRG WERKS MATNR
          INTO CORRESPONDING FIELDS OF TABLE I_CKPE
          FROM CKPE
          WHERE KSTRG IN F_KSTRG
            AND WERKS = PA_WERKS.
      IF NOT I_CKPE[] IS INITIAL.
    get the order info order number & object number
          SELECT AFPOMATNR AUFKOBJNR
             INTO CORRESPONDING FIELDS OF TABLE I_AFPO
             FROM AFPO AS AFPO INNER JOIN AUFK AS AUFK
             ON AFPOAUFNR = AUFKAUFNR
             FOR ALL ENTRIES IN I_CKPE
           WHERE AFPO~MATNR = I_CKPE-MATNR.
        ENDIF.
        SORT I_AFPO BY MATNR.
        LOOP AT I_CKPE.
      get the division for the material.
          CLEAR: Z_SPART, MARA.
          SELECT SINGLE SPART
                   INTO Z_SPART
                   FROM MARA
                  WHERE MATNR = I_CKPE-MATNR
                    AND MTART = 'ZTFG'.
          MARA-SPART = Z_SPART.
        only proceed with processing if division is within users selection
          IF Z_SPART IN SO_SPART.
            LOOP AT I_AFPO WHERE MATNR = I_CKPE-MATNR.
              CLEAR: Z_MATERIAL_FLG, Z_EXPENSES_FLG, Z_SCRAP_FLG,
                     Z_OUTVAR_FLG, Z_ACTIVITY_FLG.
              LOOP AT I_COEP WHERE OBJNR = I_AFPO-OBJNR
                              AND  VRGNG NE 'KOAO'.   "changed by Kasturi
                PERFORM GET_DATA_FOR_REPORT TABLES I_DATA I_DATA_QTY.
                ENDLOOP.
              ENDLOOP.                       "afpo
            ENDIF.                           "division check
          ENDLOOP.                           "ckpe
        ELSE.
      no product groups extracted.
         MESSAGE i011.
      ENDIF.

    Has this been resolved?
    Your requirement is not clear. Could you please elaborate more about the output required?
    Thanks,
    F~Y

  • Please help me find the error in the annex VI,access

    Hello, everyone, this is a program about ACCESS, please help me find the error in the annex VI, why do I always run time error. Thank you very much.
    Attachments:
    write access test.vi ‏22 KB

    Thank you for your reply, I have an attachment process map, could you help me change it, I just want to put my number in the array can continue to update the database. And I want to create a table.
    this is my msn :[email protected]
    Waiting for your reply on line
    谢谢你的回复,我的附件中有程序图,能不能帮我改一下,我只是希望,把我的数组中的数能够持续的更新在数据库中。并且创建一个我想要的表。

  • Please help me update the vi from 5.1 to 8.6

    please help me update the vi and its sub vi  from 5.1 to 8.6  . thanks very much
    Attachments:
    NI-DSA Swept Sine Audio Tester13.llb ‏498 KB

    attached
    Attachments:
    NI-DSA Swept Sine Audio Tester13.llb ‏131 KB

Maybe you are looking for