cancel
Showing results for 
Search instead for 
Did you mean: 

Customer Ageing Report

Former Member

hi all

In Sap Standard Report of Cusomer Ageing "S_ALR_87012168 - Due Date Analysis for Open Items" in that report the amount display as net due date wise but our requirement is display balances is take for posting date wise (means calculate days for posting date to todays date interval) instead of due date we want ageing from bill date can it be possible in this report plz suggest me any other report for customer ageing.

Regards,

manish

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

hi,

i am suggest for you, you are custimized in outstanding report, then your requirement full fill.

any other standard report not define in the sap.

pls customized the report ur it team.

rohit

Answers (4)

Answers (4)

Former Member
0 Kudos

solved

Former Member
0 Kudos

Try This

REPORT ZFI_CUSTOMER_AGEING_REPORT_ALV.

&----


*& Form GET_OPEN_DATA

&----


FORM GET_OPEN_DATA .

SELECT KUNNR " Customer Number

GJAHR " Fiscal Year

BELNR " Acc.Document

BUZEI " Item

BUDAT " Posting Date

SHKZG " Dr/Cr Indicator

DMBTR " Amount(Local Curr)

WRBTR " Amount(Doc Curr)

DMBE2 " Amount(USD)

WAERS " Currency

ZTERM " Payment Terms

VBELN " Billing Doc

ZFBDT " Baseline Date

ZBD1T " No of days

HKONT " GL account

INTO TABLE IT_BSID FROM BSID

WHERE BUKRS = P_BUKRS

AND KUNNR IN S_KUNNR

AND HKONT IN S_HKONT

AND BUDAT LE P_DATE.

SORT IT_BSID BY KUNNR GJAHR BELNR BUZEI BUDAT.

ENDFORM. " GET_OPEN_DATA

&----


*& Form GET_CLOSE_DATA

&----


FORM GET_CLOSE_DATA .

SELECT KUNNR " Customer Number

GJAHR " Fiscal Year

BELNR " Acc.Document

BUZEI " Item

BUDAT " Posting Date

SHKZG " Dr/Cr Indicator

DMBTR " Amount(Local Curr)

WRBTR " Amount(Doc Curr)

DMBE2 " Amount(USD)

WAERS " Currency

ZTERM " Payment Terms

VBELN " Billing Doc

ZFBDT " Baseline Date

ZBD1T " No of days

HKONT " GL account

INTO TABLE IT_BSAD FROM BSAD

WHERE BUKRS = P_BUKRS

AND KUNNR IN S_KUNNR

AND HKONT IN S_HKONT

AND AUGDT > P_DATE

AND BUDAT LE P_DATE.

SORT IT_BSAD BY KUNNR GJAHR BELNR BUZEI BUDAT.

ENDFORM. " GET_CLOSE_DATA

&----


*& Form PROCESS_DATA

&----


FORM PROCESS_DATA .

*Move the data from BSID to final output int table

LOOP AT IT_BSID.

MOVE-CORRESPONDING IT_BSID TO IT_REPORT.

IT_REPORT-DUE_DATE = IT_BSID-ZFBDT + IT_BSID-ZBD1T.

APPEND IT_REPORT.

CLEAR IT_REPORT.

ENDLOOP.

*Move the data from BSAD to final output int table

LOOP AT IT_BSAD.

MOVE-CORRESPONDING IT_BSAD TO IT_REPORT.

IT_REPORT-DUE_DATE = IT_BSAD-ZFBDT + IT_BSAD-ZBD1T.

APPEND IT_REPORT.

CLEAR IT_REPORT.

ENDLOOP.

LOOP AT IT_REPORT .

SELECT SINGLE PRCTR FROM FAGLFLEXA INTO IT_REPORT-PRCTR WHERE BELNR = IT_REPORT-BELNR

AND GJAHR = IT_REPORT-GJAHR

AND BUDAT = IT_REPORT-BUDAT

AND BUZEI = IT_REPORT-BUZEI

AND PRCTR IN S_PRCTR.

IF SY-SUBRC NE 0.

DELETE IT_REPORT.

ELSE.

MODIFY IT_REPORT.

ENDIF.

ENDLOOP.

SORT IT_REPORT BY KUNNR BELNR.

LOOP AT IT_REPORT.

IF IT_REPORT-SHKZG = 'H'. " Credit

IT_REPORT-DMBTR = IT_REPORT-DMBTR * -1.

IT_REPORT-DMBE2 = IT_REPORT-DMBE2 * -1.

ENDIF.

V_DAYS = IT_REPORT-DUE_DATE - P_DATE .

A_DAYS = p_DATE - IT_REPORT-BUDAT.

IF V_DAYS LE 0.

IT_REPORT-DUE_AMNT = IT_REPORT-DMBTR.

ENDIF.

IF A_DAYS >= S_DATE1 AND A_DAYS < S_DATE2.

IT_REPORT-D_AMNT1 = IT_REPORT-DMBTR.

CONCATENATE ' DAYS ' S_DATE1 '-' S_DATE2 INTO TEXT.

IT_REPORT-D_FLAG = TEXT.

ELSEIF A_DAYS >= S_DATE2 AND A_DAYS < S_DATE3.

IT_REPORT-D_AMNT2 = IT_REPORT-DMBTR.

CONCATENATE ' DAYS ' S_DATE2 '-' S_DATE3 INTO TEXT.

IT_REPORT-D_FLAG = TEXT.

ELSEIF A_DAYS >= S_DATE3 AND A_DAYS < S_DATE4.

IT_REPORT-D_AMNT3 = IT_REPORT-DMBTR.

CONCATENATE ' DAYS ' S_DATE3 '-' S_DATE4 INTO TEXT.

IT_REPORT-D_FLAG = TEXT.

ELSEIF A_DAYS >= S_DATE4 AND A_DAYS < S_DATE5.

IT_REPORT-D_AMNT4 = IT_REPORT-DMBTR.

CONCATENATE ' DAYS ' S_DATE4 '-' S_DATE5 INTO TEXT.

IT_REPORT-D_FLAG = TEXT.

ELSEIF A_DAYS >= S_DATE5 .

IT_REPORT-D_AMNT5 = IT_REPORT-DMBTR.

CONCATENATE ' DAYS' ' > ' S_DATE5 INTO TEXT.

IT_REPORT-D_FLAG = TEXT.

ENDIF.

MODIFY IT_REPORT INDEX SY-TABIX.

ENDLOOP.

LOOP AT IT_REPORT.

SELECT SINGLE NAME1 LAND1 INTO (IT_REPORT-NAME1 , IT_REPORT-LAND1 ) FROM KNA1 WHERE KUNNR = IT_REPORT-KUNNR.

MODIFY IT_REPORT .

ENDLOOP.

ENDFORM. " PROCESS_DATA

&----


*& Form Z_CREATE_FIELD_CATALOG1

FORM Z_CREATE_FIELD_CATALOG1 .

FCAT-FIELDNAME = 'KUNNR'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Customer'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'NAME1'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000025'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Customer Name'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'LAND1'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '00005'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Customer Cty'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'BUDAT'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Posting Date'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'PRCTR'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Profit Center'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'DMBTR'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Amount'.

FCAT-DO_SUM = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'WAERS'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Curr'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'DUE_AMNT'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Overdue'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

*u2022dif1

CLEAR TEXT.

CONCATENATE ' DAYS ' S_DATE1 '-' S_DATE2 INTO TEXT.

FCAT-TABNAME = 'IT_REPORT'.

FCAT-SELTEXT_L = TEXT.

FCAT-FIELDNAME = 'D_AMNT1'.

FCAT-OUTPUTLEN = '000015'.

APPEND FCAT.

CLEAR FCAT.

*u2022dif2

CLEAR TEXT.

CONCATENATE ' DAYS ' S_DATE2 '-' S_DATE3 INTO TEXT.

FCAT-SELTEXT_L = TEXT.

FCAT-FIELDNAME = 'D_AMNT2'.

FCAT-OUTPUTLEN = '000015'.

APPEND FCAT.

CLEAR FCAT.

*u2022dif3

CLEAR TEXT.

CONCATENATE 'DAYS ' S_DATE3 '-' S_DATE4 INTO TEXT.

FCAT-SELTEXT_L = TEXT.

FCAT-FIELDNAME = 'D_AMNT3'.

FCAT-OUTPUTLEN = '000015'.

APPEND FCAT.

CLEAR FCAT.

*u2022dif4

CLEAR TEXT.

CONCATENATE 'DAYS ' S_DATE4 '-' S_DATE5 INTO TEXT.

FCAT-SELTEXT_L = TEXT.

FCAT-FIELDNAME = 'D_AMNT4'.

FCAT-OUTPUTLEN = '000015'.

APPEND FCAT.

CLEAR FCAT.

*u2022dif5

CLEAR TEXT.

CONCATENATE ' DAYS' ' > ' S_DATE5 INTO TEXT.

FCAT-SELTEXT_L = TEXT.

FCAT-FIELDNAME = 'D_AMNT5'.

FCAT-OUTPUTLEN = '000015'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'DUE_DATE'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Due Date'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'ZTERM'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'PayT'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'VBELN'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Bill.Doc.'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'BELNR'.

FCAT-HOTSPOT = 'X'.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Doc.No.'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'WRBTR'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Amount(Doc.Curr)'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'WAERS'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Curr'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

    • FCAT-FIELDNAME = 'BELNR'.

    • FCAT-HOTSPOT = ' '.

    • FCAT-OUTPUTLEN = '000015'.

    • FCAT-JUST = 'L'.

    • FCAT-SELTEXT_M = 'Bill.Doc.'.

      • fcat-do_sum = 'X'.

    • APPEND FCAT.

    • CLEAR FCAT.

ENDFORM. " Z_CREATE_FIELD_CATALOG1

&----


*& Form Z_CREATE_FIELD_CATALOG2

&----


FORM Z_CREATE_FIELD_CATALOG2 .

FCAT-FIELDNAME = 'KUNNR'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Customer'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'NAME1'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000025'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Customer Name'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'LAND1'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '00005'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Customer Cty'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'BUDAT'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Posting Date'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'PRCTR'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Profit Center'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'DMBTR'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Amount'.

FCAT-DO_SUM = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'WAERS'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Curr'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'DUE_AMNT'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Overdue'.

APPEND FCAT.

CLEAR FCAT.

CLEAR TEXT.

CONCATENATE ' DAYS ' S_DATE1 '-' S_DATE2 INTO TEXT.

FCAT-TABNAME = 'IT_REPORT'.

FCAT-SELTEXT_L = TEXT.

FCAT-FIELDNAME = 'D_AMNT1'.

FCAT-OUTPUTLEN = '000015'.

APPEND FCAT.

CLEAR FCAT.

*u2022dif2

CLEAR TEXT.

CONCATENATE ' DAYS ' S_DATE2 '-' S_DATE3 INTO TEXT.

FCAT-SELTEXT_L = TEXT.

FCAT-FIELDNAME = 'D_AMNT2'.

FCAT-OUTPUTLEN = '000015'.

APPEND FCAT.

CLEAR FCAT.

*u2022dif3

CLEAR TEXT.

CONCATENATE 'DAYS ' S_DATE3 '-' S_DATE4 INTO TEXT.

FCAT-SELTEXT_L = TEXT.

FCAT-FIELDNAME = 'D_AMNT3'.

FCAT-OUTPUTLEN = '000015'.

APPEND FCAT.

CLEAR FCAT.

*u2022dif4

CLEAR TEXT.

CONCATENATE 'DAYS ' S_DATE4 '-' S_DATE5 INTO TEXT.

FCAT-SELTEXT_L = TEXT.

FCAT-FIELDNAME = 'D_AMNT4'.

FCAT-OUTPUTLEN = '000015'.

APPEND FCAT.

CLEAR FCAT.

*u2022dif5

CLEAR TEXT.

CONCATENATE ' DAYS' ' > ' S_DATE5 INTO TEXT.

FCAT-SELTEXT_L = TEXT.

FCAT-FIELDNAME = 'D_AMNT5'.

FCAT-OUTPUTLEN = '000015'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'DUE_DATE'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Due Date'.

  • fcat-do_sum = 'X'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'ZTERM'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'PayT'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'VBELN'.

FCAT-HOTSPOT = ' '.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Bill.Doc.'.

APPEND FCAT.

CLEAR FCAT.

FCAT-FIELDNAME = 'BELNR'.

FCAT-HOTSPOT = 'X'.

FCAT-OUTPUTLEN = '000015'.

FCAT-JUST = 'L'.

FCAT-SELTEXT_M = 'Doc.No.'.

APPEND FCAT.

CLEAR FCAT.

ENDFORM. " Z_CREATE_FIELD_CATALOG2

&----


*& Form Z_REUSE_ALV_GRID_DISPLAY

&----


FORM Z_REUSE_ALV_GRID_DISPLAY .

DATA: LV_REPID LIKE SY-REPID.

LV_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = LV_REPID

  • i_callback_top_of_page = 'ZTOP_OF_PAGE'

I_CALLBACK_USER_COMMAND = 'Z_USER_COMMAND'

IS_LAYOUT = FS_LAYO

IT_FIELDCAT = FCAT[]

I_DEFAULT = 'X'

I_SAVE = 'U'

IT_EVENTS = FEVENTS[]

IT_SORT = I_SORT

TABLES

T_OUTTAB = IT_REPORT[].

ENDFORM. " Z_REUSE_ALV_GRID_DISPLAY

&----


*& Form Z_USER_COMMAND

&----


FORM Z_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD. "#EC NEEDED

CHECK R_UCOMM = '&IC1'. "User Double Clicked on Some

CHECK NOT RS_SELFIELD-VALUE IS INITIAL.

CASE RS_SELFIELD-FIELDNAME.

WHEN 'BELNR'.

READ TABLE IT_REPORT INDEX RS_SELFIELD-TABINDEX.

IF SY-SUBRC EQ 0.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

ENDIF. " IF SY-SUBRC EQ 0

ENDCASE. " ENDCASE

ENDFORM. " FORM Z_USER_COMMAND

&----


*& Form Z_TOPOFPAGE

FORM Z_TOPOFPAGE. "#EC NEEDED

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

I_LOGO = 'FITP_CORP_LOGO'

IT_LIST_COMMENTARY = FHEADER[].

ENDFORM. " FORM Z_TOPOFPAGE

Edited by: ajitabap on Sep 13, 2011 10:43 AM

Former Member
0 Kudos

Hi Ajit,

I have a similar requirement. Please provide the data declaration and selection screen part of your code.

Regards,

Pankaj

former_member1240588
Contributor
0 Kudos

ITs depend up on your Value date that from which date u want to calculate your due date.

If you take by default your posting date is your Value date it system calculate your due date from Posting date.

Jain

Former Member
0 Kudos

In my understanding the problem is not with the report but with the way SAP is calculating due date in your implementation.

I think you should go to "payment terms customizing" and set there that dude date must be calculated from 'document date' instead of "posting date". I think that when due date is calculated in the way you need aging report will shows the expected information.

Regards

former_member181995
Active Contributor
0 Kudos

Manish,

F.41 for Vendor Ageing Report

F.21 Customer Ageing Report