Skip to Content
avatar image
Former Member

Functional Spec for VENDOR AGE ANALYSIS report

Hi experts

I need to develope a VENDOR AGE ANALYSIS REPORT. But due to some reason i cant be able to get the Functional Specification for that object. So could you please help me by sending the above mention functional Specification.

thanks and regadrs

Pratik

Add comment
10|10000 characters needed characters exceeded

  • Get RSS Feed

2 Answers

  • Best Answer
    Oct 01, 2008 at 08:47 AM
    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      got the following from sdn thread:

      This is the sample report for vendor aging:

      Std reports Tcodes are:

      customer : s_alr_87012178

      vendor : s_alr_87012084

      Custom designed:

      REPORT zfi_customer_ageing

      NO STANDARD PAGE HEADING

      LINE-COUNT 58

      line-size 168

      MESSAGE-ID zh_msg.

      ************************************************************************

      D A T A B A S E T A B L E S D E C L A R A T I O N

      ************************************************************************

      TABLES: kna1, " Customer Master (General)

      t001, " Company Codes

      rfpdo.

      ************************************************************************

      I N T E R N A L T A B L E S D E C L A R A T I O N S *

      ************************************************************************

      Internal Table for Customer Open Items Data

      DATA: BEGIN OF int_bsid OCCURS 0,

      kunnr LIKE bsid-kunnr, " Customer Number

      name1 LIKE kna1-name1, " Customer Name

      shkzg LIKE bsid-shkzg, " Dr/Cr Indicator

      belnr LIKE bsid-belnr, " Document Number

      xblnr LIKE bsid-xblnr, " Ref Doc No

      blart LIKE bsid-blart, " Document Type

      zfbdt LIKE bsid-zfbdt, " Base Line Date

      zbd1t LIKE bsid-zbd1t, " Due date1

      zbd2t LIKE bsid-zbd2t, " Due Date2

      zbd3t LIKE bsid-zbd3t, " Due Date3

      waers LIKE bsid-waers, " Currency

      dmbtr LIKE bsid-dmbtr, " Amount in Local Curr

      END OF int_bsid.

      Internal Table for Amounts Sum Up Data

      DATA: BEGIN OF int_final OCCURS 0,

      kunnr LIKE bsid-kunnr, " Customer Number

      name1 LIKE kna1-name1, " Customer Name

      total1 LIKE bsid-dmbtr, " Amount in Local Curr

      total2 LIKE bsid-dmbtr, " Amount in Local Curr

      total3 LIKE bsid-dmbtr, " Amount in Local Curr

      total4 LIKE bsid-dmbtr, " Amount in Local Curr

      total5 LIKE bsid-dmbtr, " Amount in Local Curr

      total6 LIKE bsid-dmbtr, " Amount in Local Curr

      total LIKE bsid-dmbtr, " Amount in Local Curr

      END OF int_final.

      ***********************************************************************

      D A T A D E C L A R A T I O N S

      ***********************************************************************

      DATA : v_flag, " Flag

      v_gtotal1 LIKE bsid-dmbtr, " Amount Totals

      v_gtotal2 LIKE bsid-dmbtr, " Amount Totals

      v_gtotal3 LIKE bsid-dmbtr, " Amount Totals

      v_gtotal4 LIKE bsid-dmbtr, " Amount Totals

      v_gtotal5 LIKE bsid-dmbtr, " Amount Totals

      v_gtotal6 LIKE bsid-dmbtr, " Amount Totals

      v_gtotal LIKE bsid-dmbtr, " Amount Totals

      v_subtotal1 LIKE bsid-dmbtr, " Amount Totals

      v_subtotal2 LIKE bsid-dmbtr, " Amount Totals

      v_subtotal3 LIKE bsid-dmbtr, " Amount Totals

      v_subtotal4 LIKE bsid-dmbtr, " Amount Totals

      v_subtotal5 LIKE bsid-dmbtr, " Amount Totals

      v_subtotal6 LIKE bsid-dmbtr, " Amount Totals

      v_subtotal LIKE bsid-dmbtr, " Amount Totals

      v_date LIKE bsid-zfbdt, " Due Date

      v_tage1(4), " Age 30 days

      v_tage2(4), " Age 60 days

      v_tage3(4), " Age 90 days

      v_fir(15), " Column Text1

      v_sec(15), " Column Text2

      v_thir(15), " Column Text3

      v_four(17), " Column Text4

      v_fidd(4), " Days field1

      v_sedd(4), " Days field2

      v_thdd(4), " Days field3

      v_fodd(4), " Days field4

      v_str TYPE SY-LISEL, " String

      v_str1(11), " String

      v_tage(3), " String

      v_date1(10). " Date field

      ***********************************************************************

      R A N G E D E C L A R A T I O N S

      ***********************************************************************

      RANGES: r_date1 FOR bsid-zfbdt, " Date Range 1

      r_date2 FOR bsid-zfbdt, " Date Range 2

      r_date3 FOR bsid-zfbdt, " Date Range 3

      r_date4 FOR bsid-zfbdt. " Date Range 4

      ***********************************************************************

      S E L E C T I O N S C R E E N *

      ***********************************************************************

      SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

      SELECT-OPTIONS: s_kunnr FOR kna1-kunnr. "Customer account

      PARAMETERS: p_bukrs LIKE t001-bukrs. "Co. Code

      SELECTION-SCREEN END OF BLOCK b1.

      SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

      PARAMETERS: p_allgst LIKE rfpdo-allgstid OBLIGATORY DEFAULT sy-datum.

      "Open items at key date

      SELECTION-SCREEN END OF BLOCK b2.

      SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.

      PARAMETERS: p_tage1 LIKE rfpdo1-allgfael DEFAULT '30',

      p_tage2 LIKE rfpdo1-allgfael DEFAULT '60',

      p_tage3 LIKE rfpdo1-allgfael DEFAULT '90',

      p_tage4 LIKE rfpdo1-allgfael DEFAULT '120'.

      SELECTION-SCREEN END OF BLOCK b3.

      ***********************************************************************

      A T S E L E C T I O N S C R E E N *

      ***********************************************************************

      AT SELECTION-SCREEN.

      Validate the screen fields

      PERFORM validate_flds.

      ***********************************************************************

      S T A R T O F S E L E C T I O N *

      ***********************************************************************

      START-OF-SELECTION.

      Fetch main data

      PERFORM fetch_data.

      ***********************************************************************

      T O P O F P A G E

      ***********************************************************************

      Header

      TOP-OF-PAGE.

      PERFORM header.

      ***********************************************************************

      E N D O F P A G E

      ***********************************************************************

      Footer

      END-OF-PAGE.

      ULINE.

      ***********************************************************************

      T O P O F P A G E D U R I N G L I N E S E L E C T I O N *

      ***********************************************************************

      Top of Page in Secondary List

      TOP-OF-PAGE DURING LINE-SELECTION.

      PERFORM header1.

      ***********************************************************************

      A T L I N E S E L E C T I O N *

      ***********************************************************************

      AT LINE-SELECTION.

      Perform Line Selections

      PERFORM line_selection.

      ***********************************************************************

      E N D O F S E L E C T I O N

      ***********************************************************************

      END-OF-SELECTION.

      List generation

      PERFORM basic_list.

      &*********************************************************************

      *& Form validate_flds

      &*********************************************************************

      Validation of Selection Screen fields

      ************************************************************************

      FORM validate_flds .

      Validate Customer Code

      CLEAR kna1-kunnr.

      SELECT kunnr UP TO 1 ROWS

      INTO kna1-kunnr

      FROM kna1

      WHERE kunnr IN s_kunnr AND

      spras = sy-langu.

      ENDSELECT.

      IF sy-subrc 0.

      MESSAGE e000 WITH 'Invalid Customer Code range'(023).

      ENDIF.

      Validate Company Code

      CLEAR t001-bukrs.

      SELECT bukrs UP TO 1 ROWS

      INTO t001-bukrs

      FROM t001

      WHERE bukrs = p_bukrs AND

      spras = sy-langu.

      ENDSELECT.

      IF sy-subrc 0.

      MESSAGE e021. " Invalid Company Code range

      ENDIF.

      IF ( p_tage1 > p_tage2 ) OR ( p_tage1 > p_tage3 ) OR

      ( p_tage1 > p_tage4 ).

      MESSAGE e999 WITH 'Column 1 greater'(004)

      'than Column# 2 or 3 or 4'(005).

      ENDIF.

      *column 2

      IF ( p_tage2 > p_tage3 ) OR ( p_tage1 > p_tage4 ).

      MESSAGE e999 WITH 'Column 2 greater'(006)

      'than Column# 3 or 4'(007).

      ENDIF.

      *column3

      IF ( p_tage3 > p_tage4 ).

      MESSAGE e999 WITH 'Column 3 greater'(008)

      'than Column#4'(009).

      ENDIF.

      ENDFORM. " validate_flds

      &----


      *& Form fetch_data

      &----


      Fetching Data from Database Tables

      -


      FORM fetch_data .

      Date Range Population

      r_date1-sign = 'I'.

      r_date1-option = 'BT'.

      r_date1-low = p_allgst.

      r_date1-high = r_date1-low + p_tage1.

      APPEND r_date1.

      r_date2-sign = 'I'.

      r_date2-option = 'BT'.

      r_date2-low = r_date1-high + 1.

      r_date2-high = r_date1-low + p_tage2.

      APPEND r_date2.

      r_date3-sign = 'I'.

      r_date3-option = 'BT'.

      r_date3-low = r_date2-high + 1.

      r_date3-high = r_date1-low + p_tage3.

      APPEND r_date3.

      r_date4-sign = 'I'.

      r_date4-option = 'BT'.

      r_date4-low = r_date3-high + 1.

      r_date4-high = r_date1-low + p_tage4.

      APPEND r_date4.

      Select the Customer Open Items data from bsid

      SELECT l~kunnr

      l1~name1

      b~waers

      b~dmbtr

      b~zfbdt

      b~zbd1t

      b~zbd2t

      b~zbd3t

      b~belnr

      b~xblnr

      b~shkzg

      b~blart

      INTO CORRESPONDING FIELDS OF TABLE int_bsid

      FROM knb1 AS l INNER JOIN kna1 AS l1

      ON lkunnr = l1kunnr

      INNER JOIN bsid AS b

      ON lkunnr = bkunnr AND

      lbukrs = bbukrs

      WHERE l~kunnr IN s_kunnr AND

      l~bukrs = p_bukrs and

      b~zfbdt le p_allgst.

      IF SY-SUBRC 0.

      MESSAGE i000 WITH 'No Data found'(027).

      ENDIF.

      Removing the date limit to get the due items in the past

      DELETE int_bsid WHERE

      ( blart NE 'RE' AND blart NE 'KR' ) OR

      shkzg NE 'H'.

      SORT int_bsid BY kunnr.

      ENDFORM. " fetch_data

      &----


      *& Form header

      &----


      Display the Report Columns

      -


      FORM header .

      v_tage1 = p_tage1 + 1.

      v_tage2 = p_tage2 + 1.

      v_tage3 = p_tage3 + 1.

      v_fidd = p_tage1.

      v_sedd = p_tage2.

      v_thdd = p_tage3.

      v_fodd = p_tage4.

      MOVE v_fodd0(4) TO v_fodd1(3).

      v_fodd+0(1) = space.

      CONCATENATE '1 to'(010) v_fidd INTO v_fir.

      CONCATENATE v_tage1 ' to '(011) v_sedd INTO v_sec.

      CONCATENATE v_tage2 ' to '(011) v_thdd INTO v_thir.

      CONCATENATE v_tage3 ' to '(011) space v_fodd INTO v_four.

      Standard header

      clear: v_date1, v_str, v_str1, v_tage.

      write p_allgst to v_date1.

      Move p_tage4 to v_tage.

      concatenate '>' v_tage text-025 into v_str1.

      concatenate

      'Summary of Ageing Analysis for Customer Open Invoices as on'(013)

      v_date1 into v_str separated by space.

      CALL FUNCTION 'Z_STANDARD_HEADER'

      EXPORTING

      title1 = 'Saudi International Petrochemical Company'(012)

      title2 = v_str.

      FORMAT COLOR OFF.

      WRITE : /1(168) sy-uline.

      FORMAT COLOR 1 INTENSIFIED.

      WRITE :/1 sy-vline, 13 sy-vline, 49 sy-vline,

      50(101) 'Invoices Due For(In Days)'(014) CENTERED,

      151 sy-vline, 168 sy-vline .

      WRITE :/1 sy-vline, 2(11) 'Customer#'(015) CENTERED,

      13 sy-vline ,14(35) 'Customer Name'(016) CENTERED,

      49 sy-vline,

      50(101) sy-uline,151 sy-vline,

      152(16) 'Total'(017) CENTERED,

      168 sy-vline.

      WRITE : /1 sy-vline,13 sy-vline, 49 sy-vline,

      50(16) v_fir CENTERED, 66 sy-vline,

      67(16) v_sec CENTERED, 83 sy-vline,

      84(16) v_thir CENTERED, 100 sy-vline,

      101(16) v_four CENTERED, 117 sy-vline,

      118(16) v_str1 centered, 134 sy-vline,

      135(16) 'Already Overdue'(018) CENTERED,151 sy-vline,

      168 sy-vline.

      FORMAT COLOR OFF.

      WRITE : /1(168) sy-uline.

      ENDFORM. " header

      &----


      *& Form basic_list

      &----


      Display the Basic List

      -


      FORM basic_list .

      NEW-PAGE LINE-SIZE 168.

      LOOP AT int_bsid.

      CLEAR v_date.

      IF int_bsid-zbd3t ' '.

      v_date = int_bsid-zfbdt + int_bsid-zbd3t.

      ELSE.

      IF int_bsid-zbd2t ' '.

      v_date = int_bsid-zfbdt + int_bsid-zbd2t.

      ELSE.

      v_date = int_bsid-zfbdt + int_bsid-zbd1t.

      ENDIF.

      ENDIF.

      IF int_bsid-zbd1t = ' '.

      v_date = int_bsid-zfbdt.

      ENDIF.

      IF v_date IN r_date1.

      int_final-total1 = int_final-total1 + int_bsid-dmbtr.

      ELSEIF v_date IN r_date2.

      int_final-total2 = int_final-total2 + int_bsid-dmbtr.

      ELSEIF v_date IN r_date3.

      int_final-total3 = int_final-total3 + int_bsid-dmbtr.

      ELSEIF v_date IN r_date4.

      int_final-total4 = int_final-total4 + int_bsid-dmbtr.

      ELSEif v_date > r_date4-high.

      int_final-total5 = int_final-total5 + int_bsid-dmbtr.

      ELSEif v_date < p_allgst.

      int_final-total6 = int_final-total6 + int_bsid-dmbtr.

      ENDIF.

      AT END OF kunnr.

      v_flag = 1.

      ENDAT.

      IF v_flag = 1.

      int_final-kunnr = int_bsid-kunnr.

      int_final-name1 = int_bsid-name1.

      int_final-total = int_final-total1 + int_final-total2 +

      int_final-total3 + int_final-total4 + int_final-total5 +

      int_final-total6.

      APPEND int_final.

      v_gtotal1 = v_gtotal1 + int_final-total1.

      v_gtotal2 = v_gtotal2 + int_final-total2.

      v_gtotal3 = v_gtotal3 + int_final-total3.

      v_gtotal4 = v_gtotal4 + int_final-total4.

      v_gtotal5 = v_gtotal5 + int_final-total5.

      v_gtotal6 = v_gtotal6 + int_final-total6.

      v_gtotal = v_gtotal + int_final-total.

      WRITE: /1 sy-vline,

      2 int_final-kunnr COLOR 4 INTENSIFIED ON,

      13 sy-vline,

      14 int_final-name1 COLOR 4 INTENSIFIED ON,

      49 sy-vline.

      DATA : v_rem.

      v_rem = sy-tabix MOD 2.

      IF v_rem NE 0.

      FORMAT COLOR 2 INTENSIFIED.

      WRITE : 50 int_final-total1 CURRENCY int_bsid-waers,

      66 sy-vline,

      67 int_final-total2 CURRENCY int_bsid-waers,

      83 sy-vline,

      84 int_final-total3 CURRENCY int_bsid-waers,

      100 sy-vline,

      101 int_final-total4 CURRENCY int_bsid-waers,

      117 sy-vline,

      118 int_final-total5 CURRENCY int_bsid-waers,

      134 sy-vline,

      135 int_final-total6 CURRENCY int_bsid-waers,

      151 sy-vline,

      152 int_final-total CURRENCY int_bsid-waers,

      168 sy-vline.

      ELSE.

      WRITE : 50 int_final-total1 CURRENCY int_bsid-waers,

      66 sy-vline,

      67 int_final-total2 CURRENCY int_bsid-waers,

      83 sy-vline,

      84 int_final-total3 CURRENCY int_bsid-waers,

      100 sy-vline,

      101 int_final-total4 CURRENCY int_bsid-waers,

      117 sy-vline,

      118 int_final-total5 CURRENCY int_bsid-waers,

      134 sy-vline,

      135 int_final-total6 CURRENCY int_bsid-waers,

      151 sy-vline,

      152 int_final-total CURRENCY int_bsid-waers,

      168 sy-vline.

      ENDIF.

      FORMAT COLOR OFF.

      HIDE int_final.

      CLEAR int_final.

      v_flag = 0.

      ENDIF.

      AT LAST.

      WRITE : /1(168) sy-uline.

      FORMAT COLOR 3 INTENSIFIED.

      WRITE : /1 sy-vline, 2(47) 'GRAND TOTAL'(022) CENTERED,

      49 sy-vline, 50 v_gtotal1 CURRENCY int_bsid-waers,

      66 sy-vline, 67 v_gtotal2 CURRENCY int_bsid-waers,

      83 sy-vline, 84 v_gtotal3 CURRENCY int_bsid-waers,

      100 sy-vline,101 v_gtotal4 CURRENCY int_bsid-waers,

      117 sy-vline,118 v_gtotal5 CURRENCY int_bsid-waers,

      134 sy-vline,135 v_gtotal6 CURRENCY int_bsid-waers,

      151 sy-vline,152 v_gtotal CURRENCY int_bsid-waers,

      168 sy-vline.

      HIDE : v_gtotal1,

      v_gtotal2,

      v_gtotal3,

      v_gtotal4,

      v_gtotal5,

      v_gtotal6,

      v_gtotal.

      ENDAT.

      FORMAT COLOR OFF.

      ENDLOOP.

      WRITE : /1(168) sy-uline.

      ENDFORM. " basic_list

      &----


      *& Form line_selection

      &----


      When double clicked on the line display the seconday list

      -


      FORM line_selection .

      NEW-PAGE LINE-SIZE 206.

      Sy-lsind = 1.

      DATA : v_rem,v_cnt LIKE sy-tabix.

      v_cnt = 0.

      SORT int_bsid BY belnr zfbdt.

      LOOP AT int_bsid WHERE kunnr EQ int_final-kunnr.

      v_rem = v_cnt MOD 2.

      CLEAR v_date.

      IF int_bsid-zbd3t ' '.

      v_date = int_bsid-zfbdt + int_bsid-zbd3t.

      ELSE.

      IF int_bsid-zbd2t ' '.

      v_date = int_bsid-zfbdt + int_bsid-zbd2t.

      ELSE.

      v_date = int_bsid-zfbdt + int_bsid-zbd1t.

      ENDIF.

      ENDIF.

      IF int_bsid-zbd1t = ' '.

      v_date = int_bsid-zfbdt.

      ENDIF.

      IF v_rem NE 0.

      format color 2 intensified.

      WRITE :/1 sy-vline, 2 int_bsid-belnr,

      12 sy-vline,13 int_bsid-kunnr,

      23 sy-vline,24 int_bsid-name1,

      59 sy-vline,60 int_bsid-xblnr,

      76 sy-vline,77 int_bsid-zfbdt,

      87 sy-vline.

      WRITE : 104 sy-vline,121 sy-vline,

      138 sy-vline,155 sy-vline,

      172 sy-vline, 189 sy-vline,

      190 int_bsid-dmbtr CURRENCY int_bsid-waers,

      206 sy-vline.

      IF v_date IN r_date1.

      v_subtotal1 = v_subtotal1 + int_bsid-dmbtr.

      WRITE : 88 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ELSEIF v_date IN r_date2.

      v_subtotal2 = v_subtotal2 + int_bsid-dmbtr.

      WRITE : 105 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ELSEIF v_date IN r_date3.

      v_subtotal3 = v_subtotal3 + int_bsid-dmbtr.

      WRITE : 122 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ELSEIF v_date IN r_date4.

      v_subtotal4 = v_subtotal4 + int_bsid-dmbtr.

      WRITE : 139 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ELSEif v_date > r_date4-high.

      v_subtotal5 = v_subtotal5 + int_bsid-dmbtr.

      WRITE : 156 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ELSEif v_date < p_allgst.

      v_subtotal6 = v_subtotal6 + int_bsid-dmbtr.

      WRITE : 173 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ENDIF.

      format color off.

      ELSE.

      WRITE :/1 sy-vline, 2 int_bsid-belnr,

      12 sy-vline,13 int_bsid-kunnr,

      23 sy-vline,24 int_bsid-name1,

      59 sy-vline,60 int_bsid-xblnr,

      76 sy-vline,77 int_bsid-zfbdt,

      87 sy-vline.

      WRITE : 104 sy-vline,121 sy-vline,

      138 sy-vline,155 sy-vline,

      172 sy-vline,189 sy-vline,

      190 int_bsid-dmbtr CURRENCY int_bsid-waers,

      206 sy-vline.

      IF v_date IN r_date1.

      v_subtotal1 = v_subtotal1 + int_bsid-dmbtr.

      WRITE : 88 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ELSEIF v_date IN r_date2.

      v_subtotal2 = v_subtotal2 + int_bsid-dmbtr.

      WRITE : 105 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ELSEIF v_date IN r_date3.

      v_subtotal3 = v_subtotal3 + int_bsid-dmbtr.

      WRITE : 122 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ELSEIF v_date IN r_date4.

      v_subtotal4 = v_subtotal4 + int_bsid-dmbtr.

      WRITE : 139 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ELSEif v_date > r_date4-high.

      v_subtotal5 = v_subtotal5 + int_bsid-dmbtr.

      WRITE : 156 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ELSEif v_date < p_allgst.

      v_subtotal6 = v_subtotal6 + int_bsid-dmbtr.

      WRITE : 173 int_bsid-dmbtr CURRENCY int_bsid-waers.

      ENDIF.

      ENDIF.

      FORMAT COLOR OFF.

      v_cnt = v_cnt + 1.

      ENDLOOP.

      WRITE : /1(206) sy-uline.

      v_subtotal = v_subtotal1 + v_subtotal2 + v_subtotal3

      + v_subtotal4 + v_subtotal5 + v_subtotal6.

      FORMAT COLOR 3 INTENSIFIED.

      WRITE : /1 sy-vline,

      2(85) 'Total'(017) CENTERED CURRENCY int_bsid-waers ,

      87 sy-vline,

      88 v_subtotal1 CURRENCY int_bsid-waers,

      104 sy-vline,

      105 v_subtotal2 CURRENCY int_bsid-waers,

      121 sy-vline,

      122 v_subtotal3 CURRENCY int_bsid-waers,

      138 sy-vline,

      139 v_subtotal4 CURRENCY int_bsid-waers,

      155 sy-vline,

      156 v_subtotal5 CURRENCY int_bsid-waers,

      172 sy-vline,

      173 v_subtotal6 CURRENCY int_bsid-waers,

      189 sy-vline,

      190 v_subtotal CURRENCY int_bsid-waers,

      206 sy-vline.

      FORMAT COLOR OFF.

      WRITE : /1(206) sy-uline.

      CLEAR : v_subtotal,v_subtotal1,v_subtotal2,v_subtotal3,

      v_subtotal4,v_subtotal5,v_gtotal1,v_gtotal2,v_gtotal3,

      v_gtotal4, v_gtotal5,v_gtotal,v_subtotal6,v_gtotal6.

      ENDFORM. " line_selection

      &----


      *& Form header1

      &----


      Secondary List Header

      -


      FORM header1 .

      Standard header

      clear: v_date1, v_str, v_str1, v_tage.

      write p_allgst to v_date1.

      Move p_tage4 to v_tage.

      concatenate '>' v_tage text-025 into v_str1.

      concatenate

      'Details of Ageing Analysis for Customer Open Invoices as on'(024)

      v_date1 into v_str separated by space.

      CALL FUNCTION 'Z_STANDARD_HEADER'

      EXPORTING

      title1 = 'Saudi International Petrochemical Company'(012)

      title2 = v_str.

      FORMAT COLOR 1 intensified.

      WRITE :/1(206) sy-uline.

      WRITE :/1 sy-vline,12 sy-vline ,

      23 sy-vline,59 sy-vline,76 sy-vline,87 sy-vline,

      88(101) 'Invoices Due For(In Days)'(014) CENTERED,

      189 sy-vline,206 sy-vline.

      WRITE : /1 sy-vline, 2(10) 'Doc Number'(021) CENTERED,

      12 sy-vline, 13(10) 'Customer#'(015) CENTERED,

      23 sy-vline, 24(35) 'Customer Name'(016) CENTERED,

      59 sy-vline, 60(16) 'Ref invoice#'(019) CENTERED,

      76 sy-vline, 77(10) 'Inv dt'(020) CENTERED,

      87 sy-vline, 88(101) sy-uline,

      189 sy-vline,190(16) 'Total'(017) CENTERED,

      206 sy-vline.

      WRITE : /1 sy-vline, 12 sy-vline,

      23 sy-vline,59 sy-vline,

      76 sy-vline,87 sy-vline,

      88(16) v_fir CENTERED, 104 sy-vline,

      105(16) v_sec CENTERED, 121 sy-vline,

      122(16) v_thir CENTERED, 138 sy-vline,

      139(16) v_four CENTERED, 155 sy-vline,

      156(16) v_str1 CENTERED,

      172 sy-vline,

      173(16) 'Already Overdue'(018) CENTERED,

      189 sy-vline,

      206 sy-vline.

      format color off.

      WRITE : /1(206) sy-uline.

      ENDFORM. " header1

      REPORT zfi_vendor_ageing

      NO STANDARD PAGE HEADING

      LINE-COUNT 58

      line-size 168

      MESSAGE-ID zh_msg.

      ************************************************************************

      Report Name : Vendor Open Items Ageing Report

      Purpose : This report displays the Vendor Open Items based on

      different Ageing days (Calculated by taking the Base

      Line date and the days mentioned in Payment Terms)

      *

      ************************************************************************

      M O D I F I C A T I O N L O G

      ************************************************************************

      Date | Change Number | Initials | Description

      ************************************************************************

      30-Aug-2004 | DTSK900**** | Anji Reddy | Initial

      ************************************************************************

      D A T A B A S E T A B L E S D E C L A R A T I O N

      ************************************************************************

      TABLES: lfa1, " Vendor Master (General)

      t001, " Company Codes

      rfpdo.

      ************************************************************************

      I N T E R N A L T A B L E S D E C L A R A T I O N S *

      ************************************************************************

      Internal Table for Vendor Open Items Data

      DATA: BEGIN OF int_bsik OCCURS 0,

      lifnr LIKE bsik-lifnr, " Vendor Number

      name1 LIKE lfa1-name1, " Vendor Name

      shkzg LIKE bsik-shkzg, " Dr/Cr Indicator

      belnr LIKE bsik-belnr, " Document Number

      xblnr LIKE bsik-xblnr, " Ref Doc No

      blart LIKE bsik-blart, " Document Type

      zfbdt LIKE bsik-zfbdt, " Base Line Date

      zbd1t LIKE bsik-zbd1t, " Due date1

      zbd2t LIKE bsik-zbd2t, " Due Date2

      zbd3t LIKE bsik-zbd3t, " Due Date3

      waers LIKE bsik-waers, " Currency

      dmbtr LIKE bsik-dmbtr, " Amount in Local Curr

      END OF int_bsik.

      Internal Table for Amounts Sum Up Data

      DATA: BEGIN OF int_final OCCURS 0,

      lifnr LIKE bsik-lifnr, " Vendor Number

      name1 LIKE lfa1-name1, " Vendor Name

      total1 LIKE bsik-dmbtr, " Amount in Local Curr

      total2 LIKE bsik-dmbtr, " Amount in Local Curr

      total3 LIKE bsik-dmbtr, " Amount in Local Curr

      total4 LIKE bsik-dmbtr, " Amount in Local Curr

      total5 LIKE bsik-dmbtr, " Amount in Local Curr

      total6 LIKE bsik-dmbtr, " Amount in Local Curr

      total LIKE bsik-dmbtr, " Amount in Local Curr

      END OF int_final.

      ***********************************************************************

      D A T A D E C L A R A T I O N S

      ***********************************************************************

      DATA : v_flag, " Flag

      v_gtotal1 LIKE bsik-dmbtr, " Amount Totals

      v_gtotal2 LIKE bsik-dmbtr, " Amount Totals

      v_gtotal3 LIKE bsik-dmbtr, " Amount Totals

      v_gtotal4 LIKE bsik-dmbtr, " Amount Totals

      v_gtotal5 LIKE bsik-dmbtr, " Amount Totals

      v_gtotal6 LIKE bsik-dmbtr, " Amount Totals

      v_gtotal LIKE bsik-dmbtr, " Amount Totals

      v_subtotal1 LIKE bsik-dmbtr, " Amount Totals

      v_subtotal2 LIKE bsik-dmbtr, " Amount Totals

      v_subtotal3 LIKE bsik-dmbtr, " Amount Totals

      v_subtotal4 LIKE bsik-dmbtr, " Amount Totals

      v_subtotal5 LIKE bsik-dmbtr, " Amount Totals

      v_subtotal6 LIKE bsik-dmbtr, " Amount Totals

      v_subtotal LIKE bsik-dmbtr, " Amount Totals

      v_date LIKE bsik-zfbdt, " Due Date

      v_tage1(4), " Age 30 days

      v_tage2(4), " Age 60 days

      v_tage3(4), " Age 90 days

      v_fir(15), " Column Text1

      v_sec(15), " Column Text2

      v_thir(15), " Column Text3

      v_four(17), " Column Text4

      v_fidd(4), " Days field1

      v_sedd(4), " Days field2

      v_thdd(4), " Days field3

      v_fodd(4), " Days field4

      v_str TYPE SY-LISEL, " String

      v_str1(11), " String

      v_tage(3), " String

      v_date1(10). " Date field

      ***********************************************************************

      R A N G E D E C L A R A T I O N S

      ***********************************************************************

      RANGES: r_date1 FOR bsik-zfbdt, " Date Range 1

      r_date2 FOR bsik-zfbdt, " Date Range 2

      r_date3 FOR bsik-zfbdt, " Date Range 3

      r_date4 FOR bsik-zfbdt. " Date Range 4

      ***********************************************************************

      S E L E C T I O N S C R E E N *

      ***********************************************************************

      SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

      SELECT-OPTIONS: s_lifnr FOR lfa1-lifnr. "Vendor account

      PARAMETERS: p_bukrs LIKE t001-bukrs. "Co. Code

      SELECTION-SCREEN END OF BLOCK b1.

      SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

      PARAMETERS: p_allgst LIKE rfpdo-allgstid OBLIGATORY DEFAULT sy-datum.

      "Open items at key date

      SELECTION-SCREEN END OF BLOCK b2.

      SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.

      PARAMETERS: p_tage1 LIKE rfpdo1-allgfael DEFAULT '30',

      p_tage2 LIKE rfpdo1-allgfael DEFAULT '60',

      p_tage3 LIKE rfpdo1-allgfael DEFAULT '90',

      p_tage4 LIKE rfpdo1-allgfael DEFAULT '120'.

      SELECTION-SCREEN END OF BLOCK b3.

      ***********************************************************************

      A T S E L E C T I O N S C R E E N *

      ***********************************************************************

      AT SELECTION-SCREEN.

      Validate the screen fields

      PERFORM validate_flds.

      ***********************************************************************

      S T A R T O F S E L E C T I O N *

      ***********************************************************************

      START-OF-SELECTION.

      Fetch main data

      PERFORM fetch_data.

      ***********************************************************************

      T O P O F P A G E

      ***********************************************************************

      Header

      TOP-OF-PAGE.

      PERFORM header.

      ***********************************************************************

      E N D O F P A G E

      ***********************************************************************

      Footer

      END-OF-PAGE.

      ULINE.

      ***********************************************************************

      T O P O F P A G E D U R I N G L I N E S E L E C T I O N *

      ***********************************************************************

      Top of Page in Secondary List

      TOP-OF-PAGE DURING LINE-SELECTION.

      PERFORM header1.

      ***********************************************************************

      A T L I N E S E L E C T I O N *

      ***********************************************************************

      AT LINE-SELECTION.

      Perform Line Selections

      PERFORM line_selection.

      ***********************************************************************

      E N D O F S E L E C T I O N

      ***********************************************************************

      END-OF-SELECTION.

      List generation

      PERFORM basic_list.

      &*********************************************************************

      *& Form validate_flds

      &*********************************************************************

      Validation of Selection Screen fields

      ************************************************************************

      FORM validate_flds .

      Validate Vendor Code

      CLEAR lfa1-lifnr.

      SELECT lifnr UP TO 1 ROWS

      INTO lfa1-lifnr

      FROM lfa1

      WHERE lifnr IN s_lifnr AND

      spras = sy-langu.

      ENDSELECT.

      IF sy-subrc 0.

      MESSAGE e000 WITH 'Invalid Vendor Code range'(023).

      ENDIF.

      Validate Company Code

      CLEAR t001-bukrs.

      SELECT bukrs UP TO 1 ROWS

      INTO t001-bukrs

      FROM t001

      WHERE bukrs = p_bukrs AND

      spras = sy-langu.

      ENDSELECT.

      IF sy-subrc 0.

      MESSAGE e021. " Invalid Company Code range

      ENDIF.

      IF ( p_tage1 > p_tage2 ) OR ( p_tage1 > p_tage3 ) OR

      ( p_tage1 > p_tage4 ).

      MESSAGE e999 WITH 'Column 1 greater'(004)

      'than Column# 2 or 3 or 4'(005).

      ENDIF.

      *column 2

      IF ( p_tage2 > p_tage3 ) OR ( p_tage1 > p_tage4 ).

      MESSAGE e999 WITH 'Column 2 greater'(006)

      'than Column# 3 or 4'(007).

      ENDIF.

      *column3

      IF ( p_tage3 > p_tage4 ).

      MESSAGE e999 WITH 'Column 3 greater'(008)

      'than Column#4'(009).

      ENDIF.

      ENDFORM. " validate_flds

      &----


      *& Form fetch_data

      &----


      Fetching Data from Database Tables

      -


      FORM fetch_data .

      Date Range Population

      r_date1-sign = 'I'.

      r_date1-option = 'BT'.

      r_date1-low = p_allgst.

      r_date1-high = r_date1-low + p_tage1.

      APPEND r_date1.

      r_date2-sign = 'I'.

      r_date2-option = 'BT'.

      r_date2-low = r_date1-high + 1.

      r_date2-high = r_date1-low + p_tage2.

      APPEND r_date2.

      r_date3-sign = 'I'.

      r_date3-option = 'BT'.

      r_date3-low = r_date2-high + 1.

      r_date3-high = r_date1-low + p_tage3.

      APPEND r_date3.

      r_date4-sign = 'I'.

      r_date4-option = 'BT'.

      r_date4-low = r_date3-high + 1.

      r_date4-high = r_date1-low + p_tage4.

      APPEND r_date4.

      Select the Vendor Open Items data from BSIK

      SELECT l~lifnr

      l1~name1

      b~waers

      b~dmbtr

      b~zfbdt

      b~zbd1t

      b~zbd2t

      b~zbd3t

      b~belnr

      b~xblnr

      b~shkzg

      b~blart

      INTO CORRESPONDING FIELDS OF TABLE int_bsik

      FROM lfb1 AS l INNER JOIN lfa1 AS l1

      ON llifnr = l1lifnr

      INNER JOIN bsik AS b

      ON llifnr = blifnr AND

      lbukrs = bbukrs

      WHERE l~lifnr IN s_lifnr AND

      l~bukrs = p_bukrs and

      b~zfbdt le p_allgst.

      IF SY-SUBRC 0.

      MESSAGE i000 WITH 'No Data found'(027).

      ENDIF.

      Removing the date limit to get the due items in the past

      DELETE int_bsik WHERE

      ( blart NE 'RE' AND blart NE 'KR' ) OR

      shkzg NE 'H'.

      SORT int_bsik BY lifnr.

      ENDFORM. " fetch_data

      &----


      *& Form header

      &----


      Display the Report Columns

      -


      FORM header .

      v_tage1 = p_tage1 + 1.

      v_tage2 = p_tage2 + 1.

      v_tage3 = p_tage3 + 1.

      v_fidd = p_tage1.

      v_sedd = p_tage2.

      v_thdd = p_tage3.

      v_fodd = p_tage4.

      MOVE v_fodd0(4) TO v_fodd1(3).

      v_fodd+0(1) = space.

      CONCATENATE '1 to'(010) v_fidd INTO v_fir.

      CONCATENATE v_tage1 ' to '(011) v_sedd INTO v_sec.

      CONCATENATE v_tage2 ' to '(011) v_thdd INTO v_thir.

      CONCATENATE v_tage3 ' to '(011) space v_fodd INTO v_four.

      Standard header

      clear: v_date1, v_str, v_str1, v_tage.

      write p_allgst to v_date1.

      Move p_tage4 to v_tage.

      concatenate '>' v_tage text-025 into v_str1.

      concatenate

      'Summary of Ageing Analysis for Vendor Open Invoices as on'(013)

      v_date1 into v_str separated by space.

      CALL FUNCTION 'Z_STANDARD_HEADER'

      EXPORTING

      title1 = 'Saudi International Petrochemical Company'(012)

      title2 = v_str.

      FORMAT COLOR OFF.

      WRITE : /1(168) sy-uline.

      FORMAT COLOR 1 INTENSIFIED.

      WRITE :/1 sy-vline, 13 sy-vline, 49 sy-vline,

      50(101) 'Invoices Due For(In Days)'(014) CENTERED,

      151 sy-vline, 168 sy-vline .

      WRITE :/1 sy-vline, 2(11) 'Vendor#'(015) CENTERED,

      13 sy-vline ,14(35) 'Vendor Name'(016) CENTERED,

      49 sy-vline,

      50(101) sy-uline,151 sy-vline,

      152(16) 'Total'(017) CENTERED,

      168 sy-vline.

      WRITE : /1 sy-vline,13 sy-vline, 49 sy-vline,

      50(16) v_fir CENTERED, 66 sy-vline,

      67(16) v_sec CENTERED, 83 sy-vline,

      84(16) v_thir CENTERED, 100 sy-vline,

      101(16) v_four CENTERED, 117 sy-vline,

      118(16) v_str1 centered, 134 sy-vline,

      135(16) 'Already Overdue'(018) CENTERED,151 sy-vline,

      168 sy-vline.

      FORMAT COLOR OFF.

      WRITE : /1(168) sy-uline.

      ENDFORM. " header

      &----


      *& Form basic_list

      &----


      Display the Basic List

      -


      FORM basic_list .

      NEW-PAGE LINE-SIZE 168.

      LOOP AT int_bsik.

      CLEAR v_date.

      IF int_bsik-zbd3t ' '.

      v_date = int_bsik-zfbdt + int_bsik-zbd3t.

      ELSE.

      IF int_bsik-zbd2t ' '.

      v_date = int_bsik-zfbdt + int_bsik-zbd2t.

      ELSE.

      v_date = int_bsik-zfbdt + int_bsik-zbd1t.

      ENDIF.

      ENDIF.

      IF int_bsik-zbd1t = ' '.

      v_date = int_bsik-zfbdt.

      ENDIF.

      IF v_date IN r_date1.

      int_final-total1 = int_final-total1 + int_bsik-dmbtr.

      ELSEIF v_date IN r_date2.

      int_final-total2 = int_final-total2 + int_bsik-dmbtr.

      ELSEIF v_date IN r_date3.

      int_final-total3 = int_final-total3 + int_bsik-dmbtr.

      ELSEIF v_date IN r_date4.

      int_final-total4 = int_final-total4 + int_bsik-dmbtr.

      ELSEif v_date > r_date4-high.

      int_final-total5 = int_final-total5 + int_bsik-dmbtr.

      ELSEif v_date < p_allgst.

      int_final-total6 = int_final-total6 + int_bsik-dmbtr.

      ENDIF.

      AT END OF lifnr.

      v_flag = 1.

      ENDAT.

      IF v_flag = 1.

      int_final-lifnr = int_bsik-lifnr.

      int_final-name1 = int_bsik-name1.

      int_final-total = int_final-total1 + int_final-total2 +

      int_final-total3 + int_final-total4 + int_final-total5 +

      int_final-total6.

      APPEND int_final.

      v_gtotal1 = v_gtotal1 + int_final-total1.

      v_gtotal2 = v_gtotal2 + int_final-total2.

      v_gtotal3 = v_gtotal3 + int_final-total3.

      v_gtotal4 = v_gtotal4 + int_final-total4.

      v_gtotal5 = v_gtotal5 + int_final-total5.

      v_gtotal6 = v_gtotal6 + int_final-total6.

      v_gtotal = v_gtotal + int_final-total.

      WRITE: /1 sy-vline,

      2 int_final-lifnr COLOR 4 INTENSIFIED ON,

      13 sy-vline,

      14 int_final-name1 COLOR 4 INTENSIFIED ON,

      49 sy-vline.

      DATA : v_rem.

      v_rem = sy-tabix MOD 2.

      IF v_rem NE 0.

      FORMAT COLOR 2 INTENSIFIED.

      WRITE : 50 int_final-total1 CURRENCY int_bsik-waers,

      66 sy-vline,

      67 int_final-total2 CURRENCY int_bsik-waers,

      83 sy-vline,

      84 int_final-total3 CURRENCY int_bsik-waers,

      100 sy-vline,

      101 int_final-total4 CURRENCY int_bsik-waers,

      117 sy-vline,

      118 int_final-total5 CURRENCY int_bsik-waers,

      134 sy-vline,

      135 int_final-total6 CURRENCY int_bsik-waers,

      151 sy-vline,

      152 int_final-total CURRENCY int_bsik-waers,

      168 sy-vline.

      ELSE.

      WRITE : 50 int_final-total1 CURRENCY int_bsik-waers,

      66 sy-vline,

      67 int_final-total2 CURRENCY int_bsik-waers,

      83 sy-vline,

      84 int_final-total3 CURRENCY int_bsik-waers,

      100 sy-vline,

      101 int_final-total4 CURRENCY int_bsik-waers,

      117 sy-vline,

      118 int_final-total5 CURRENCY int_bsik-waers,

      134 sy-vline,

      135 int_final-total6 CURRENCY int_bsik-waers,

      151 sy-vline,

      152 int_final-total CURRENCY int_bsik-waers,

      168 sy-vline.

      ENDIF.

      FORMAT COLOR OFF.

      HIDE int_final.

      CLEAR int_final.

      v_flag = 0.

      ENDIF.

      AT LAST.

      WRITE : /1(168) sy-uline.

      FORMAT COLOR 3 INTENSIFIED.

      WRITE : /1 sy-vline, 2(47) 'GRAND TOTAL'(022) CENTERED,

      49 sy-vline, 50 v_gtotal1 CURRENCY int_bsik-waers,

      66 sy-vline, 67 v_gtotal2 CURRENCY int_bsik-waers,

      83 sy-vline, 84 v_gtotal3 CURRENCY int_bsik-waers,

      100 sy-vline,101 v_gtotal4 CURRENCY int_bsik-waers,

      117 sy-vline,118 v_gtotal5 CURRENCY int_bsik-waers,

      134 sy-vline,135 v_gtotal6 CURRENCY int_bsik-waers,

      151 sy-vline,152 v_gtotal CURRENCY int_bsik-waers,

      168 sy-vline.

      HIDE : v_gtotal1,

      v_gtotal2,

      v_gtotal3,

      v_gtotal4,

      v_gtotal5,

      v_gtotal6,

      v_gtotal.

      ENDAT.

      FORMAT COLOR OFF.

      ENDLOOP.

      WRITE : /1(168) sy-uline.

      ENDFORM. " basic_list

      &----


      *& Form line_selection

      &----


      When double clicked on the line display the seconday list

      -


      FORM line_selection .

      NEW-PAGE LINE-SIZE 206.

      Sy-lsind = 1.

      DATA : v_rem,v_cnt LIKE sy-tabix.

      v_cnt = 0.

      SORT int_bsik BY belnr zfbdt.

      LOOP AT int_bsik WHERE lifnr EQ int_final-lifnr.

      v_rem = v_cnt MOD 2.

      CLEAR v_date.

      IF int_bsik-zbd3t ' '.

      v_date = int_bsik-zfbdt + int_bsik-zbd3t.

      ELSE.

      IF int_bsik-zbd2t ' '.

      v_date = int_bsik-zfbdt + int_bsik-zbd2t.

      ELSE.

      v_date = int_bsik-zfbdt + int_bsik-zbd1t.

      ENDIF.

      ENDIF.

      IF int_bsik-zbd1t = ' '.

      v_date = int_bsik-zfbdt.

      ENDIF.

      IF v_rem NE 0.

      format color 2 intensified.

      WRITE :/1 sy-vline, 2 int_bsik-belnr,

      12 sy-vline,13 int_bsik-lifnr,

      23 sy-vline,24 int_bsik-name1,

      59 sy-vline,60 int_bsik-xblnr,

      76 sy-vline,77 int_bsik-zfbdt,

      87 sy-vline.

      WRITE : 104 sy-vline,121 sy-vline,

      138 sy-vline,155 sy-vline,

      172 sy-vline, 189 sy-vline,

      190 int_bsik-dmbtr CURRENCY int_bsik-waers,

      206 sy-vline.

      IF v_date IN r_date1.

      v_subtotal1 = v_subtotal1 + int_bsik-dmbtr.

      WRITE : 88 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ELSEIF v_date IN r_date2.

      v_subtotal2 = v_subtotal2 + int_bsik-dmbtr.

      WRITE : 105 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ELSEIF v_date IN r_date3.

      v_subtotal3 = v_subtotal3 + int_bsik-dmbtr.

      WRITE : 122 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ELSEIF v_date IN r_date4.

      v_subtotal4 = v_subtotal4 + int_bsik-dmbtr.

      WRITE : 139 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ELSEif v_date > r_date4-high.

      v_subtotal5 = v_subtotal5 + int_bsik-dmbtr.

      WRITE : 156 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ELSEif v_date < p_allgst.

      v_subtotal6 = v_subtotal6 + int_bsik-dmbtr.

      WRITE : 173 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ENDIF.

      format color off.

      ELSE.

      WRITE :/1 sy-vline, 2 int_bsik-belnr,

      12 sy-vline,13 int_bsik-lifnr,

      23 sy-vline,24 int_bsik-name1,

      59 sy-vline,60 int_bsik-xblnr,

      76 sy-vline,77 int_bsik-zfbdt,

      87 sy-vline.

      WRITE : 104 sy-vline,121 sy-vline,

      138 sy-vline,155 sy-vline,

      172 sy-vline,189 sy-vline,

      190 int_bsik-dmbtr CURRENCY int_bsik-waers,

      206 sy-vline.

      IF v_date IN r_date1.

      v_subtotal1 = v_subtotal1 + int_bsik-dmbtr.

      WRITE : 88 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ELSEIF v_date IN r_date2.

      v_subtotal2 = v_subtotal2 + int_bsik-dmbtr.

      WRITE : 105 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ELSEIF v_date IN r_date3.

      v_subtotal3 = v_subtotal3 + int_bsik-dmbtr.

      WRITE : 122 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ELSEIF v_date IN r_date4.

      v_subtotal4 = v_subtotal4 + int_bsik-dmbtr.

      WRITE : 139 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ELSEif v_date > r_date4-high.

      v_subtotal5 = v_subtotal5 + int_bsik-dmbtr.

      WRITE : 156 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ELSEif v_date < p_allgst.

      v_subtotal6 = v_subtotal6 + int_bsik-dmbtr.

      WRITE : 173 int_bsik-dmbtr CURRENCY int_bsik-waers.

      ENDIF.

      ENDIF.

      FORMAT COLOR OFF.

      v_cnt = v_cnt + 1.

      ENDLOOP.

      WRITE : /1(206) sy-uline.

      v_subtotal = v_subtotal1 + v_subtotal2 + v_subtotal3

      + v_subtotal4 + v_subtotal5 + v_subtotal6.

      FORMAT COLOR 3 INTENSIFIED.

      WRITE : /1 sy-vline,

      2(85) 'Total'(017) CENTERED CURRENCY int_bsik-waers ,

      87 sy-vline,

      88 v_subtotal1 CURRENCY int_bsik-waers,

      104 sy-vline,

      105 v_subtotal2 CURRENCY int_bsik-waers,

      121 sy-vline,

      122 v_subtotal3 CURRENCY int_bsik-waers,

      138 sy-vline,

      139 v_subtotal4 CURRENCY int_bsik-waers,

      155 sy-vline,

      156 v_subtotal5 CURRENCY int_bsik-waers,

      172 sy-vline,

      173 v_subtotal6 CURRENCY int_bsik-waers,

      189 sy-vline,

      190 v_subtotal CURRENCY int_bsik-waers,

      206 sy-vline.

      FORMAT COLOR OFF.

      WRITE : /1(206) sy-uline.

      CLEAR : v_subtotal,v_subtotal1,v_subtotal2,v_subtotal3,

      v_subtotal4,v_subtotal5,v_gtotal1,v_gtotal2,v_gtotal3,

      v_gtotal4, v_gtotal5,v_gtotal,v_subtotal6,v_gtotal6.

      ENDFORM. " line_selection

      &----


      *& Form header1

      &----


      Secondary List Header

      -


      FORM header1 .

      Standard header

      clear: v_date1, v_str, v_str1, v_tage.

      write p_allgst to v_date1.

      Move p_tage4 to v_tage.

      concatenate '>' v_tage text-025 into v_str1.

      concatenate

      'Details of Ageing Analysis for Vendor Open Invoices as on'(024)

      v_date1 into v_str separated by space.

      CALL FUNCTION 'Z_STANDARD_HEADER'

      EXPORTING

      title1 = 'Saudi International Petrochemical Company'(012)

      title2 = v_str.

      FORMAT COLOR 1 intensified.

      WRITE :/1(206) sy-uline.

      WRITE :/1 sy-vline,12 sy-vline ,

      23 sy-vline,59 sy-vline,76 sy-vline,87 sy-vline,

      88(101) 'Invoices Due For(In Days)'(014) CENTERED,

      189 sy-vline,206 sy-vline.

      WRITE : /1 sy-vline, 2(10) 'Doc Number'(021) CENTERED,

      12 sy-vline, 13(10) 'Vendor#'(015) CENTERED,

      23 sy-vline, 24(35) 'Vendor Name'(016) CENTERED,

      59 sy-vline, 60(16) 'Ref invoice#'(019) CENTERED,

      76 sy-vline, 77(10) 'Inv dt'(020) CENTERED,

      87 sy-vline, 88(101) sy-uline,

      189 sy-vline,190(16) 'Total'(017) CENTERED,

      206 sy-vline.

      WRITE : /1 sy-vline, 12 sy-vline,

      23 sy-vline,59 sy-vline,

      76 sy-vline,87 sy-vline,

      88(16) v_fir CENTERED, 104 sy-vline,

      105(16) v_sec CENTERED, 121 sy-vline,

      122(16) v_thir CENTERED, 138 sy-vline,

      139(16) v_four CENTERED, 155 sy-vline,

      156(16) v_str1 CENTERED,

      172 sy-vline,

      173(16) 'Already Overdue'(018) CENTERED,

      189 sy-vline,

      206 sy-vline.

      format color off.

      WRITE : /1(206) sy-uline.

      ENDFORM. " header1

      The below link will give Tables & Relations.

      http://www.erpgenie.com/abap/tables.htm

      http://goldenink.com/abap/files_in_sap.html

      http://abap4.tripod.com/SAP_Tables.html

      http://www.geocities.com/sapcircle/Relations.pdf

      regards,

      indranil

  • Oct 01, 2008 at 08:53 AM

    There are already plenty of standard reports for vendor aging alanysis.

    like:

    s_alr_87012084,F.41 is it not reach as your requirement.

    else for code you may take help from this:

    Add comment
    10|10000 characters needed characters exceeded