on 09-19-2008 12:57 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
solved
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Manish,
F.41 for Vendor Ageing Report
F.21 Customer Ageing Report
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
108 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.