2007 Oct 17 6:56 AM
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.
2007 Oct 17 6:59 AM
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
2010 Feb 18 9:01 AM
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.
2011 Jul 13 12:51 PM
Dear Anji Reddy,
i really appriciate for contiribution... surly this help ful.