Vendor Outstanding

Hi
We need to see the vendor out standing.
Is thr any t code or report will give vendor outstanding balace.?
Vijay

hi
u have to give all vendor u required and then execute FBL1n
u will get the report just change layout and totals u will get the result
to give no of user make a text file of all vendor u need report one down the other
then go to FBL1N
click on yellow arrow icon in front of vendor
now click on button import from text file (green button)
give path and then execute
regards
kunal

Similar Messages

  • Vendor Outstanding Report

    Dear
    I want to create one vendor Outstanding Report that contains total amount , balance , Please tell me what are the related table for this
    Regards
    Sarath P G

    Hi
    you can get the Bsik Bsak to get calculate balance by getting  the debit and credit   
    you will get  the total as well  .
    regards Nilesh

  • Vendor outstanding against Purchase order

    Hi Gurus,
                      Is there any standard report in SAP where we can get vendor outstanding against purchase order . (Purchase order made,miro also made , but payment is still due ). How can we find or track the pending payment of vendor against which purchase order.

    Hi
    No standard report displays your requirement.
    Prepare a Functional Specification(FS) as per your requirement and tell your ABAP Guy to prepare a Customized Report.
    Regards
    Venkat

  • Project Wise Vendor Outstanding Report

    Hi PS Experts ,
    We have implemented PS ,MM, FICO Module .
    My requirement is to show the Project Wise Vendor Outstanding Balances .
    The Item posted in BSIK and BSAK tables are not populated with  neither Network nor WBS Element .
    Could you please suggest me is there any additional functionality we have to  implement to  make the Network/WBS element populate into BSIK and BSAK  Line Items ..
    Sorry though the question might be  related to FI and PS , I decided to post in Project system area .
    Thanks in Advance ..
    Regards,
    Kishore.S

    Hi Shrikant,
    Thanks for your Reply .
    I checked 2 reports and no where the combination of Vendor and Project was seen .
    My requirement is to  display Vendor and Project wise reports .
    Example Let me  say like
    Project , Vendor , Amount Balance
    XX,Test,1000
    SubTota 1000
    XX,Tet1,1100
    Subtot 1100
    YY,Test,1000
    Subtot,1000
    Can you explain me some logic like where to  start(Tables Like BSIK,BSAK) and how to process data  ,like which table to  start and end with .
    Regards,
    Kishore.S

  • Vendor outstanding  - Material Group wise

    Dear experts,
    We have created one vendor account giving the recon account in Master as Sundry creditors.  But he will supplies the packing material, Raw Material, Stores material etc. 
    Requirement is we want to know the outstanding Packing material wise, Raw material wise and stores material wise.  Material groups has been created as Packing material, Raw material and Stores material.  Is there any way to find out the outstanding material group wise. 
    With single vendor master, can we able to take the outstanding material group wise.
    BSR

    ME2L is Material group wise vendor wise purchase order details tracking.
    But the requirement is Vendor outstanding  - Material groupwise if single vendor master is there.
    How best we can generate the report either in standard or ABAP.

  • Table to read vendor outstanding balance

    Hi,
      I want to make a report for vendor outstanding balabce on agin basis  so can u give the table name  in which i can found the vendor balance for which  still the payment is not made .
    regards,
      zafar

    Hi,
      Tnaks for reply  As per my requirement i can get all detail as per given BAPI and Table , i also want to add Vendor DC number or invoice number and PO number  ,  in which table i can get the PO number and DC number detail ref. to Open document of vendor.
    regards,
    zafar

  • Vendors outstanding report

    Hi,
    How can we find Vendors outstanding report from MM user side
    Thanks

    hi pls check defferent types of report regarding vendor outstanding report,
    MC$4 - Purchasing Values
    MC$6 - On-Time Delivery
    MC$8 - Quantity Reliability
    MC$: - Frequencies
    ME65 - Ranking Lists
    ME6H - Vendor Evaluation
    ME64 - Compare Evaluations
    regards,
    susanta

  • Vendor Outstanding Payment with reference to Purchase Order

    Is there any standard report to see outstanding payments for vendors? I wanted to see purchase orders no, miro no, vendor, clear amount, pending amount, clearing document etc. i tried FBL1N but i didnt get po no. there. Please Guide.

    There is no standard report which gives your requirement.  You will have to develop the report thru help of abaper or create a abap querry.

  • Vendor outstanding against the group of internal orders

    Dear friends
    I need help in the following reports. Is there any standard report available for the following:
    1) Amount paid against group of Internal orders
    2) Vendor wise outstanding against group of Internal orders.
    3) Total purchase orders raised against group of Internal orders.
    Thanks in advance

    -

  • Material wise vendor outstanding report.

    Dear All,
               We require to find out the outstanding amount payable for each type of Material Supplied. Is there any Standard report in SAP for it. We are using SAP 4.7.
    Thanks,

    Hi
    Your only choice is FBl1N report...
    You can see if the MATERIAL field is populated in the FBL1N..
    Else, you can write a small ABAP code in exit RGGBS000 (FI Substitution) and populate the Material No in the Vendor line item in some reference field
    Br, ajay M

  • VENDOR OUTSTANDING PAYMENTS

    Hi..
       Is there any standard report to see outstanding payments for vendors? I wanted to see purchase orders no, miro no, vendor, clear amount, pending amount, clearing document etc. i tried FBL1N but i didnt get po no. there. pls tel me. i 'll reward u point. it's urgent..
    thnx in advance.

    Hi,
    Following standard reports are used for vendor related information giving reports provide by SAP.
    RFKOPR10 is the program for vendor ageing
    Try this transaction S_ALR_87012078
    RFKRRANZ - Vendor Information System
    Please follow this path in the main SAP menu to find vendor-related reports:
    SAP menu --> Information Systems --> Accounting --> Financial Accounting --> Accounts Payable --> Report for Accounts Payable Accounting
    Check in the Master Data folder, the Vendor Balances folder, and the Vendors: Items folder. I hope this helps.
    Please try standard program RM06IL00 (transaction ME1L).
    There are SAP Standard reports like ME2L ,ME2M,just look at souce code.
    you will find more information on Tables and fields.
    FBL1N is a stanradr transaction and has accesses only transaction data, no master data of the vendor.
    REGARDS,
    GAURAV J.

  • Auto Email to Customers/Vendors agaisnt Outstanding  !!!

    Hi All,
    At presently one of my client use Alert on weekly basis for Customer / Vendor Outstanding. This send mail on assigned company user.
    Now my customer wants that this should send mail to Customer/Vendor (To : given udf field) automatically. I want to Implement it.
    Plz guide me.
    Regards,
    Kishor Patel

    Hi Kishore,
    Please check below links.
    Automatic Email sending from SAP B1
    Auto send Email through SAP B1
    Hope this help
    Regards::::
    Atul Chakraborty

  • Vendor aging report ,customer aging report

    hi to all
    can u pls what is vendor aging report . what is the purpose of it . can u pls some theoritical description
    i will definitely reward points pls its urgent  pls tell if there r any standard reports exists for theese . pls give some custom reports on theese  with coding.
      and for customer aging also
    pls.................

    Hi,
    Check the Vendor against report code:
    REPORT zvender_os NO STANDARD PAGE HEADING
    LINE-SIZE 132
    LINE-COUNT 65.
    Tables
    TABLES: bsik, "open items (A/C: Secondary Index for Customers)
    lfa1, "customer master
    lfb1,
    rf140, "temp stru (Work Fields for Corrence(SAPF140*))
    bsak, "cleared items (A/c Secnd Index for Cust(Clrms))
    skat.
    constants and variables
    TYPE-POOLS: slis.
    DATA: fieldcat TYPE slis_t_fieldcat_alv,
    fieldcat1 TYPE slis_t_fieldcat_alv,
    fieldcat_ln TYPE slis_fieldcat_alv,
    layout_in TYPE slis_layout_alv,
    layout_in1 TYPE slis_layout_alv,
    sortcat TYPE slis_t_sortinfo_alv,
    sortcat1 TYPE slis_t_sortinfo_alv,
    sortcat_ln LIKE LINE OF sortcat,
    eventcat1 TYPE slis_t_event,
    eventcat TYPE slis_t_event,
    eventcat_ln LIKE LINE OF eventcat,
    col_pos TYPE i.
    DATA: targ_month(2) TYPE n, "0001
    targ_year(4) TYPE n, "0001
    targ_mth_abs TYPE p, "0001
    doc_month(2) TYPE n, "0001
    doc_year(4) TYPE n, "0001
    doc_mth_abs TYPE p, "0001
    mth_result TYPE p, "0001
    doc_days TYPE p,
    targ_days TYPE p,
    addl_days TYPE p,
    ext_days TYPE p,
    v_days(3) TYPE c,
    v_kkber LIKE knkk-kkber.
    DATA:
    BEGIN OF inrec OCCURS 1000, "0001
    lifnr LIKE bsik-lifnr,
    belnr LIKE bsik-belnr,
    gjahr LIKE bsik-gjahr,
    bldat LIKE bsik-bldat,
    xblnr LIKE bsik-xblnr,
    blart LIKE bsik-blart,
    sgtxt LIKE bsik-sgtxt,
    shkzg LIKE bsik-shkzg,
    dmbtr LIKE bsik-dmbtr,
    zfbdt LIKE bsik-zfbdt,
    zbd1t LIKE bsik-zbd1t,
    zbd2t LIKE bsik-zbd2t,
    zbd3t LIKE bsik-zbd3t,
    zuonr LIKE bsik-zuonr,
    END OF inrec.
    DATA:
    BEGIN OF inrect OCCURS 1000, "0001
    lifnr LIKE bsik-lifnr,
    belnr LIKE bsik-belnr,
    gjahr LIKE bsik-gjahr,
    bldat LIKE bsik-bldat,
    xblnr LIKE bsik-xblnr,
    blart LIKE bsik-blart,
    sgtxt LIKE bsik-sgtxt,
    shkzg LIKE bsik-shkzg,
    dmbtr LIKE bsik-dmbtr,
    zfbdt LIKE bsik-zfbdt,
    zbd1t LIKE bsik-zbd1t,
    zbd2t LIKE bsik-zbd2t,
    zbd3t LIKE bsik-zbd3t,
    zuonr LIKE bsik-zuonr,
    END OF inrect,
    BEGIN OF t_item OCCURS 1000, " 0001
    lifnr LIKE bsik-lifnr,
    belnr LIKE bsik-belnr,
    gjahr LIKE bsik-gjahr,
    bldat LIKE bsik-bldat,
    xblnr LIKE bsik-xblnr,
    blart LIKE bsik-blart,
    sgtxt LIKE bsik-sgtxt,
    zfbdt LIKE bsik-zfbdt,
    dmbtr LIKE bsik-dmbtr,
    days(3) TYPE c,
    zuonr LIKE bsik-zuonr,
    END OF t_item,
    t_line LIKE t_item OCCURS 1000 WITH HEADER LINE, " 0001
    BEGIN OF itab OCCURS 1000,
    lifnr LIKE lfa1-lifnr,
    total LIKE bsik-dmbtr,
    zfuture LIKE bsik-dmbtr,
    zcurrent LIKE bsik-dmbtr,
    crbal LIKE bsik-dmbtr,
    30days LIKE bsik-dmbtr,
    60days LIKE bsik-dmbtr,
    90days LIKE bsik-dmbtr,
    99days LIKE bsik-dmbtr,
    120days LIKE bsik-dmbtr,
    180days LIKE bsik-dmbtr,
    365days LIKE bsik-dmbtr,
    bzirk LIKE knvv-bzirk,
    vkbur LIKE knvv-vkbur,
    vwerk LIKE knvv-vwerk,
    vkgrp LIKE knvv-vkgrp,
    klimk LIKE knkk-klimk,
    cashd LIKE knkk-cashd,
    grupp LIKE knkk-grupp,
    erdat LIKE lfa1-erdat,
    name1 LIKE lfa1-name1,
    name2 LIKE lfa1-name2,
    stras LIKE lfa1-stras,
    ort01 LIKE lfa1-ort01,
    telf1 LIKE lfa1-telf1,
    psort(10),
    sperr LIKE lfa1-sperr,
    totsal LIKE bsik-dmbtr,
    txt50 LIKE skat-txt50,
    gsber LIKE bsik-gsber,
    END OF itab.
    DATA: sel_tab TYPE TABLE OF rsparams WITH HEADER LINE,
    p_debit(1) TYPE c,
    p_credit(1) TYPE c.
    DATA: t_variant LIKE disvariant OCCURS 0 WITH HEADER LINE.
    parameters and select-options
    SELECTION-SCREEN BEGIN OF BLOCK blck0 WITH FRAME TITLE text-002.
    PARAMETERS: stida LIKE sy-datum DEFAULT sy-datum OBLIGATORY,
    p_bukrs LIKE t001-bukrs DEFAULT 'PIIL' MEMORY ID buk
    OBLIGATORY.
    P_BUKRS LIKE T001-BUKRS DEFAULT 'CC01' OBLIGATORY. "0003
    SELECT-OPTIONS: s_lifnr FOR bsik-lifnr ,
    s_vkbur FOR knvv-vkbur,
    s_vkgrp FOR knvv-vkgrp,
    s_bzirk FOR knvv-bzirk,
    s_konda FOR knvv-konda,
    s_kdgrp FOR knvv-kdgrp NO-DISPLAY ,
    s_kvgr2 FOR knvv-kvgr2 NO-DISPLAY ,
    s_kkber FOR knkk-kkber NO-DISPLAY ,
    s_grupp FOR knkk-grupp NO-DISPLAY ,
    s_ctlpc FOR knkk-ctlpc,
    s_akont FOR lfb1-akont,
    s_gsber FOR bsik-gsber.
    PARAMETERS: p_future AS CHECKBOX DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK blck0.
    SELECTION-SCREEN BEGIN OF BLOCK blck1 WITH FRAME TITLE text-002.
    PARAMETERS: p_abs RADIOBUTTON GROUP zrad,
    p_due RADIOBUTTON GROUP zrad DEFAULT 'X'.
    SELECTION-SCREEN END OF BLOCK blck1.
    *SELECTION-SCREEN BEGIN OF BLOCK blck2 WITH FRAME TITLE text-003.
    *PARAMETERS: c_run RADIOBUTTON GROUP zrac DEFAULT 'X',
    c_blk RADIOBUTTON GROUP zrac,
    c_all RADIOBUTTON GROUP zrac.
    *SELECTION-SCREEN END OF BLOCK blck2.
    *SELECTION-SCREEN BEGIN OF BLOCK blck3 WITH FRAME TITLE text-004.
    *PARAMETERS: p_debit AS CHECKBOX DEFAULT 'X' ,
    p_credit AS CHECKBOX DEFAULT 'X' NO-DISPLAY,
    *selection-screen end of block blck3.
    start-of-selection.
    START-OF-SELECTION.
    PERFORM BUILD_EVENTCAT.
    p_debit = 'X'.
    p_credit = 'X'.
    PERFORM get_customer_invoices.
    filter records based on selection criteria
    PERFORM filter_records.
    END-OF-SELECTION.
    PERFORM add_sort_field.
    PERFORM modify_field.
    PERFORM write_report.
    *& Form FILTER_RECORDS
    To collect all the required data from DB and store them in
    internal table.
    --> p1 text
    <-- p2 text
    FORM filter_records.
    delete records based on selection criteria
    LOOP AT itab.
    SELECT vkbur vkgrp vwerk erdat konda kdgrp bzirk kvgr2
    INTO (itab-vkbur, itab-vkgrp, itab-vwerk, knvv-erdat,
    knvv-konda, knvv-kdgrp,itab-bzirk,knvv-kvgr2)
    FROM knvv WHERE lifnr = itab-lifnr
    ORDER BY erdat DESCENDING.
    AKS :- Not Required for PI
    CASE itab-vkbur.
    WHEN 'SA1'.
    itab-vkbur = 'SF25'.
    WHEN 'QLD1'.
    itab-vkbur = 'SF23'.
    WHEN 'WA1'.
    itab-vkbur = 'SF26'.
    ENDCASE.
    AKS.
    EXIT.
    ENDSELECT.
    IF itab-vkbur IN s_vkbur AND
    itab-vkgrp IN s_vkgrp AND
    knvv-konda IN s_konda AND
    knvv-kdgrp IN s_kdgrp AND
    itab-bzirk IN s_bzirk AND
    knvv-kvgr2 IN s_kvgr2.
    ELSE.
    DELETE itab.
    CONTINUE.
    ENDIF.
    SELECT SINGLE klimk grupp cashd
    INTO (itab-klimk, itab-grupp, itab-cashd)
    FROM knkk WHERE lifnr = itab-lifnr
    AND kkber IN s_kkber
    AND ctlpc IN s_ctlpc
    AND grupp IN s_grupp.
    IF SY-SUBRC NE 0.
    DELETE ITAB.
    CONTINUE.
    ENDIF.
    SELECT SINGLE skat~txt50
    INTO (itab-txt50)
    FROM lfb1 INNER JOIN skat
    ON lfb1akont EQ skatsaknr
    WHERE lfb1~lifnr = itab-lifnr
    AND lfb1~akont IN s_akont
    AND skat~spras EQ 'EN'.
    IF sy-subrc NE 0.
    DELETE itab.
    CONTINUE.
    ENDIF.
    SELECT SINGLE name1 name2 telf1 erdat stras ort01 sperr
    INTO (itab-name1, itab-name2, itab-telf1,
    itab-erdat, itab-stras, itab-ort01, itab-sperr )
    FROM lfa1
    WHERE lifnr = itab-lifnr
    IF sy-subrc NE 0 .
    DELETE itab.
    CONTINUE.
    ENDIF.
    AKS For Filteration of Customer base on Block Area.
    IF c_all NE 'X'.
    IF c_run EQ 'X' AND itab-sperr EQ 'X'.
    DELETE itab.
    CONTINUE.
    ELSE.
    IF c_blk EQ 'X' AND itab-sperr NE 'X'.
    DELETE itab.
    CONTINUE.
    ENDIF.
    ENDIF.
    ENDIF.
    MODIFY itab.
    ENDLOOP.
    ENDFORM. " FILTER_RECORDS
    *& Form GET_CUSTOMER_INVOICES
    text
    --> p1 text
    <-- p2 text
    FORM get_customer_invoices.
    DATA:ztotcre LIKE bsik-dmbtr.
    DATA:ztotsal LIKE bsik-dmbtr.
    DATA: fsdate LIKE sy-datum.
    DATA: l_perio(4) TYPE c.
    MOVE stida TO rf140-stida.
    MOVE rf140-stida+4(2) TO targ_month.
    MOVE rf140-stida+0(4) TO targ_year.
    MOVE rf140-stida+6(2) TO targ_days.
    targ_mth_abs = ( targ_year * 12 ) + targ_month.
    CALL FUNCTION 'ZGET_PERIOD_FROM_DATE'
    EXPORTING
    i_date = stida
    IMPORTING
    e_perio = l_perio.
    CONCATENATE l_perio '0401' INTO fsdate.
    select open items.
    IF p_due EQ 'X'.
    SELECT lifnr belnr gjahr bldat xblnr blart sgtxt " 0001
    shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
    zuonr
    FROM bsik INTO TABLE inrect
    WHERE bukrs = p_bukrs
    AND budat LE stida
    AND lifnr IN s_lifnr
    AND gsber IN s_gsber
    AND umskz NE 'T'
    AND umskz NE 'F'
    AND umskz NE 'R'
    AND umskz NE 'P'
    AND umskz NE 'J'
    AND umskz NE 'L'.
    LOOP AT INREC.
    IF INREC-SHKZG = 'H'.
    INREC-DMBTR = INREC-DMBTR * -1.
    ENDIF.
    MOVE-CORRESPONDING INREC TO T_ITEM. " 0001
    PERFORM COLLECT_INVOICE USING INREC-lifnr INREC-DMBTR
    INREC-ZFBDT INREC-ZBD1T
    INREC-ZBD2T INREC-ZBD3T.
    APPEND T_ITEM.
    CLEAR T_ITEM.
    ENDLOOP.
    LOOP AT inrect.
    inrec-lifnr = inrect-lifnr.
    inrec-belnr = inrect-belnr.
    inrec-gjahr = inrect-gjahr.
    inrec-bldat = inrect-bldat.
    inrec-xblnr = inrect-xblnr.
    inrec-blart = inrect-blart.
    inrec-sgtxt = inrect-sgtxt.
    inrec-shkzg = inrect-shkzg.
    inrec-dmbtr = inrect-dmbtr.
    CALL FUNCTION 'NJ_CAL_DATE_IN_INTERVAL'
    EXPORTING
    date = inrect-zfbdt
    days = inrect-zbd1t
    months = 00
    signum = '+'
    years = 00
    IMPORTING
    calc_date = inrec-zfbdt.
    inrec-zbd1t = inrect-zbd1t.
    inrec-zbd2t = inrect-zbd2t.
    inrec-zbd3t = inrect-zbd3t.
    inrec-zuonr = inrect-zuonr.
    APPEND inrec.
    CLEAR inrec.
    ENDLOOP.
    ELSE.
    SELECT lifnr belnr gjahr bldat xblnr blart sgtxt " 0001
    shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
    zuonr
    FROM bsik INTO TABLE inrec
    WHERE bukrs = p_bukrs
    AND budat LE stida
    AND lifnr IN s_lifnr
    AND gsber IN s_gsber
    AND umskz NE 'T'
    AND umskz NE 'F'
    AND umskz NE 'R'
    AND umskz NE 'P'
    AND umskz NE 'J'
    AND umskz NE 'L'.
    ENDIF.
    SORT inrec BY lifnr shkzg zfbdt .
    LOOP AT inrec.
    AT NEW lifnr.
    For Customers Credit Balance Transaction to be display in Report
    End of Credit Balance
    ztotcre = 0.
    ztotsal = 0.
    ENDAT.
    IF inrec-shkzg = 'H'.
    inrec-dmbtr = inrec-dmbtr * -1.
    ztotcre = ztotcre + inrec-dmbtr.
    ELSE.
    IF inrec-blart = 'RV'.
    IF inrec-bldat GE fsdate.
    ztotsal = ztotsal + inrec-dmbtr.
    ENDIF.
    ENDIF.
    ztotcre = ztotcre + inrec-dmbtr.
    endif.
    IF p_debit EQ 'X'.
    IF ztotcre > 0.
    MOVE-CORRESPONDING inrec TO t_item. " 0001
    PERFORM collect_invoice USING inrec-lifnr ztotcre
    inrec-zfbdt inrec-zbd1t
    inrec-zbd2t inrec-zbd3t
    ztotsal.
    APPEND t_item.
    CLEAR t_item.
    ztotcre = 0.
    ztotsal = 0.
    ENDIF.
    ENDIF.
    ENDIF.
    IF p_credit EQ 'X'.
    AT END OF lifnr.
    IF ztotcre < 0.
    MOVE-CORRESPONDING inrec TO t_item. " 0001
    PERFORM collect_invoice USING inrec-lifnr ztotcre
    inrec-zfbdt inrec-zbd1t
    inrec-zbd2t inrec-zbd3t
    ztotsal.
    APPEND t_item.
    CLEAR t_item.
    ztotcre = 0.
    ztotsal = 0.
    APPEND t_item.
    CLEAR t_item.
    ENDIF.
    ENDAT.
    ENDIF.
    ENDLOOP.
    select cleared items
    IF p_due EQ 'X'.
    REFRESH inrect. CLEAR inrect.
    SELECT lifnr belnr gjahr bldat xblnr blart sgtxt
    shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
    zuonr
    FROM bsak INTO TABLE inrect
    WHERE bukrs = p_bukrs
    AND budat LE stida
    AND augdt > stida
    AND lifnr IN s_lifnr
    AND gsber IN s_gsber
    REFRESH inrec. CLEAR inrec.
    LOOP AT inrect.
    inrec-lifnr = inrect-lifnr.
    inrec-belnr = inrect-belnr.
    inrec-gjahr = inrect-gjahr.
    inrec-bldat = inrect-bldat.
    inrec-xblnr = inrect-xblnr.
    inrec-blart = inrect-blart.
    inrec-sgtxt = inrect-sgtxt.
    inrec-shkzg = inrect-shkzg.
    inrec-dmbtr = inrect-dmbtr.
    CALL FUNCTION 'NJ_CAL_DATE_IN_INTERVAL'
    EXPORTING
    date = inrect-zfbdt
    days = inrect-zbd1t
    months = 00
    signum = '+'
    years = 00
    IMPORTING
    calc_date = inrec-zfbdt.
    inrec-zbd1t = inrect-zbd1t.
    inrec-zbd2t = inrect-zbd2t.
    inrec-zbd3t = inrect-zbd3t.
    inrec-zuonr = inrect-zuonr.
    APPEND inrec.
    CLEAR inrec.
    ENDLOOP.
    ELSE.
    REFRESH inrec. CLEAR inrec.
    SELECT lifnr belnr gjahr bldat xblnr blart sgtxt
    shkzg dmbtr zfbdt zbd1t zbd2t zbd3t
    zuonr
    FROM bsak INTO TABLE inrec
    WHERE bukrs = p_bukrs
    AND budat LE stida
    AND augdt > stida
    AND lifnr IN s_lifnr
    AND gsber IN s_gsber
    ENDIF.
    SORT inrec BY lifnr shkzg zfbdt .
    LOOP AT inrec.
    AT NEW lifnr.
    ztotcre = 0.
    ztotsal = 0.
    ENDAT.
    IF inrec-shkzg = 'H'.
    inrec-dmbtr = inrec-dmbtr * -1.
    ztotcre = ztotcre + inrec-dmbtr.
    ELSE.
    IF inrec-blart = 'RV'.
    IF inrec-bldat GE fsdate.
    ztotsal = ztotsal + inrec-dmbtr.
    ENDIF.
    ENDIF.
    ztotcre = ztotcre + inrec-dmbtr.
    endif.
    IF p_debit EQ 'X'.
    IF ztotcre > 0.
    MOVE-CORRESPONDING inrec TO t_item. " 0001
    PERFORM collect_invoice USING inrec-lifnr ztotcre
    inrec-zfbdt inrec-zbd1t
    inrec-zbd2t inrec-zbd3t
    ztotsal.
    APPEND t_item.
    CLEAR t_item.
    ztotcre = 0.
    ztotsal = 0.
    ENDIF.
    ENDIF.
    ENDIF.
    IF p_credit EQ 'X'.
    AT END OF lifnr.
    IF ztotcre < 0.
    MOVE-CORRESPONDING inrec TO t_item. " 0001
    PERFORM collect_invoice USING inrec-lifnr ztotcre
    inrec-zfbdt inrec-zbd1t
    inrec-zbd2t inrec-zbd3t
    ztotsal.
    APPEND t_item.
    CLEAR t_item.
    ztotcre = 0.
    ztotsal = 0.
    APPEND t_item.
    CLEAR t_item.
    ENDIF.
    ENDAT. " 0001
    ENDIF.
    ENDLOOP.
    ENDFORM. " GET_CUSTOMER_INVOICES
    *& Form COLLECT_INVOICE
    text
    -->P_bsik_lifnr text
    -->P_bsik_DMBTR text
    -->P_bsik_ZFBDT text
    -->P_bsik_ZFBDT1 text
    -->P_bsik_ZFBDT2 text
    -->P_bsik_ZFBDT3 text
    FORM collect_invoice USING pp_lifnr
    pp_dmbtr
    pp_zfbdt
    pp_zbd1t
    pp_zbd2t
    pp_zbd3t
    pp_ztotsal.
    doc_month = pp_zfbdt+4(2).
    doc_year = pp_zfbdt+0(4).
    doc_mth_abs = ( doc_year * 12 ) + doc_month.
    mth_result = ( targ_mth_abs - doc_mth_abs ).
    logic given by Mr. Ashok Singhvi
    doc_days = pp_zfbdt+6(2).
    addl_days = ( doc_days - targ_days ).
    IF addl_days <= 0.
    ADD 1 TO mth_result.
    ENDIF.
    IF NOT pp_zbd3t IS INITIAL.
    MOVE pp_zbd3t TO ext_days.
    ELSEIF NOT pp_zbd2t IS INITIAL.
    MOVE pp_zbd2t TO ext_days.
    ELSEIF NOT pp_zbd1t IS INITIAL.
    MOVE pp_zbd1t TO ext_days.
    ELSE.
    CLEAR ext_days.
    ENDIF.
    CHECK with Andrew whether this is working or not
    if extended payment terms exist, subtract no of mths from mth_result
    IF NOT ext_days IS INITIAL.
    CASE ext_days.
    WHEN 30.
    SUBTRACT 1 FROM mth_result.
    WHEN 60.
    SUBTRACT 2 FROM mth_result.
    WHEN 90.
    SUBTRACT 3 FROM mth_result.
    WHEN 120.
    SUBTRACT 4 FROM mth_result.
    ENDCASE.
    ENDIF.
    change to key date
    IF pp_dmbtr > 0.
    IF p_future = 'X'. " 0001
    IF mth_result <= 0.
    itab-zcurrent = pp_dmbtr.
    t_item-days = 'CUR'.
    ELSEIF mth_result = 1.
    itab-30days = pp_dmbtr.
    t_item-days = '30D'.
    ELSEIF mth_result = 2.
    itab-60days = pp_dmbtr.
    t_item-days = '60D'.
    ELSEIF mth_result = 3.
    itab-90days = pp_dmbtr.
    t_item-days = '90D'.
    ELSEIF mth_result > 3 AND mth_result <= 4 .
    itab-99days = pp_dmbtr.
    t_item-days = '99D'.
    ELSEIF mth_result > 4 AND mth_result <= 6 .
    itab-120days = pp_dmbtr.
    t_item-days = '120D'.
    ELSEIF mth_result > 6 AND mth_result <= 12 .
    itab-180days = pp_dmbtr.
    t_item-days = '180D'.
    ELSEIF mth_result > 12 .
    itab-365days = pp_dmbtr.
    t_item-days = '365D'.
    ENDIF.
    ELSE.
    IF mth_result < 0.
    itab-zfuture = pp_dmbtr.
    t_item-days = 'FUT'.
    ELSEIF mth_result = 0.
    itab-zcurrent = pp_dmbtr.
    t_item-days = 'CUR'.
    ELSEIF mth_result = 1.
    itab-30days = pp_dmbtr.
    t_item-days = '30D'.
    ELSEIF mth_result = 2.
    itab-60days = pp_dmbtr.
    t_item-days = '60D'.
    ELSEIF mth_result = 3.
    itab-90days = pp_dmbtr.
    t_item-days = '90D'.
    ELSEIF mth_result > 3 AND mth_result <= 4 .
    itab-99days = pp_dmbtr.
    t_item-days = '99D'.
    ELSEIF mth_result > 4 AND mth_result <= 6 .
    itab-120days = pp_dmbtr.
    t_item-days = '120D'.
    ELSEIF mth_result > 6 AND mth_result <= 12 .
    itab-180days = pp_dmbtr.
    t_item-days = '180D'.
    ELSEIF mth_result > 12 .
    itab-365days = pp_dmbtr.
    t_item-days = '365D'.
    ENDIF.
    ENDIF. " 0001
    itab-crbal = 0.
    itab-total = pp_dmbtr.
    ELSE.
    IF p_future = 'X'. " 0001
    IF mth_result <= 0.
    itab-zcurrent = pp_dmbtr.
    t_item-days = 'CUR'.
    ELSEIF mth_result = 1.
    itab-30days = pp_dmbtr.
    t_item-days = '30D'.
    ELSEIF mth_result = 2.
    itab-60days = pp_dmbtr.
    t_item-days = '60D'.
    ELSEIF mth_result = 3.
    itab-90days = pp_dmbtr.
    t_item-days = '90D'.
    ELSEIF mth_result > 3 AND mth_result <= 4 .
    itab-99days = pp_dmbtr.
    t_item-days = '99D'.
    ELSEIF mth_result > 4 AND mth_result <= 6 .
    itab-120days = pp_dmbtr.
    t_item-days = '120D'.
    ELSEIF mth_result > 6 AND mth_result <= 12 .
    itab-180days = pp_dmbtr.
    t_item-days = '180D'.
    ELSEIF mth_result > 12 .
    itab-365days = pp_dmbtr.
    t_item-days = '365D'.
    ENDIF.
    ELSE.
    IF mth_result < 0.
    itab-zfuture = pp_dmbtr.
    t_item-days = 'FUT'.
    ELSEIF mth_result = 0.
    itab-zcurrent = pp_dmbtr.
    t_item-days = 'CUR'.
    ELSEIF mth_result = 1.
    itab-30days = pp_dmbtr.
    t_item-days = '30D'.
    ELSEIF mth_result = 2.
    itab-60days = pp_dmbtr.
    t_item-days = '60D'.
    ELSEIF mth_result = 3.
    itab-90days = pp_dmbtr.
    t_item-days = '90D'.
    ELSEIF mth_result > 3 AND mth_result <= 4 .
    itab-99days = pp_dmbtr.
    t_item-days = '99D'.
    ELSEIF mth_result > 4 AND mth_result <= 6 .
    itab-120days = pp_dmbtr.
    t_item-days = '120D'.
    ELSEIF mth_result > 6 AND mth_result <= 12 .
    itab-180days = pp_dmbtr.
    t_item-days = '180D'.
    ELSEIF mth_result > 12 .
    itab-365days = pp_dmbtr.
    t_item-days = '365D'.
    ENDIF.
    ENDIF. " 0001
    itab-total = pp_dmbtr.
    itab-crbal = 0.
    ENDIF.
    itab-lifnr = pp_lifnr.
    itab-totsal = pp_ztotsal.
    COLLECT itab.
    CLEAR itab.
    ENDFORM. " COLLECT_INVOICE
    *& Form ADD_SORT_FIELD
    text
    --> p1 text
    <-- p2 text
    FORM add_sort_field.
    DATA: l_amount(9) TYPE n.
    IF p_future = 'X'.
    LOOP AT itab.
    l_amount = 999999999.
    IF itab-365days > 0.
    l_amount = l_amount - itab-365days.
    CONCATENATE 'A' l_amount INTO itab-psort.
    ELSEIF itab-180days > 0.
    l_amount = l_amount - itab-180days.
    CONCATENATE 'B' l_amount INTO itab-psort.
    ELSEIF itab-120days > 0.
    l_amount = l_amount - itab-120days.
    CONCATENATE 'C' l_amount INTO itab-psort.
    ELSEIF itab-99days > 0.
    l_amount = l_amount - itab-99days.
    CONCATENATE 'D' l_amount INTO itab-psort.
    ELSEIF itab-90days > 0.
    l_amount = l_amount - itab-90days.
    CONCATENATE 'E' l_amount INTO itab-psort.
    ELSEIF itab-60days > 0.
    l_amount = l_amount - itab-60days.
    CONCATENATE 'F' l_amount INTO itab-psort.
    ELSEIF itab-30days > 0.
    l_amount = l_amount - itab-30days.
    CONCATENATE 'G' l_amount INTO itab-psort.
    ELSEIF itab-zcurrent > 0.
    l_amount = l_amount - itab-zcurrent.
    CONCATENATE 'H' l_amount INTO itab-psort.
    ELSEif itab-zfuture > 0.
    L_AMOUNT = L_AMOUNT - ITAB-zfuture.
    CONCATENATE 'F' L_AMOUNT INTO ITAB-PSORT.
    ELSE.
    l_amount = ABS( itab-total ).
    CONCATENATE 'I' l_amount INTO itab-psort.
    ENDIF.
    MODIFY itab.
    ENDLOOP.
    ELSE.
    LOOP AT itab.
    l_amount = 999999999.
    IF itab-365days > 0.
    l_amount = l_amount - itab-365days.
    CONCATENATE 'A' l_amount INTO itab-psort.
    ELSEIF itab-180days > 0.
    l_amount = l_amount - itab-180days.
    CONCATENATE 'B' l_amount INTO itab-psort.
    ELSEIF itab-120days > 0.
    l_amount = l_amount - itab-120days.
    CONCATENATE 'C' l_amount INTO itab-psort.
    ELSEIF itab-99days > 0.
    l_amount = l_amount - itab-99days.
    CONCATENATE 'D' l_amount INTO itab-psort.
    ELSEIF itab-90days > 0.
    l_amount = l_amount - itab-90days.
    CONCATENATE 'E' l_amount INTO itab-psort.
    ELSEIF itab-60days > 0.
    l_amount = l_amount - itab-60days.
    CONCATENATE 'F' l_amount INTO itab-psort.
    ELSEIF itab-30days > 0.
    l_amount = l_amount - itab-30days.
    CONCATENATE 'G' l_amount INTO itab-psort.
    ELSEIF itab-zcurrent > 0.
    l_amount = l_amount - itab-zcurrent.
    CONCATENATE 'H' l_amount INTO itab-psort.
    ELSEIF itab-zfuture > 0.
    l_amount = l_amount - itab-zfuture.
    CONCATENATE 'I' l_amount INTO itab-psort.
    ELSE.
    l_amount = ABS( itab-total ).
    CONCATENATE 'J' l_amount INTO itab-psort.
    ENDIF.
    MODIFY itab.
    ENDLOOP.
    ENDIF.
    ENDFORM. " ADD_SORT_FIELD
    *& Form WRITE_REPORT
    text
    --> p1 text
    <-- p2 text
    FORM write_report.
    PERFORM build_fieldcat.
    PERFORM build_sortcat.
    PERFORM build_eventcat.
    PERFORM build_layout.
    PERFORM start_list_viewer.
    ENDFORM. " WRITE_REPORT
    *& Form BUILD_FIELDCAT
    text
    --> p1 text
    <-- p2 text
    FORM build_fieldcat.
    lifnr
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'lfa1'.
    fieldcat_ln-fieldname = 'LIFNR'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    APPEND fieldcat_ln TO fieldcat.
    Name1
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'lfa1'.
    fieldcat_ln-fieldname = 'NAME1'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-seltext_l = 'Name'.
    APPEND fieldcat_ln TO fieldcat.
    City Details
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'lfa1'.
    fieldcat_ln-fieldname = 'ORT01'.
    fieldcat_ln-seltext_l = 'City'.
    fieldcat_ln-col_pos = col_pos.
    APPEND fieldcat_ln TO fieldcat.
    Credit Limit
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNKK'.
    fieldcat_ln-fieldname = 'KLIMK'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-emphasize = 'C41'.
    APPEND fieldcat_ln TO fieldcat.
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = 'CRBAL'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-seltext_l = 'Cr. Bal.'.
    fieldcat_ln-seltext_m = 'Cr. Bal.'.
    fieldcat_ln-seltext_s = 'Cr. Bal.'.
    APPEND fieldcat_ln TO fieldcat.
    Total Amount
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-fieldname = 'TOTAL'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-seltext_l = 'Out.St.Amt.'.
    fieldcat_ln-seltext_m = 'Out.St.Amt.'.
    fieldcat_ln-seltext_s = 'Out.St.Amt.'.
    fieldcat_ln-ref_tabname = 'zbsik'.
    fieldcat_ln-ref_fieldname = 'ZDMBTR'.
    APPEND fieldcat_ln TO fieldcat.
    IF p_future NE 'X'.
    Future
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = 'ZFUTURE'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = 'Future Due'.
    fieldcat_ln-seltext_m = 'Future Due'.
    fieldcat_ln-seltext_s = 'Future Due'.
    APPEND fieldcat_ln TO fieldcat.
    ENDIF.
    Current
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = 'ZCURRENT'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = 'Normal Due'.
    fieldcat_ln-seltext_m = 'Normal Due'.
    fieldcat_ln-seltext_s = 'Normal Due'.
    APPEND fieldcat_ln TO fieldcat.
    30 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '30DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '0-30 Days'.
    fieldcat_ln-seltext_m = '0-30 Days'.
    fieldcat_ln-seltext_s = '0-30 Days'.
    APPEND fieldcat_ln TO fieldcat.
    60 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '60DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '31-60 Days'.
    fieldcat_ln-seltext_m = '31-60 Days'.
    fieldcat_ln-seltext_s = '31-60 Days'.
    APPEND fieldcat_ln TO fieldcat.
    90 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '90DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '61-90 Days'.
    fieldcat_ln-seltext_m = '61-90 Days'.
    fieldcat_ln-seltext_s = '61-90 Days'.
    APPEND fieldcat_ln TO fieldcat.
    99 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '99DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '91-120 Days'.
    fieldcat_ln-seltext_m = '91-120 Days'.
    fieldcat_ln-seltext_s = '91-120 Days'.
    APPEND fieldcat_ln TO fieldcat.
    *120Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '120DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '121-180 Days'.
    fieldcat_ln-seltext_m = '121-180 Days'.
    fieldcat_ln-seltext_s = '121-180 Days'.
    APPEND fieldcat_ln TO fieldcat.
    *180 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '180DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '181-365 Days'.
    fieldcat_ln-seltext_m = '181-365 Days'.
    fieldcat_ln-seltext_s = '181-365 Days'.
    APPEND fieldcat_ln TO fieldcat.
    *365 Days
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = '365DAYS'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = '>365 Days'.
    fieldcat_ln-seltext_m = '>365 Days'.
    fieldcat_ln-seltext_s = '>365 Days'.
    APPEND fieldcat_ln TO fieldcat.
    Last Payment Date
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNKK'.
    fieldcat_ln-fieldname = 'CASHD'.
    fieldcat_ln-col_pos = col_pos.
    APPEND fieldcat_ln TO fieldcat.
    Street Name
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME = 'lfa1'.
    FIELDCAT_LN-FIELDNAME = 'STRAS'.
    FIELDCAT_LN-COL_POS = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    Telephone
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME = 'lfa1'.
    FIELDCAT_LN-FIELDNAME = 'TELF1'.
    FIELDCAT_LN-COL_POS = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    Credit Group
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME = 'KNKK'.
    FIELDCAT_LN-FIELDNAME = 'GRUPP'.
    FIELDCAT_LN-COL_POS = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    *Sales District
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNVV'.
    fieldcat_ln-fieldname = 'BZIRK'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-seltext_l = 'S_Distt'.
    fieldcat_ln-seltext_m = 'S_Distt'.
    fieldcat_ln-seltext_s = 'S_Distt'.
    APPEND fieldcat_ln TO fieldcat.
    Sales Office
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNVV'.
    fieldcat_ln-fieldname = 'VKBUR'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-seltext_l = 'S_Off'.
    fieldcat_ln-seltext_m = 'S_Off'.
    fieldcat_ln-seltext_s = 'S_Off'.
    APPEND fieldcat_ln TO fieldcat.
    Cust Creat Date
    ADD 1 TO COL_POS.
    CLEAR FIELDCAT_LN.
    FIELDCAT_LN-REF_TABNAME = 'lfa1'.
    FIELDCAT_LN-FIELDNAME = 'ERDAT'.
    FIELDCAT_LN-COL_POS = COL_POS.
    APPEND FIELDCAT_LN TO FIELDCAT.
    Del Plant
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNVV'.
    fieldcat_ln-fieldname = 'VWERK'.
    fieldcat_ln-col_pos = col_pos.
    APPEND fieldcat_ln TO fieldcat.
    Sales Group
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'KNVV'.
    fieldcat_ln-fieldname = 'VKGRP'.
    fieldcat_ln-col_pos = col_pos.
    APPEND fieldcat_ln TO fieldcat.
    Sort Criteria
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'lifnr'.
    fieldcat_ln-fieldname = 'PSORT'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-seltext_l = 'Sort Field'.
    fieldcat_ln-seltext_m = 'Sort Field'.
    fieldcat_ln-seltext_s = 'Sort Field'.
    APPEND fieldcat_ln TO fieldcat.
    Sales of Customer
    ADD 1 TO col_pos.
    CLEAR fieldcat_ln.
    fieldcat_ln-ref_tabname = 'bsik'.
    fieldcat_ln-ref_fieldname = 'DMBTR'.
    fieldcat_ln-fieldname = 'TOTSAL'.
    fieldcat_ln-col_pos = col_pos.
    fieldcat_ln-do_sum = 'X'.
    fieldcat_ln-hotspot = 'X'.
    fieldcat_ln-emphasize = 'C41'.
    fieldcat_ln-seltext_l = 'Total Sales'.
    fieldcat_ln-seltext_m = 'Total Sales'.
    fieldcat_ln-seltext_s = 'Total Sales'.
    APPEND fieldcat_ln TO fieldcat.
    ENDFORM. " BUILD_FIELDCAT
    *& Form BUILD_SORTCAT
    text
    --> p1 text
    <-- p2 text
    FORM build_sortcat.
    SORTCAT_LN-SPOS = '1'.
    sortcat_ln-spos = '2'. " 0001
    sortcat_ln-fieldname = 'PSORT'.
    sortcat_ln-up = 'X'. " 0001
    sortcat_ln-subtot = 'X'.
    APPEND sortcat_ln TO sortcat.
    CLEAR sortcat_ln.
    SORTCAT_LN-SPOS = '2'.
    SORTCAT_LN-FIELDNAME = 'lifnr'.
    sortcat_ln-spos = '1'. " 0001
    sortcat_ln-fieldname = 'NAME1'. " 0001
    sortcat_ln-up = 'X'.
    APPEND sortcat_ln TO sortcat.
    ENDFORM. " BUILD_SORTCAT
    *& Form BUILD_EVENTCAT
    text
    --> p1 text
    <-- p2 text
    FORM build_eventcat.
    eventcat_ln-name = 'TOP_OF_PAGE'.
    eventcat_ln-form = 'PAGE_HEADER'.
    APPEND eventcat_ln TO eventcat.
    ENDFORM. " BUILD_EVENTCAT
    *& Form BUILD_LAYOUT
    text
    --> p1 text
    <-- p2 text
    FORM build_layout.
    layout_in-colwidth_optimize = 'X'.
    layout_in-no_hotspot = 'X'.
    layout_in-zebra = 'X'.
    layout_in-get_selinfos = 'X'.
    ENDFORM. " BUILD_LAYOUT
    *& Form START_LIST_VIEWER
    text
    --> p1 text
    <-- p2 text
    FORM start_list_viewer.
    DATA: pgm LIKE sy-repid.
    pgm = sy-repid.
    if t_variant[] is initial.
    t_variant-report = pgm.
    t_variant-variant = '/ATB'.
    t_variant-TEXT = '/ATB'.
    t_variant-DEPENDVARS = 'S'.
    append t_variant.
    clear t_variant.
    endif.
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    i_callback_program = pgm
    i_callback_user_command = 'USER_COMMAND'
    it_fieldcat = fieldcat
    it_sort = sortcat
    is_layout = layout_in
    i_save = 'A'
    IS_VARIANT = t_variant
    it_events = eventcat
    TABLES
    t_outtab = itab
    EXCEPTIONS
    OTHERS = 2.
    ENDFORM. " START_LIST_VIEWER
    FORM user_command USING ucomm LIKE sy-ucomm
    selfield TYPE slis_selfield.
    DATA l_lifnr(10) TYPE n.
    READ TABLE itab INDEX selfield-tabindex.
    CHECK sy-subrc = 0.
    CASE ucomm.
    WHEN '&IC1'.
    CASE selfield-sel_tab_field.
    WHEN 'ITAB-LIFNR'.
    SET PARAMETER ID 'LIF' FIELD itab-lifnr.
    SET PARAMETER ID 'BUK' FIELD p_bukrs.
    IF itab-lifnr CO '0123456789 '.
    l_lifnr = itab-lifnr.
    itab-lifnr = l_lifnr.
    ENDIF.
    SELECT SINGLE kkber INTO knkk-kkber
    FROM knkk WHERE lifnr = itab-lifnr.
    IF sy-subrc EQ 0.
    v_kkber = knkk-kkber.
    ELSE.
    CLEAR v_kkber.
    ENDIF.
    REFRESH sel_tab[].
    MOVE: 'lifnr' TO sel_tab-selname,
    'P' TO sel_tab-kind, " PARAMETER
    itab-lifnr TO sel_tab-low.
    APPEND sel_tab.
    CLEAR sel_tab.
    MOVE: 'KKBER' TO sel_tab-selname,
    'P' TO sel_tab-kind, " PARAMETER
    v_kkber TO sel_tab-low.
    APPEND sel_tab.
    CLEAR sel_tab.
    SUBMIT rfdkli41
    USING SELECTION-SET 'VAR1'
    WITH SELECTION-TABLE sel_tab
    AND RETURN.
    CALL TRANSACTION 'XK03' AND SKIP FIRST SCREEN.
    WHEN 'ITAB-ZCURRENT'. " 0001
    v_days = 'CUR'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-ZFUTURE'.
    v_days = 'FUT'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-30DAYS'.
    v_days = '30D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-60DAYS'.
    v_days = '60D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-90DAYS'.
    v_days = '90D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-99DAYS'.
    v_days = '99D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-120DAYS'.
    v_days = '120D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-180DAYS'.
    v_days = '180D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-365DAYS'.
    v_days = '365D'.
    PERFORM display_line_item_level.
    WHEN 'ITAB-TOTAL'.
    v_days = ' '.
    PERFORM display_line_item_level. " 0001
    ENDCASE.
    ENDCASE.
    ENDFORM. "USER_COMMAND
    PAGE_HEADER
    FORM page_header.
    WRITE:/115 'Time:', sy-timlo.
    WRITE: /115 'Date:', sy-datum.
    WRITE: /52 'Customer Outstanding Agewise ', "0002
    115 'Page:', sy-pagno.
    SKIP.
    IF p_abs EQ 'X'.
    WRITE: /52 'Vendor Outstanding Agewise (Absolute Aging)',
    115 'Page:', sy-pagno.
    ELSE.
    WRITE: /52 'Vendor Outstanding Agewise (Due Date Aging)',
    115 'Page:', sy-pagno.
    ENDIF.
    SKIP.
    ULINE /(132).
    WRITE: /02 'Open Items as of:', stida.
    IF NOT s_vkgrp[] IS INITIAL.
    IF s_vkgrp-high IS INITIAL.
    WRITE: 52 'Sales Group :',s_vkgrp-low.
    ELSE.
    WRITE: 52 'Sales Group :',s_vkgrp-low,'to',s_vkgrp-high.
    ENDIF.
    ELSE.
    WRITE: 52 'Sales Group : All'.
    ENDIF.
    IF NOT s_grupp[] IS INITIAL.
    IF s_grupp-high IS INITIAL.
    WRITE: 107 'Credit group :',s_grupp-low.
    ELSE.
    WRITE: 107 'Credit group :',s_grupp-low,' to',s_grupp-high.
    ENDIF.
    ELSE.
    WRITE: 107 'Credit Group : All'.
    ENDIF.
    WRITE: /02 'Comapany Code :', p_bukrs.
    IF NOT s_konda[] IS INITIAL.
    IF s_konda-high IS INITIAL.
    WRITE: 52 'Price group :',s_konda-low.
    ELSE.
    WRITE: 52 'Price group :',s_konda-low,' to',s_konda-high.
    ENDIF.
    ELSE.
    WRITE: 52 'Price Group : All'.
    ENDIF.
    IF NOT s_ctlpc[] IS INITIAL.
    IF s_ctlpc-high IS INITIAL.
    WRITE: 107 'Risk category:',s_ctlpc-low.
    ELSE.
    WRITE: 107 'Risk category:',s_ctlpc-low,' to',s_ctlpc-high.
    ENDIF.
    ELSE.
    WRITE: 107 'Risk category: All'.
    ENDIF.
    IF NOT s_vkbur[] IS INITIAL.
    IF s_vkbur-high IS INITIAL.
    WRITE:/02 'Sales Office :',s_vkbur-low.
    ELSE.
    WRITE:/02 'Sales Office :',s_vkbur-low,' to',s_vkbur-high.
    ENDIF.
    ELSE.
    WRITE:/02 'Sales Office : All'.
    ENDIF.
    IF NOT s_kdgrp[] IS INITIAL.
    IF s_kdgrp-high IS INITIAL.
    WRITE: 52 'Customer group :',s_kdgrp-low.
    ELSE.
    WRITE: 52 'Customer group :',s_kdgrp-low,' to',s_kdgrp-high.
    ENDIF.
    ELSE.
    WRITE: 52 'Customer group : All'.
    ENDIF.
    IF NOT s_ktokd[] IS INITIAL.
    IF s_ktokd-high IS INITIAL.
    WRITE: 107 'Account Group:',s_ktokd-low.
    ELSE.
    WRITE: 107 'Account Group:',s_ktokd-low,' to',s_ktokd-high.
    ENDIF.
    ELSE.
    WRITE: 107 'Account Group: All'.
    ENDIF.
    IF NOT s_lifnr[] IS INITIAL.
    IF s_lifnr-high IS INITIAL.
    WRITE: /02 'Vendor No :',s_lifnr-low.
    ELSE.
    WRITE: /02 'Vendor No :',s_lifnr-low,' to',s_lifnr-high.
    ENDIF.
    ELSE.
    WRITE: /02 'Vendor No : All'.
    ENDIF.
    IF NOT s_kkber[] IS INITIAL.
    IF s_kkber-high IS INITIAL.
    WRITE: 52 'Credit Control Area:',s_kkber-low.
    ELSE.
    WRITE: 52 'Credit Control Area:',s_kkber-low,' to',s_kkber-high.

  • Vendor Ageing formula

    Dear All,
    What is the formula for Vendor Ageing reports?
    any query is available in BI?
    Detaiils Base on the Base line Date,
    Regards,
    Vijay A Pokale
    SAP BI

    Vijay,
    Vendor ageing refers to the following .....
    Days outstanding for payments to be made to vendors ... usually the calculation for the same would be
    Vendor aeging is calculated on the basis of the purchases made from the vendor or average daily sales...
    It can be calculated as Vendor outstanding payments / average daily purchases made to the vendor. The report is to understand if the payments to the vendors are being made according to their payment terms or not.
    The formula might vary across organizations but then the concept is the same....

  • WBS or Proj.Defination at Vendor Line item

    Hi,
    can anybody help me by providing information as -
    IS it possible to populate the WBS or project defination field to Vendor line item during logistic invoice verification.
    as in our case we need the project wise vendor outstanding.
    Or is there any other report thru which we can get the same report.
    Thanks & Regards
    Mahesh

    Hi Mahesh,
    In MIRO while entering Logisitics Invoice Verification, go to Details Tab and enter WBS number in Assignment.
    It says "The assignment number is an additional information reference field in the line item.
    The program can display the account line items sorted according to the content of this field.
    You can either enter the field contents manually, or have the system define them automatically in the master record via the sort key field.
    Regards
    Tushar

Maybe you are looking for