Sir,
Thanks that suggest but pls find the code on below pls provied this data declaration part and selection options
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