• &---------------------------------------------------------------------*
  • & Report ZFI_COL_TEST7
  • &
  • &---------------------------------------------------------------------*
  • &
  • &
  • &---------------------------------------------------------------------*

"Add aditional hidden column for invoice where multiple items have 0 value, then sum it and perform calc with end of recpt and sum of total

REPORT zfi_col_test9.

TABLES: bsad, knb1, T001S, kna1. "Main table for extracting Data


  • ---------------------------------------------------------------------*
  • For Alv Reasons
  • ---------------------------------------------------------------------*

TYPE-POOLS : slis.

DATA: it_fcat TYPE slis_t_fieldcat_alv,

     wa_fcat TYPE slis_fieldcat_alv,
     wa_layout TYPE slis_layout_alv,
     it_sort TYPE slis_t_sortinfo_alv.

DATA : x_sort TYPE slis_sortinfo_alv.


  • ---------------------------------------------------------------------*
  • Primary structure type
  • ---------------------------------------------------------------------*

TYPES: BEGIN OF coll,

       bukrs TYPE bsad-bukrs,  "Company Code
       kunnr TYPE bsad-kunnr,  "Customer No
       belnr TYPE bsad-belnr,  "Accounting Document Number
       budat TYPE bsad-budat,  "Posting Date in the Document
       blart TYPE bsad-blart,  "Document Type
       dmbtr TYPE bsad-dmbtr,  "Amount in Local Currency
       "Provision for  Amount in document currency (WRBTR)
       REBZG type bsad-rebzg,
       waers TYPE bsad-waers,  "Currency Key
       augbl TYPE bsad-augbl,  "Document Number of the Clearing Document
       augdt TYPE bsad-augdt,  "Clearing Date
       zuonr TYPE bsad-zuonr,  "Assignment Number
       bschl TYPE bsad-bschl,  "Posting Key
       sgtxt TYPE bsad-sgtxt,  "Item Text
       ltext(30) TYPE c,       "--------------------------------------Comment this
       shkzg TYPE bsad-shkzg, "Debit/Credit Indicator
       UMSKZ TYPE C,
     END OF coll.



  • ---------------------------------------------------------------------*
  • Final Internal Table structure --------------------------------------Comment this section properly
  • ---------------------------------------------------------------------*

DATA: BEGIN OF wa_final,

       sno TYPE i,
       bukrs TYPE bsad-bukrs,  "Company Code
       kunnr TYPE bsad-kunnr,  "Customer No
       augbl TYPE bsad-augbl,  "Clearance no
       augdt TYPE bsad-augdt,  "clearance date
       belnr TYPE bsad-belnr,  "Document No
       budat TYPE bsad-budat,  "Doc Date
       blart TYPE bsad-blart,  "Doc Type
       dmbtr TYPE bsad-dmbtr,  "Amt in  local Currency
       "hdmbtr TYPE bsad-dmbtr,  "Hidden invoice column
       waers TYPE bsad-waers,  "Currency
       zuonr TYPE bsad-zuonr,  "Assignment no
       bschl TYPE bsad-bschl,
       sgtxt TYPE bsad-sgtxt,
       ltext(30) TYPE c,
       rbelnr TYPE bsad-belnr,  "Document No
       rbudat TYPE bsad-budat,  "Doc Date
       rblart TYPE bsad-blart,  "Doc Type
       rdmbtr TYPE bsad-dmbtr,  "Amt in  local Currency
       rwaers TYPE bsad-waers,  "Currency
       rbschl TYPE bsad-bschl,
       rltext(30) TYPE c,
       rsgtxt TYPE bsad-sgtxt,
       rzuonr TYPE bsad-zuonr,  "Assignment no
       blank TYPE c LENGTH 3,
       shkzg TYPE bsad-shkzg, "DEBIT CREDIT INDICATOR

" icon_field LIKE icon-id, "icon field

       balance TYPE bsad-dmbtr,
       settled type bsad-dmbtr,
       color type c LENGTH 4 VALUE 'C100',
       date_diff type i,
       sname type SNAME_001S,
       busab type knb1-busab,
 NAME1 type kna1-NAME1,
      END OF wa_final.


  • ---------------------------------------------------------------------*
  • Primary Data Elements for work area & Internal tables
  • ---------------------------------------------------------------------*

DATA : wa_itab TYPE coll, "primary work area for handling data from BSAD

      wa_inv TYPE coll,    "primary work area for handling Invoice Data
      wa_recpt TYPE coll.  "primary work area for handling Receipt Data

DATA : BEGIN OF wa_recpt_tmp, "For storing receipt clearing doc number

      augbl TYPE bsaD-augbl,
      ZUONR  TYPE BSAD-ZUONR,
 REBZG TYPE BSAD-REBZG,
     END OF wa_recpt_tmp.

DATA it_recpt_tmp LIKE STANDARD TABLE OF wa_recpt_tmp. "For storing receipt clearing doc number


DATA: itab LIKE STANDARD TABLE OF wa_itab, "primary internal table for storing data from BSAD

     it_inv LIKE STANDARD TABLE OF wa_inv, "primary internal table for storing invoice data
     it_recpt LIKE STANDARD TABLE OF wa_recpt. "primary internal table for storing receipt data
  • ---------------------------------------------------------------------*
  • Final Internal Table Declaration
  • ---------------------------------------------------------------------*

DATA it_final LIKE STANDARD TABLE OF wa_final. DATA ln_final like LINE OF it_final.

  • ---------------------------------------------------------------------*
  • Variables for subtotaling
  • ---------------------------------------------------------------------*

DATA inv_sub TYPE bsad-dmbtr. data sett_sub TYPE bsad-dmbtr. data recpt_sub TYPE bsad-dmbtr.

  • ---------------------------------------------------------------------*
  • ---------------------------------------------------------------------*

data: begin of wa_recpt_val,

 rbelnr type bsad-belnr,
 rdmbtr type bsad-dmbtr,
 END OF wa_recpt_Val.

data it_recpt_val like STANDARD TABLE OF wa_recpt_val.





selection-screen begin of block main with frame title text-t00.

select-options SO_KUNNR for BSAD-KUNNR. " FOR PERSONNEL NUMBER
"SELECT-OPTIONS per_nr FOR M_PREMN-pernr. " FOR PERSONNEL NUMBER
select-options so_BUSAB for T001S-BUSAB no INTERVALS. " FOR ACCOUNTING CLERK
"PARAMETERS p_busab TYPE T001S-BUSAB.
select-options s_rbelnr for bsad-belnr . " FOR ACCOUNTING CLERK
SELECT-OPTIONS so_budat for bsad-budat.
PARAMETERS p_splgl as CHECKBOX.
selection-screen end of block main.



"data mark type c LENGTH 5.
"data: mark_cl type bsad-augbl,
"     mark_inv type bsad-belnr,
"      mark_recpt type bsad-belnr.
  • ---------------------------------------------------------------------*
  • Selecting DATA from BSAD into ITAB.
  • ---------------------------------------------------------------------*
  • SELECT bukrs kunnr belnr budat blart dmbtr waers augbl augdt bschl zuonr sgtxt shkzg UMSKZ
  • INTO CORRESPONDING FIELDS OF TABLE itab
  • FROM bsad WHERE
  • kunnr LIKE '0000020051' AND augbl <> ' ' AND blart = 'DZ'
  • OR kunnr LIKE '0000020051' AND augbl <> ' ' AND blart = 'AB'
  • OR kunnr LIKE '0000020051' AND augbl <> ' ' AND blart = 'DR'
  • OR kunnr LIKE '0000020051' AND augbl <> ' ' AND blart = 'RV'
  • or kunnr like '0000020051' AND augbl <> ' ' AND umskz = 'A' AND blart = 'DZ'.
  • SELECT bukrs kunnr belnr budat blart dmbtr waers augbl augdt bschl zuonr sgtxt shkzg UMSKZ
  • APPENDING CORRESPONDING FIELDS OF TABLE itab
  • FROM bsID WHERE
  • kunnr like '0000020051' aND umskz = 'A' AND blart = 'DZ'.



SELECT bukrs kunnr belnr budat blart dmbtr waers augbl augdt bschl zuonr sgtxt shkzg UMSKZ REBZG INTO CORRESPONDING FIELDS OF TABLE itab FROM bsad WHERE

    kunnr IN SO_KUNNR  AND augbl <> ' ' AND blart = 'DZ'
 OR kunnr IN SO_KUNNR AND augbl <> ' ' AND blart = 'AB'
 OR kunnr IN SO_KUNNR AND augbl <> ' ' AND blart = 'DR'
 OR kunnr IN SO_KUNNR AND augbl <> ' ' AND blart = 'RV'
 or kunnr IN SO_KUNNR AND augbl <> ' ' AND umskz = 'A' AND blart = 'DZ'.


  • SELECT bukrs kunnr belnr budat blart dmbtr waers augbl augdt bschl zuonr sgtxt shkzg UMSKZ REBZG
  • APPENDING CORRESPONDING FIELDS OF TABLE itab
  • FROM bsID WHERE
  • kunnr IN SO_KUNNR aND umskz = 'A' AND blart = 'DZ'.



LOOP AT itab INTO wa_itab.

 SELECT ltext FROM tbslt INTO wa_itab-ltext WHERE bschl LIKE wa_itab-bschl.
 ENDSELECT.
 MODIFY itab  FROM wa_itab.
 CLEAR wa_itab-ltext.

ENDLOOP.


  • -------------------------------------------------------------------------------------------------------------------*
  • Create internal tables for invoice & receipts (Note :Invoice Types are DR/RV & Receipt Types are AB/DZ)
  • -------------------------------------------------------------------------------------------------------------------*

it_inv = itab. DELETE it_inv WHERE blart = 'AB'. DELETE it_inv WHERE blart = 'DZ'. SORT it_inv BY augbl. it_recpt = itab. DELETE it_recpt WHERE blart = 'DR'. DELETE it_recpt WHERE blart = 'RV'.

CLEAR itab. SORT it_recpt BY augbl blart DESCENDING. SORT it_inv BY augbl blart DESCENDING.

LOOP AT IT_RECPT INTO WA_RECPT. MOVE-CORRESPONDING WA_RECPT TO WA_RECPT_TMP. APPEND WA_RECPT_TMP TO IT_RECPT_TMP. ENDLOOP.

  • ----------------------------------------------------------------------------------------*
  • LOOPS
  • ----------------------------------------------------------------------------------------*

LOOP AT it_inv INTO wa_inv. "Looping at Invoice internal table

  • -------------------------------------------------------------one invoice one receipt
 wa_final-bukrs = wa_inv-bukrs.
 wa_final-kunnr = wa_inv-kunnr.
 wa_final-augbl = wa_inv-augbl.
 wa_final-augdt = wa_inv-augdt.
 wa_final-belnr = wa_inv-belnr.
 wa_final-bschl = wa_inv-bschl.
 wa_final-ltext = wa_inv-ltext.
 wa_final-budat = wa_inv-budat.
 wa_final-blart = wa_inv-blart.
 wa_final-dmbtr = wa_inv-dmbtr.
 "wa_final-hdmbtr = wa_inv-dmbtr.
 wa_final-waers = wa_inv-waers.
 wa_final-sgtxt = wa_inv-sgtxt.
 wa_final-zuonr = wa_inv-zuonr.
 wa_final-blank = ' ↔ '.
 READ TABLE it_recpt INTO wa_recpt WITH KEY augbl = wa_inv-augbl.  "Search Receipt Internal table for same Clearing Doc Number
 IF sy-subrc = 0.
   LOOP AT it_recpt INTO wa_recpt WHERE augbl = wa_inv-augbl AND blart ='DZ'.
     wa_final-rbelnr = wa_recpt-belnr.
     wa_final-rbudat = wa_recpt-budat.
     wa_final-rblart = wa_recpt-blart.
     wa_final-rdmbtr = wa_recpt-dmbtr.
     wa_final-rwaers = wa_recpt-waers.
     wa_final-rbschl = wa_recpt-bschl.
     wa_final-rltext = wa_recpt-ltext.
     wa_final-rsgtxt = wa_recpt-sgtxt.
     wa_final-rzuonr = wa_recpt-zuonr.
                      • If receipt amt is greater than invoice amt then receipt must be equal to invoice
     if wa_recpt-dmbtr > wa_inv-dmbtr.
       wa_final-settled = wa_inv-dmbtr.
       else.
        wa_final-settled = wa_recpt-dmbtr.
     endif.

wa_final-date_diff = wa_recpt-budat - wa_inv-budat + 1.

     APPEND wa_final TO it_final.
  • wa_final-bukrs = ' '.
  • wa_final-kunnr = ' '.
  • wa_final-bschl = ' '.
  • wa_final-ltext = ' '.
  • wa_final-blart = ' '.
  • wa_final-dmbtr = ' '.
  • wa_final-waers = ' '.
  • wa_final-sgtxt = ' '.
  • wa_final-zuonr = ' '.
   ENDLOOP.
 ENDIF.
  • -------------------------------------------------------------one invoice one receipt over




  • -------------------------------------------------------------one invoice multiple receipts
 "rEAD TABLE it_recpt INTO wa_recpt WITH KEY zuonr = wa_inv-belnr.
   READ TABLE it_recpt INTO wa_recpt WITH KEY rebzg = wa_inv-belnr.
 IF sy-subrc = 0.
   LOOP AT it_recpt_tmp INTO  wa_recpt_tmp WHERE rebzg = wa_inv-belnr.    "Get all receipts where assignment numkber is of the current invoice number.
    " loop at it_recpt into wa_recpt where  blart = 'DZ' and augbl = wa_recpt_tmp-augbl.
     loop at it_recpt into wa_recpt where  blart = 'AB' and augbl = wa_recpt_tmp-augbl.
         wa_final-rbelnr = wa_recpt-belnr.
         wa_final-rbudat = wa_recpt-budat.
         wa_final-rblart = wa_recpt-blart.
         wa_final-rdmbtr = wa_recpt-dmbtr.
         wa_final-rwaers = wa_recpt-waers.
         wa_final-rbschl = wa_recpt-bschl.
         wa_final-rltext = wa_recpt-ltext.
         wa_final-rsgtxt = wa_recpt-sgtxt.
         wa_final-rzuonr = wa_recpt-zuonr.
                      • If receipt amt is greater than invoice amt then receipt must be equal to invoice
     if wa_recpt-dmbtr > wa_inv-dmbtr.
       wa_final-settled = wa_inv-dmbtr.
       else.
        wa_final-settled = wa_recpt-dmbtr.
     endif.

wa_final-date_diff = wa_recpt-budat - wa_inv-budat + 1.

         append wa_final to it_final.
         endloop.
     endloop.
    endif.
  • -------------------------------------------------------------one invoice multiple receipts OVER

endloop.




"BREAK-POINT.

  • sort it_final by rbelnr augdt descending augbl ltext descending .

sort it_final by augdt descending augbl ASCENDING rbelnr ASCENDING rbudat descending .

  • _____________________________________________________________________________________________

"clear: it_inv, it_recpt, wa_inv, wa_recpt, recpt_sub, sett_sub.

loop at it_final into wa_final.

wa_inv-belnr = wa_final-belnr.
wa_inv-dmbtr = wa_final-dmbtr.
wa_recpt-belnr = wa_final-rbelnr.
wa_recpt-dmbtr = wa_final-rdmbtr.
append wa_inv to it_inv.
append wa_recpt to it_recpt.
endloop.



delete ADJACENT DUPLICATES FROM it_inv. delete ADJACENT DUPLICATES FROM it_recpt.

sort it_final by rbelnr DESCENDING rbudat descending ." augdt descending augbl ASCENDING . "BREAK-POINT. loop at it_final into wa_final.

 wa_recpt_val-rbelnr = wa_final-rbelnr.
 wa_recpt_val-rdmbtr = wa_final-settled.
 COLLECT wa_recpt_val into it_recpt_val.
 clear wa_recpt_val.
 endloop.


 loop at it_final into wa_final.
      on CHANGE OF wa_final-rbelnr.
      ln_final-rbelnr = wa_final-rbelnr.
      ln_final-rbudat = wa_final-rbudat.
      ln_final-rdmbtr = wa_final-rdmbtr.
  • READ TABLE it_recpt_val into wa_recpt_val WITH TABLE KEY rbelnr = wa_final-rbelnr.
  • if sy-subrc = 0.

loop at it_recpt_val into wa_recpt_val WHERE rbelnr = wa_final-rbelnr.

 ln_final-settled = wa_recpt_val-rdmbtr.
ln_final-settled = ln_final-rdmbtr - ln_final-settled.
endloop.
if ln_final-settled > 0.
  ln_final-rltext = 'UNALLOCATED'.
  ln_final-color = 'C300'.
  insert ln_final INTO it_final.
endif.
  clear ln_final.
  endon.
 endloop.

"



CLEAR: WA_INV, WA_RECPT,WA_FINAL. LOOP AT IT_RECPT INTO WA_RECPT WHERE umskz = 'A' AND BLART = 'DZ'.

         wa_final-rbelnr = wa_recpt-belnr.
         wa_final-rbudat = wa_recpt-budat.
         wa_final-rblart = wa_recpt-blart.
         wa_final-rdmbtr = wa_recpt-dmbtr.
         wa_final-rwaers = wa_recpt-waers.
         wa_final-rbschl = wa_recpt-bschl.
         wa_final-rltext = wa_recpt-ltext.
         wa_final-rsgtxt = wa_recpt-sgtxt.
         wa_final-rzuonr = wa_recpt-zuonr.
         WA_FINAL-rltext = 'ADVANCE PAYMENT'.
         APPEND WA_FINAL TO IT_FINAL.

ENDLOOP.




  • loop at it_final into wa_final.
  • on CHANGE OF wa_final-rbelnr.
  • ln_final-rbelnr = wa_final-rbelnr.
  • ln_final-rbudat = wa_final-rbudat.
  • ln_final-rdmbtr = wa_final-rdmbtr.
    • READ TABLE it_recpt_val into wa_recpt_val WITH TABLE KEY rbelnr = wa_final-rbelnr.
    • if sy-subrc = 0.
  • loop at it_recpt_val into wa_recpt_val WHERE rbelnr = wa_final-rbelnr.
  • ln_final-settled = wa_recpt_val-rdmbtr.
  • ln_final-settled = ln_final-rdmbtr - ln_final-settled.
  • if ln_final-settled > 0.
  • ln_final-rltext = 'UNALLOCATED'.
  • endif.
  • endloop.
  • insert ln_final INTO it_final.
  • clear ln_final.
  • endon.
  • endloop.


    clear ln_final.
    clear sett_sub.

"loop at it_final.

loop at it_final into wa_final. select busab from knb1 into wa_final-busab where kunnr = wa_final-kunnr. ENDSELECT. modify it_final from wa_final. select sname from t001s INTO wa_final-sname where busab = wa_final-busab.endselect. modify it_final from wa_final. select name1 from kna1 INTO wa_final-name1 where kunnr = wa_final-kunnr. ENDSELECT. modify it_final from wa_final. endloop.

"BREAK-POINT.

delete it_final where busab not in so_busab[]. delete it_final where kunnr not in so_kunnr[]. delete it_final where rbelnr not in s_rbelnr[]. delete it_final where rbudat not in so_budat[]. if p_splgl ne 'X'. delete it_final where rltext = 'ADVANCE PAYMENT'. ENDIF.



 wa_fcat-col_pos = '-3'.
 wa_fcat-fieldname = 'BUKRS'.
 wa_fcat-seltext_l = 'Company Code'.
 wa_fcat-outputlen = '10'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos = '-2'.
 wa_fcat-fieldname = 'KUNNR'.
 wa_fcat-seltext_l = 'Customer No.'.
append wa_fcat to it_fcat.
 clear wa_fcat.
wa_fcat-col_pos = '-1'.
 wa_fcat-fieldname = 'NAME1'.
 wa_fcat-seltext_l = 'Customer Name.'.
append wa_fcat to it_fcat.
 clear wa_fcat.


 wa_fcat-col_pos = '0'.
 wa_fcat-fieldname = 'SNAME'.
 wa_fcat-seltext_l = 'Acc Clerk'.
 wa_fcat-outputlen = '10'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos = '1'.
 wa_fcat-fieldname = 'AUGDT'.
 wa_fcat-seltext_l = 'Clearing Date'.
 wa_fcat-outputlen = '10'.
 "wa_fcat-emphasize = 'C010'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos =  '2'.
 wa_fcat-fieldname = 'AUGBL'.
 wa_fcat-seltext_l = 'Clearing Doc'.
 "wa_fcat-emphasize = 'C410'.
 "wa_fcat-emphasize = 'C010'.
 wa_fcat-outputlen = '12'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos =  '3'.
 wa_fcat-fieldname = 'BSCHL'.
 wa_fcat-seltext_l = 'PK'.
 "wa_fcat-emphasize = 'C410'.
                                                            • 88
 wa_fcat-no_out = 'X'.
 wa_fcat-outputlen = '20'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos =  '4'.
 wa_fcat-fieldname = 'LTEXT'.
 wa_fcat-seltext_l = 'Posting Key'.
 wa_fcat-outputlen = '20'.
 "wa_fcat-emphasize = 'C410'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos = '5'.
 wa_fcat-fieldname = 'BLART'.
 wa_fcat-seltext_l = 'Doc.Type'.
 "wa_fcat-emphasize = 'C410'..
 wa_fcat-outputlen = '3'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos = '6'.
 wa_fcat-fieldname = 'BELNR'.
 wa_fcat-seltext_l = 'Invoice. No' .
 "wa_fcat-emphasize = 'C410'.
 wa_fcat-outputlen = '12'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos = '7'.
 wa_fcat-fieldname = 'BUDAT'.
 wa_fcat-seltext_l = 'Posting Dt.'.
 wa_fcat-outputlen = '10'.
 "wa_fcat-emphasize = 'C410'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos = '8'.
 wa_fcat-fieldname = 'DMBTR'.
 wa_fcat-seltext_l = 'Invoice Amt.(KWD)'.
 wa_fcat-outputlen = '12'.
 "wa_fcat-emphasize = 'C410'.
 wa_fcat-currency = 'KWD'.
 "wa_fcat-do_sum = 'X'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos = '9'.
 wa_fcat-fieldname = 'ZUONR'.
 wa_fcat-seltext_l = 'Inv Assign. No'.
 "wa_fcat-outputlen = '12'.
 wa_fcat-no_out = 'X'.
 append wa_fcat to it_fcat.
 clear wa_fcat.


 wa_fcat-col_pos = '10'.
 wa_fcat-fieldname = 'SGTXT'.
 wa_fcat-seltext_l = 'Inv Text'.
 wa_fcat-no_out = 'X'.
 "wa_fcat-outputlen = '12'.
 append wa_fcat to it_fcat.
 clear wa_fcat.


 wa_fcat-col_pos = '10'.
 wa_fcat-fieldname = 'BLANK'.
 wa_fcat-seltext_l = .
 "wa_fcat-NO_out = 'X'.
 "wa_fcat-outputlen = '12'.
 wa_fcat-emphasize = 'C501'.
 append wa_fcat to it_fcat.
 clear wa_fcat.


 wa_fcat-col_pos = '11'.
 wa_fcat-fieldname = 'RBLART'.
 wa_fcat-seltext_l = 'Doc.Type'.
 "wa_fcat-emphasize = 'C510'.
 wa_fcat-outputlen = '3'.
 append wa_fcat to it_fcat.
 clear wa_fcat.


 wa_fcat-col_pos = '12'.
 wa_fcat-fieldname = 'RBELNR'.
 wa_fcat-seltext_l = 'Receipt No' .
 "wa_fcat-emphasize = 'C510'.
 wa_fcat-outputlen = '12'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos = '13'.
 wa_fcat-fieldname = 'RBUDAT'.
 wa_fcat-seltext_l = 'Posting Dt.'.
 wa_fcat-outputlen = '10'.
 "wa_fcat-emphasize = 'C510'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos = '14'.
 wa_fcat-fieldname = 'RDMBTR'.
 wa_fcat-seltext_l = 'Receipt Amt.(KWD)'.
 wa_fcat-outputlen = '12'.
 "wa_fcat-emphasize = 'C510'.
 "wa_fcat-DO_SUM = 'X'.
 wa_fcat-currency = 'KWD'.
 append wa_fcat to it_fcat.
 clear wa_fcat.


wa_fcat-col_pos = '15'.
 wa_fcat-fieldname = 'SETTLED'.
 wa_fcat-seltext_l = 'Settled Amt.(KWD)'.
 wa_fcat-outputlen = '12'.
 "wa_fcat-emphasize = 'C510'.
 "wa_fcat-DO_SUM = 'X'.
 wa_fcat-currency = 'KWD'.
 append wa_fcat to it_fcat.
 clear wa_fcat.


 wa_fcat-col_pos =  '16'.
 wa_fcat-fieldname = 'RBSCHL'.
 wa_fcat-seltext_l = 'PK'.
 "wa_fcat-emphasize = 'C410'.
 wa_fcat-outputlen = '20'.
 "wa_fcat-emphasize = 'C510'.
 """""""""""""""""""""""""""""
 wa_fcat-no_out = 'X'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos =  '17'.
 wa_fcat-fieldname = 'RLTEXT'.
 wa_fcat-seltext_l = 'Posting Key'.
 wa_fcat-outputlen = '20'.
 "wa_fcat-emphasize = 'C510'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos = '18'.
 wa_fcat-fieldname = 'RZUONR'.
 wa_fcat-seltext_l = 'Recpt Assign. No'.
 wa_fcat-outputlen = '12'.
 wa_fcat-no_out = 'X'.
 append wa_fcat to it_fcat.
 clear wa_fcat.


 wa_fcat-col_pos = '19'.
 wa_fcat-fieldname = 'RSGTXT'.
 wa_fcat-seltext_l = 'Recpt Text'.
 "wa_fcat-outputlen = '12'.
 wa_fcat-no_out = 'X'.
 append wa_fcat to it_fcat.
 clear wa_fcat.
 wa_fcat-col_pos = '20'.
 wa_fcat-fieldname = 'BALANCE'.
 wa_fcat-seltext_l = 'Outstanding'.
 wa_fcat-currency = 'KWD'.
 "wa_fcat-do_sum = 'X'.
 "wa_fcat-outputlen = '12'.
 "wa_fcat-NO_out = 'X'.

" append wa_fcat to it_fcat.

 clear wa_fcat.


 wa_fcat-col_pos = '21'.
 wa_fcat-fieldname = 'DATE_DIFF'.
 wa_fcat-seltext_l = 'Days'.
 "wa_fcat-outputlen = '12'.
 "wa_fcat-no_out = 'X'.
 append wa_fcat to it_fcat.
 clear wa_fcat.


 wa_layout-colwidth_optimize =  'X' .
 wa_layout-info_fieldname = 'COLOR'.
  • x_sort-spos = 1. " Sort order
  • x_sort-fieldname = 'AUGDT'.
  • x_sort-tabname = 'IT_final'.
  • x_sort-down = 'X'.
  • append x_sort to it_sort.
  • clear x_sort.
  • x_sort-spos = 2. " Sort order
  • x_sort-fieldname = 'AUGBL'.
  • x_sort-tabname = 'IT_final'.
  • x_sort-up = 'X'.
  • x_sort-group = 'UL'.
  • append x_sort to it_sort.
  • clear x_sort.
  • x_sort-spos = 3. " Sort order
  • x_sort-fieldname = 'RBELNR'.
  • x_sort-tabname = 'IT_final'.
  • x_sort-up = 'X'.
  • append x_sort to it_sort.
  • clear x_sort.
  • x_sort-spos = 4. " Sort order
  • x_sort-fieldname = 'RBUDAT'.
  • x_sort-tabname = 'IT_final'.
  • x_sort-down = 'X'.
  • append x_sort to it_sort.
  • clear x_sort.



  • x_sort-spos = 1. " Sort order
  • x_sort-fieldname = 'AUGDT'.
  • x_sort-tabname = 'IT_final'.
  • x_sort-down = 'X'.
  • append x_sort to it_sort.
  • clear x_sort.
  • x_sort-spos = 2. " Sort order
  • x_sort-fieldname = 'AUGBL'.
  • x_sort-tabname = 'IT_final'.
  • x_sort-up = 'X'.
  • x_sort-group = 'UL'.
  • append x_sort to it_sort.
  • clear x_sort.

x_sort-spos = 1. " Sort order x_sort-fieldname = 'RBELNR'. x_sort-tabname = 'IT_final'. x_sort-down = 'X'. "x_sort-group = 'UL'. append x_sort to it_sort. clear x_sort.


x_sort-spos = 2. " Sort order x_sort-fieldname = 'RBUDAT'. x_sort-tabname = 'IT_final'. x_sort-down = 'X'. append x_sort to it_sort. clear x_sort.


x_sort-spos = 2. " Sort order x_sort-fieldname = 'RBLART'. x_sort-tabname = 'IT_final'. x_sort-down = 'X'. append x_sort to it_sort. clear x_sort.

call function 'REUSE_ALV_LIST_DISPLAY' exporting

  is_layout                      = wa_layout
  it_fieldcat                    = it_fcat
  • IT_EXCLUDING =
  • IT_SPECIAL_GROUPS =
  it_sort                        = it_sort
   tables
   t_outtab                       = it_final.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.