Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

customer aging report

Former Member
0 Kudos
310

hi,

i need to do customer aging report related to SD.

i need to know how i can get the outstanding amount of the customer using the zterm (payment key t052).

i found the explanation for each zterm in t052u,but how can i get the outstanding amount since i have to display that.

is there any FM that claulate acoording to the explanation and gives the amount as output? or table that stores the information.

3 REPLIES 3

Former Member
0 Kudos
61

Hi

See this sample code which displays the customer outstandings as per age(period)

report zf_rept_debtor_ageing

no standard page heading

message-id fb

line-count 65

line-size 230.

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

  • Purpose : This ABAP program will fetch the Account Receivables for

  • a Customer for the given period and display the due days.

*----


tables: t001, " Company Codes

t005, " Countries

skb1, " GL Master

kna1. " Customer Master

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

  • Internal Tables

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

  • Internal table for BSID (Open Items) data

data: begin of it_bsid occurs 0,

kunnr like bsid-kunnr, " Customer Number

gjahr like bsid-gjahr, " Fiscal Year

belnr like bsid-belnr, " Acc.Document

buzei like bsid-buzei, " Item

budat like bsid-budat, " Posting Date

shkzg like bsid-shkzg, " Dr/Cr Indicator

dmbtr like bsid-dmbtr, " Amount(Local Curr)

wrbtr like bsid-wrbtr, " Amount(Doc Curr)

dmbe2 like bsid-dmbe2, " Amount(USD)

waers like bsid-waers, " Currency

zterm like bsid-zterm, " Payment Terms

vbeln like bsid-vbeln, " Billing Doc

zfbdt like bsid-zfbdt, " Baseline Date

zbd1t like bsid-zbd1t, " No of days

hkont like bsid-hkont, " GL Account

name1 like kna1-name1, " Customer Name

land1 like kna1-land1, " Country

end of it_bsid.

  • Internal table for BSAD (Closed Items) data

data: begin of it_bsad occurs 0,

kunnr like bsad-kunnr, " Customer Number

gjahr like bsad-gjahr, " Fiscal Year

belnr like bsad-belnr, " Acc.Document

buzei like bsad-buzei, " Item

budat like bsad-budat, " Posting Date

shkzg like bsad-shkzg, " Dr/Cr Indicator

dmbtr like bsad-dmbtr, " Amount(Local Curr)

wrbtr like bsid-wrbtr, " Amount(Doc Curr)

dmbe2 like bsad-dmbe2, " Amount(USD)

waers like bsad-waers, " Currency

zterm like bsid-zterm, " Payment Terms

vbeln like bsid-vbeln, " Billing Doc

zfbdt like bsid-zfbdt, " Baseline Date

zbd1t like bsid-zbd1t, " No of days

hkont like bsid-hkont, " GL Account

name1 like kna1-name1, " Customer Name

land1 like kna1-land1, " Country

end of it_bsad.

  • Internal table for Report Output

data: begin of it_report occurs 0,

kunnr like bsid-kunnr, " Customer Number

belnr like bsid-belnr, " Acc.Document

name1 like kna1-name1, " Customer Name

land1 like kna1-land1, " Country

shkzg like bsid-shkzg, " Dr/Cr Indicator

budat like bsid-budat, " Posting Date

dmbtr like bsid-dmbtr, " Amount(Local Curr)

wrbtr like bsid-wrbtr, " Amount(Doc Curr)

dmbe2 like bsid-dmbe2, " Amount(USD)

waers like bsid-waers, " Currency

due_amnt like bsid-dmbtr, " Amount(Over Due)

d_amnt1 like bsid-dmbtr, " Amount(0-30 Future Due)

d_amnt2 like bsid-dmbtr, " Amount(31-60 Future Due)

d_amnt3 like bsid-dmbtr, " Amount(61-90 Future Due)

d_amnt4 like bsid-dmbtr, " Amount(91-120 Future Due)

d_amnt5 like bsid-dmbtr, " Amount(more than 120)

due_date like bsid-budat, " Due date

zterm like bsid-zterm, " Payment Terms

vbeln like bsid-vbeln, " Billing Doc

end of it_report.

*----


  • Declaration of Data and Variables

*----


data: v_days type i, " Difference days

v_waers like t001-waers, " Co.Code Currency

v_sum1 like bsid-dmbtr, " Totals 1

v_sum2 like bsid-dmbtr, " Totals 2

v_sum3 like bsid-dmbtr, " Totals 3

v_sum4 like bsid-dmbtr, " Totals 4

v_sum5 like bsid-dmbtr, " Totals 5

v_sum6 like bsid-dmbtr, " Totals 6

v_sum7 like bsid-dmbtr, " Totals 7

v_sum8 like bsid-dmbe2. " Totals 8

  • Constants

constants: c_doc_waers(3) value 'USD',

c_mitkz type c value 'D'.

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

  • Selection Screen

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

selection-screen : begin of block b1 with frame title text-001.

parameters: p_bukrs like t001-bukrs obligatory. " Company Code

select-options:s_kunnr for kna1-kunnr, " Customer Number

s_land1 for t005-land1, " Country

s_hkont for skb1-saknr. " G/L Account

parameters: p_date like sy-datum obligatory. " Report Date

selection-screen: end of block b1.

selection-screen : begin of block b2 with frame title text-002.

selection-screen begin of line.

selection-screen comment 2(30) text-003 for field p_rb1.

parameters: p_rb1 radiobutton group rb.

selection-screen end of line.

selection-screen begin of line.

selection-screen comment 2(30) text-004 for field p_rb2.

parameters: p_rb2 radiobutton group rb.

selection-screen end of line.

selection-screen: end of block b2.

selection-screen : begin of block b4 with frame.

selection-screen begin of line.

selection-screen comment 2(29) text-038 for field p_chk1.

parameters: p_chk1 as checkbox.

selection-screen end of line.

selection-screen: end of block b4.

selection-screen : begin of block b3 with frame title text-030.

selection-screen begin of line.

selection-screen comment 2(30) text-031 for field p_rb3.

parameters: p_rb3 radiobutton group rb1.

selection-screen end of line.

selection-screen begin of line.

selection-screen comment 2(30) text-032 for field p_rb4.

parameters: p_rb4 radiobutton group rb1.

selection-screen end of line.

selection-screen: end of block b3.

*********Initialization**********************************************

initialization.

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

  • At Selection Screen

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

at selection-screen.

  • Checking for the input values of selection screen.

perform screen_check.

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

  • Top-Of-Page

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

top-of-page.

if p_rb3 = 'X'.

if p_chk1 = 'X'.

  • Write the Column Headings for detailed report(in Doc Currency)

perform col_heading2.

else.

  • Write the Column Headings for detailed report

perform col_heading.

endif.

else.

  • Write the Column Headings for summary report

perform col_heading1.

endif.

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

  • Start-Of-Selection

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

start-of-selection.

  • Get the Customer Open Items from BSID

perform get_open_data.

  • Get the Customer Closed Items from BSAD

perform get_close_data.

  • Get the data from BSID,BSAD and KNA1 into one int.table

perform process_data.

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

  • End-Of-Selection

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

end-of-selection.

if it_report[] is initial.

write : 'No Documents found'(005).

else.

if p_rb3 = 'X'.

  • Write the Detailed Report

perform write_report.

else.

  • Write the Summary Report

perform write_report1.

endif.

endif.

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

&----


*& Form SCREEN_CHECK

&----


  • Checking for the input values of selection screen

----


form screen_check.

  • Validation of Company Code

clear t001.

if not p_bukrs is initial.

select bukrs from t001 up to 1 rows

into t001-bukrs

where bukrs = p_bukrs.

endselect.

if sy-subrc ne 0.

message e000 with 'Invalid Company Code'(006).

endif.

endif.

  • Validation of Customer Number

clear kna1.

if not s_kunnr is initial.

select kunnr from kna1 up to 1 rows

into kna1-kunnr

where kunnr in s_kunnr.

endselect.

if sy-subrc ne 0.

message e000 with 'Invalid Customer Number'(007).

endif.

endif.

  • Validation of Country

clear t005.

if not s_land1 is initial.

select land1 from t005 up to 1 rows

into t005-land1

where land1 in s_land1.

endselect.

if sy-subrc ne 0.

message e000 with 'Invalid Country'(036).

endif.

endif.

  • Validation of GL Account

clear skb1.

if not s_hkont is initial.

select saknr from skb1 up to 1 rows

into skb1-saknr

where saknr in s_hkont and

mitkz = c_mitkz.

endselect.

if sy-subrc ne 0.

message e000 with 'Invalid GL Reconciliation Account'(037).

endif.

endif.

endform. " SCREEN_CHECK

&----


*& Form COL_HEADING

&----


  • Write the Column Headings for detailed report

----


form col_heading.

skip .

write: /88 'DEBTOR AGEING REPORT AS AT:'(019) centered,

116 p_date centered, 198 sy-pagno.

skip .

write: /2 'CoCode:'(016),13(4) p_bukrs color 3.

if not s_kunnr is initial.

if not s_kunnr-high is initial.

write: 20 'Customer:'(041),33 s_kunnr-low color 3,

'-', s_kunnr-high color 3.

else.

write: 20 'Customer:'(041),33 s_kunnr-low color 3.

endif.

endif.

if not s_land1 is initial.

if not s_land1-high is initial.

write: /2 'Country:'(042),13(4) s_land1-low color 3,

'-', s_land1-high color 3.

else.

write: /2 'Country:'(042),13(4) s_land1-low color 3.

endif.

if not s_hkont is initial.

if not s_hkont-high is initial.

write: 20 'GL Account:'(043),33 s_hkont-low color 3,

'-', s_hkont-high color 3.

else.

write: 20 'GL Account:'(043),33 s_hkont-low color 3.

endif.

endif.

else.

if not s_hkont is initial.

if not s_hkont-high is initial.

write: /2 'GL Account:'(043),14 s_hkont-low color 3,

'-', s_hkont-high color 3.

else.

write: /2 'GL Account:'(043),14 s_hkont-low color 3.

endif.

endif.

endif.

write: 183 'Run Date:'(029), sy-datum.

format color col_heading.

write at /1(203) sy-uline .

write: / sy-vline, 2(10) 'Customer'(008) centered,

12 sy-vline, 13(30) 'Customer Name'(009),

43 sy-vline, 44(3) 'Cty'(014) centered,

47 sy-vline, 48(15) 'Amount'(013) right-justified,

63 sy-vline, 64(4) 'Curr'(011) centered,

68 sy-vline, 69(15) 'Overdue'(012) centered,

84 sy-vline, 85(15) '0 - 30 Days'(010) centered,

100 sy-vline,101(15) '31 - 60 Days'(028) centered,

116 sy-vline,117(15) '61 - 90 Days'(021) centered,

132 sy-vline,133(15) '91 - 120 Days'(022) centered,

148 sy-vline,149(15) 'Above 120 Days'(023) centered,

164 sy-vline,165(10) 'Due Date'(024) centered,

175 sy-vline,176(5) 'PayT'(025) centered,

181 sy-vline,182(10) 'Bill.Doc.'(026) centered,

192 sy-vline,193(10) 'Doc.No.'(027) centered,

203 sy-vline.

write at /1(203) sy-uline.

format color off.

endform. " COL_HEADING

&----


*& Form COL_HEADING1

&----


  • Write the Column Headings for summary report

----


form col_heading1.

skip .

write: /54 'DEBTOR AGEING REPORT (SUMMARY) AS AT:'(033) centered,

92 p_date centered, 158 sy-pagno.

skip .

write: /2 'CoCode:'(016), 13(4) p_bukrs color 3.

if not s_kunnr is initial.

if not s_kunnr-high is initial.

write: 20 'Customer:'(041),33 s_kunnr-low color 3,

'-', s_kunnr-high color 3.

else.

write: 20 'Customer:'(041),33 s_kunnr-low color 3.

endif.

endif.

if not s_land1 is initial.

if not s_land1-high is initial.

write: /2 'Country:'(042),13(4) s_land1-low color 3,

'-', s_land1-high color 3.

else.

write: /2 'Country:'(042),13(4) s_land1-low color 3.

endif.

if not s_hkont is initial.

if not s_hkont-high is initial.

write: 20 'GL Account:'(043),33 s_hkont-low color 3,

'-', s_hkont-high color 3.

else.

write: 20 'GL Account:'(043),33 s_hkont-low color 3.

endif.

endif.

else.

if not s_hkont is initial.

if not s_hkont-high is initial.

write: /2 'GL Account:'(043),14 s_hkont-low color 3,

'-', s_hkont-high color 3.

else.

write: /2 'GL Account:'(043),14 s_hkont-low color 3.

endif.

endif.

endif.

write: 144 'Run Date:'(029), sy-datum.

format color col_heading.

write at /1(164) sy-uline .

write: / sy-vline, 2(10) 'Customer'(008) centered,

12 sy-vline, 13(30) 'Customer Name'(009),

43 sy-vline, 44(3) 'Cty'(014) centered,

47 sy-vline, 48(15) 'Amount'(013) right-justified,

63 sy-vline, 64(4) 'Curr'(011) centered,

68 sy-vline, 69(15) 'Overdue'(012) centered,

84 sy-vline, 85(15) '0 - 30 Days'(010) centered,

100 sy-vline,101(15) '31 - 60 Days'(028) centered,

116 sy-vline,117(15) '61 - 90 Days'(021) centered,

132 sy-vline,133(15) '91 - 120 Days'(022) centered,

148 sy-vline,149(15) 'Above 120 Days'(023) centered,

164 sy-vline.

write at /1(164) sy-uline.

format color off.

endform. " COL_HEADING1

&----


*& Form COL_HEADING2

&----


  • Write the Column Headings for summary report(in Doc Curr)

----


form col_heading2.

skip .

write: /99 'DEBTOR AGEING REPORT AS AT:'(019) centered,

127 p_date centered, 220 sy-pagno.

skip .

write: /2 'CoCode:'(016),13(4) p_bukrs color 3.

if not s_kunnr is initial.

if not s_kunnr-high is initial.

write: 20 'Customer:'(041),33 s_kunnr-low color 3,

'-', s_kunnr-high color 3.

else.

write: 20 'Customer:'(041),33 s_kunnr-low color 3.

endif.

endif.

if not s_land1 is initial.

if not s_land1-high is initial.

write: /2 'Country:'(042),13(4) s_land1-low color 3,

'-', s_land1-high color 3.

else.

write: /2 'Country:'(042),13(4) s_land1-low color 3.

endif.

if not s_hkont is initial.

if not s_hkont-high is initial.

write: 20 'GL Account:'(043),33 s_hkont-low color 3,

'-', s_hkont-high color 3.

else.

write: 20 'GL Account:'(043),33 s_hkont-low color 3.

endif.

endif.

else.

if not s_hkont is initial.

if not s_hkont-high is initial.

write: /2 'GL Account:'(043),14 s_hkont-low color 3,

'-', s_hkont-high color 3.

else.

write: /2 'GL Account:'(043),14 s_hkont-low color 3.

endif.

endif.

endif.

write: 204 'Run Date:'(029), sy-datum.

format color col_heading.

write at /1(225) sy-uline .

write: / sy-vline, 2(10) 'Customer'(008) centered,

12 sy-vline, 13(30) 'Customer Name'(009),

43 sy-vline, 44(3) 'Cty'(014) centered,

47 sy-vline, 48(15) 'Amount'(013) right-justified,

63 sy-vline, 64(4) 'Curr'(011) centered,

68 sy-vline, 69(15) 'Overdue'(012) centered,

84 sy-vline, 85(15) '0 - 30 Days'(010) centered,

100 sy-vline,101(15) '31 - 60 Days'(028) centered,

116 sy-vline,117(15) '61 - 90 Days'(021) centered,

132 sy-vline,133(15) '91 - 120 Days'(022) centered,

148 sy-vline,149(15) 'Above 120 Days'(023) centered,

164 sy-vline,165(10) 'Due Date'(024) centered,

175 sy-vline,176(5) 'PayT'(025) centered,

181 sy-vline,182(10) 'Bill.Doc.'(026) centered,

192 sy-vline,193(10) 'Doc.No.'(027) centered,

203 sy-vline,204(16) 'Amount(Doc.Curr)'(039),

220 sy-vline,221(4) 'Curr'(040),

225 sy-vline.

write at /1(225) sy-uline.

format color off.

endform. " COL_HEADING2

&----


*& Form GET_OPEN_DATA

&----


  • Get the Customer Open Items from BSID

----


form get_open_data.

select a~kunnr " Customer Number

a~gjahr " Fiscal Year

a~belnr " Acc.Document

a~buzei " Item

a~budat " Posting Date

a~shkzg " Dr/Cr Indicator

a~dmbtr " Amount(Local Curr)

a~wrbtr " Amount(Doc Curr)

a~dmbe2 " Amount(USD)

a~waers " Currency

a~zterm " Payment Terms

a~vbeln " Billing Doc

a~zfbdt " Baseline Date

a~zbd1t " No of days

a~hkont " GL account

b~name1 " Customer Name

b~land1 " Country

into table it_bsid

from bsid as a join kna1 as b

on akunnr = bkunnr

where a~bukrs = p_bukrs and

a~kunnr in s_kunnr and

a~hkont in s_hkont and

b~land1 in s_land1 and

a~budat le p_date.

sort it_bsid by kunnr gjahr belnr buzei budat.

endform. " GET_OPEN_DATA

&----


*& Form GET_CLOSE_DATA

&----


  • Get the Customer closed Items from BSID

----


form get_close_data.

select a~kunnr " Customer Number

a~gjahr " Fiscal Year

a~belnr " Acc.Document

a~buzei " Item

a~budat " Posting Date

a~shkzg " Dr/Cr Indicator

a~dmbtr " Amount(Local Curr)

a~wrbtr " Amount(Doc Curr)

a~dmbe2 " Amount(USD)

a~waers " Currency

a~zterm " Payment Terms

a~vbeln " Billing Doc

a~zfbdt " Baseline Date

a~zbd1t " No of days

a~hkont " GL account

b~name1 " Customer Name

b~land1 " Country

into table it_bsad

from bsad as a join kna1 as b

on akunnr = bkunnr

where a~bukrs = p_bukrs and

a~kunnr in s_kunnr and

a~hkont in s_hkont and

b~land1 in s_land1 and

a~augdt > p_date and

a~budat le p_date.

sort it_bsad by kunnr gjahr belnr buzei budat.

endform. " GET_CLOSE_DATA

&----


*& Form PROCESS_DATA

&----


  • Get the data from BSID,BSAD and KNA1 into one int.table

----


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.

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.

  • For Company Code Currency

if p_rb1 = 'X'.

if v_days le 0.

it_report-due_amnt = it_report-dmbtr.

elseif v_days between 1 and 30.

it_report-d_amnt1 = it_report-dmbtr.

elseif v_days between 31 and 60.

it_report-d_amnt2 = it_report-dmbtr.

elseif v_days between 61 and 90.

it_report-d_amnt3 = it_report-dmbtr.

elseif v_days between 91 and 120.

it_report-d_amnt4 = it_report-dmbtr.

elseif v_days > 120.

it_report-d_amnt5 = it_report-dmbtr.

endif.

  • For Group Currency

else.

if v_days le 0.

it_report-due_amnt = it_report-dmbe2.

elseif v_days between 1 and 30.

it_report-d_amnt1 = it_report-dmbe2.

elseif v_days between 31 and 60.

it_report-d_amnt2 = it_report-dmbe2.

elseif v_days between 61 and 90.

it_report-d_amnt3 = it_report-dmbe2.

elseif v_days between 91 and 120.

it_report-d_amnt4 = it_report-dmbe2.

elseif v_days > 120.

it_report-d_amnt5 = it_report-dmbe2.

endif.

endif.

modify it_report index sy-tabix.

endloop.

endform. " PROCESS_DATA

&----


*& Form WRITE_REPORT

&----


  • Write the Detailed Report Output

----


form write_report.

clear: v_sum1,v_sum2,v_sum3,v_sum4,v_waers,

v_sum5,v_sum6,v_sum7,v_sum8.

loop at it_report.

  • at new kunnr.

read table it_report index sy-tabix.

write: / sy-vline, 2(10) it_report-kunnr,

12 sy-vline, 13(30) it_report-name1,

43 sy-vline, 44(3) it_report-land1,

47 sy-vline.

  • endat.

if p_rb1 = 'X'.

select single waers from t001

into v_waers where bukrs = p_bukrs.

write: 1 sy-vline, 12 sy-vline,

43 sy-vline,

47 sy-vline,

48(15) it_report-dmbtr currency it_report-waers,

63 sy-vline, 64(4) v_waers,

68 sy-vline.

else.

write: 1 sy-vline, 12 sy-vline,

43 sy-vline,

47 sy-vline,

48(15) it_report-dmbe2 currency it_report-waers,

63 sy-vline,64(4) c_doc_waers,

68 sy-vline.

endif.

write: 69(15) it_report-due_amnt currency it_report-waers,

84 sy-vline,

85(15) it_report-d_amnt1 currency it_report-waers,

100 sy-vline,

101(15) it_report-d_amnt2 currency it_report-waers,

116 sy-vline,

117(15) it_report-d_amnt3 currency it_report-waers,

132 sy-vline,

133(15) it_report-d_amnt4 currency it_report-waers,

148 sy-vline,

149(15) it_report-d_amnt5 currency it_report-waers,

164 sy-vline,165(10) it_report-due_date,

175 sy-vline,176(5) it_report-zterm,

181 sy-vline,182(10) it_report-vbeln,

192 sy-vline,193(10) it_report-belnr,

203 sy-vline.

if p_chk1 = 'X'.

write: 204(16) it_report-wrbtr currency it_report-waers,

220 sy-vline, 221(4) it_report-waers,

225 sy-vline.

endif.

  • new-line.

  • Totals for end of each Customer

at end of kunnr.

if p_chk1 = 'X'.

write at /1(225) sy-uline.

else.

write at /1(203) sy-uline.

endif.

sum.

format color 4.

if p_rb1 = 'X'.

write: /1 sy-vline, 2 'Total:'(015),

12 sy-vline,

13(10) it_report-kunnr,

43 sy-vline,47 sy-vline,

48(15) it_report-dmbtr currency it_report-waers,

63 sy-vline, 64(3) v_waers,

68 sy-vline,

69(15) it_report-due_amnt currency it_report-waers,

84 sy-vline,

85(15) it_report-d_amnt1 currency it_report-waers,

100 sy-vline,

101(15) it_report-d_amnt2 currency it_report-waers,

116 sy-vline,

117(15) it_report-d_amnt3 currency it_report-waers,

132 sy-vline,

133(15) it_report-d_amnt4 currency it_report-waers,

148 sy-vline,

149(15) it_report-d_amnt5 currency it_report-waers,

164 sy-vline, 175 sy-vline,

181 sy-vline, 192 sy-vline,

203 sy-vline.

if p_chk1 = 'X'.

write: 220 sy-vline, 225 sy-vline.

endif.

else.

write: /1 sy-vline, 2 'Total:'(015),

12 sy-vline,

13(10) it_report-kunnr,

43 sy-vline,

47 sy-vline,

48(15) it_report-dmbe2 currency it_report-waers,

63 sy-vline, 64(3) c_doc_waers,

68 sy-vline,

69(15) it_report-due_amnt currency it_report-waers,

84 sy-vline,

85(15) it_report-d_amnt1 currency it_report-waers,

100 sy-vline,

101(15) it_report-d_amnt2 currency it_report-waers,

116 sy-vline,

117(15) it_report-d_amnt3 currency it_report-waers,

132 sy-vline,

133(15) it_report-d_amnt4 currency it_report-waers,

148 sy-vline,

149(15) it_report-d_amnt5 currency it_report-waers,

164 sy-vline, 175 sy-vline,

181 sy-vline, 192 sy-vline,

203 sy-vline.

if p_chk1 = 'X'.

write: 220 sy-vline, 225 sy-vline.

endif.

endif.

format color off.

if p_chk1 = 'X'.

write at /1(225) sy-uline.

else.

write at /1(203) sy-uline.

endif.

endat.

v_sum1 = v_sum1 + it_report-dmbtr.

v_sum2 = v_sum2 + it_report-due_amnt.

v_sum3 = v_sum3 + it_report-d_amnt1.

v_sum4 = v_sum4 + it_report-d_amnt2.

v_sum5 = v_sum5 + it_report-d_amnt3.

v_sum6 = v_sum6 + it_report-d_amnt4.

v_sum7 = v_sum7 + it_report-d_amnt5.

v_sum8 = v_sum8 + it_report-dmbe2.

  • Hiding the Acc doc no for interactic screen.

hide it_report-belnr.

hide it_report-budat.

clear:it_report-belnr, it_report-budat.

endloop.

  • Grand Totals for all customers

format color 3.

write: /1 sy-vline, 2 'Gr.Total'(034),

12 sy-vline,13 'As At:'(035),p_date,

43 sy-vline,

47 sy-vline.

  • For Company Code Currency

if p_rb1 = 'X'.

write: 48(15) v_sum1 currency it_report-waers,

63 sy-vline, 64(4) v_waers,

68 sy-vline.

  • For Group Currency (USD)

else.

write: 48(15) v_sum8 currency it_report-waers,

63 sy-vline, 64(3) c_doc_waers,

68 sy-vline.

endif.

write: 69(15) v_sum2 currency it_report-waers,

84 sy-vline,

85(15) v_sum3 currency it_report-waers,

100 sy-vline,

101(15) v_sum4 currency it_report-waers,

116 sy-vline,

117(15) v_sum5 currency it_report-waers,

132 sy-vline,

133(15) v_sum6 currency it_report-waers,

148 sy-vline,

149(15) v_sum7 currency it_report-waers,

164 sy-vline, 175 sy-vline,

181 sy-vline, 192 sy-vline,

203 sy-vline.

if p_chk1 = 'X'.

write: 220 sy-vline, 225 sy-vline.

endif.

format color off.

if p_chk1 = 'X'.

write at /1(225) sy-uline.

else.

write at /1(203) sy-uline.

endif.

endform. " WRITE_REPORT

&----


*& Form WRITE_REPORT1

&----


  • Write the Summary Report Output

----


form write_report1.

clear: v_sum1,v_sum2,v_sum3,v_sum4,v_waers,

v_sum5,v_sum6,v_sum7,v_sum8.

loop at it_report.

at new kunnr.

read table it_report index sy-tabix.

write: / sy-vline, 2(10) it_report-kunnr,

12 sy-vline, 13(30) it_report-name1,

43 sy-vline, 44(3) it_report-land1,

47 sy-vline.

endat.

at end of kunnr.

sum.

if p_rb1 = 'X'.

select single waers from t001

into v_waers where bukrs = p_bukrs.

write: 1 sy-vline, 12 sy-vline,

43 sy-vline, 47 sy-vline,

48(15) it_report-dmbtr currency it_report-waers,

63 sy-vline, 64(4) v_waers,

68 sy-vline,

69(15) it_report-due_amnt currency it_report-waers,

84 sy-vline,

85(15) it_report-d_amnt1 currency it_report-waers,

100 sy-vline,

101(15) it_report-d_amnt2 currency it_report-waers,

116 sy-vline,

117(15) it_report-d_amnt3 currency it_report-waers,

132 sy-vline,

133(15) it_report-d_amnt4 currency it_report-waers,

148 sy-vline,

149(15) it_report-d_amnt5 currency it_report-waers,

164 sy-vline.

else.

write: 1 sy-vline, 12 sy-vline,

43 sy-vline, 47 sy-vline,

48(15) it_report-dmbe2 currency it_report-waers,

63 sy-vline, 64(4) c_doc_waers,

68 sy-vline,

69(15) it_report-due_amnt currency it_report-waers,

84 sy-vline,

85(15) it_report-d_amnt1 currency it_report-waers,

100 sy-vline,

101(15) it_report-d_amnt2 currency it_report-waers,

116 sy-vline,

117(15) it_report-d_amnt3 currency it_report-waers,

132 sy-vline,

133(15) it_report-d_amnt4 currency it_report-waers,

148 sy-vline,

149(15) it_report-d_amnt5 currency it_report-waers,

164 sy-vline.

endif.

write at /1(164) sy-uline.

endat.

  • Totals

v_sum1 = v_sum1 + it_report-dmbtr.

v_sum2 = v_sum2 + it_report-due_amnt.

v_sum3 = v_sum3 + it_report-d_amnt1.

v_sum4 = v_sum4 + it_report-d_amnt2.

v_sum5 = v_sum5 + it_report-d_amnt3.

v_sum6 = v_sum6 + it_report-d_amnt4.

v_sum7 = v_sum7 + it_report-d_amnt5.

v_sum8 = v_sum8 + it_report-dmbe2.

endloop.

  • Calculation of Grand Totals

format color 3.

write: /1 sy-vline, 2 'Gr.Total'(034),

12 sy-vline,13 'As At:'(035),p_date,

43 sy-vline,

47 sy-vline.

  • For Company Code Currency

if p_rb1 = 'X'.

write: 48(15) v_sum1 currency it_report-waers,

63 sy-vline, 64(4) v_waers,

68 sy-vline.

  • For Group Currency (USD)

else.

write: 48(15) v_sum8 currency it_report-waers,

63 sy-vline, 64(3) c_doc_waers,

68 sy-vline.

endif.

write: 69(15) v_sum2 currency it_report-waers,

84 sy-vline,

85(15) v_sum3 currency it_report-waers,

100 sy-vline,

101(15) v_sum4 currency it_report-waers,

116 sy-vline,

117(15) v_sum5 currency it_report-waers,

132 sy-vline,

133(15) v_sum6 currency it_report-waers,

148 sy-vline,

149(15) v_sum7 currency it_report-waers,

164 sy-vline.

format color off.

write at /1(164) sy-uline.

endform. " WRITE_REPORT1

Regards

Anji

0 Kudos
61

Dear Anji Reddy,

I tried a lot to prepare customer ageing report. But my logic is not working . Can you give me some idea on this. I tried the code given by you here. When i tried this is my system . it is going to run time error. Can you share your ideas with me on this .

Regards,

Madhu.

0 Kudos
61

Dear Anji Reddy,

i really appriciate for contiribution... surly this help ful.