‎2006 Jul 18 8:30 PM
Dear Friend my report is printing from right hand side. Totals and Current r not displaying i am so confused. can u please help me.
*&----
*
*& Report ZFIARVR0010
*&
*&----
*
*&
*&
*&----
*
REPORT ZFIARVR0010 line-size 1022.
====================================================================
AUTHOR : *
DATE WRITTEN : *
APPLICATION : FI-AR *
FUNCTION : Customers Ageing Analysis with Details *
====================================================================
TYPES **********************************
====================================================================
====================================================================
TABLES *********************************
====================================================================
TYPE-POOLS: SLIS.
tables : bseg,
bkpf,
kna1,
bsid,
bsad,
knb1.
DATA: BEGIN OF IT_FINAL OCCURS 0,
KUNNR LIKE KNA1-KUNNR,
NAME1 LIKE KNA1-NAME1,
V_NET1 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 1
V_NET2 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 2
V_NET3 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 3
V_NET4 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 4
V_NET5 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 5
V_NET6 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 6
V_NET7 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 7
V_NET8 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 8
V_NET9 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 9
V_NET10 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 10
V_NET11 LIKE BSID-DMBTR,
V_TTLNET1 LIKE BSID-DMBTR,
V_TTLNET2 LIKE BSID-DMBTR,
V_TTLNET3 LIKE BSID-DMBTR,
V_TTLNET4 LIKE BSID-DMBTR,
V_TTLNET5 LIKE BSID-DMBTR,
V_TTLNET6 LIKE BSID-DMBTR,
V_TTLNET7 LIKE BSID-DMBTR,
V_TTLNET8 LIKE BSID-DMBTR,
V_TTLNET9 LIKE BSID-DMBTR,
V_TTLNET10 LIKE BSID-DMBTR,
V_TTLNET11 LIKE BSID-DMBTR,
V_TTLNET LIKE BSID-DMBTR,
END OF IT_FINAL.
data : begin of customer_tab occurs 0,
kunnr like kna1-kunnr,
name1 like kna1-name1,
flag(1) type c,
end of customer_tab.
data : begin of customerdoc_tab occurs 0,
kunnr like kna1-kunnr,
belnr like bkpf-belnr,
gjahr like bkpf-gjahr,
monat like bkpf-monat,
end of customerdoc_tab.
data : begin of doc_tab occurs 0,
belnr like bkpf-belnr,
gjahr like bkpf-gjahr,
monat like bkpf-monat,
end of doc_tab.
DATA: BEGIN OF BSID_TAB OCCURS 0,
BUKRS LIKE BSID-BUKRS,
PRCTR LIKE BSID-PRCTR,
KUNNR LIKE BSID-KUNNR,
FLAG(1),
UMSKZ LIKE BSID-UMSKZ,
BLART LIKE BSID-BLART,
BELNR LIKE BSID-BELNR,
BUZEI LIKE BSID-BUZEI,
NETDT LIKE BSID-ZFBDT,
ZFBDT LIKE BSID-ZFBDT,
BUDAT LIKE BSID-BUDAT,
BLDAT LIKE BSID-BLDAT,
BSCHL LIKE BSID-BSCHL,
DMBTR LIKE BSID-DMBTR,
SHKZG LIKE BSID-SHKZG,
ZBD1T LIKE BSID-ZBD1T,
ZBD2T LIKE BSID-ZBD2T,
ZBD3T LIKE BSID-ZBD3T,
REBZG LIKE BSID-REBZG,
REBZT LIKE BSID-REBZT,
KOART LIKE BSEG-KOART,
SK1DT LIKE FAEDE-SK1DT,
SK2DT LIKE FAEDE-SK2DT,
DAYSD LIKE SY-TABIX,
END OF BSID_TAB.
DATA: FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,
P_FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,
HEADING TYPE SLIS_T_LISTHEADER,
LAYOUT TYPE SLIS_LAYOUT_ALV,
EVENTS TYPE SLIS_T_EVENT,
REPNAME LIKE SY-REPID,
F2CODE LIKE SY-UCOMM VALUE '&ETA',
G_SAVE(1) TYPE C,
G_EXIT(1) TYPE C,
G_VARIANT LIKE DISVARIANT,
GX_VARIANT LIKE DISVARIANT.
ranges : r_bukrs for bsid-bukrs,
r_kunnr for kna1-kunnr.
===================================================================
VARIABLES *******************************
===================================================================
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*data: Begin of it_final occurs 0,
kunnr like kna1-kunnr,
name1 like kna1-name1,
V_NET1 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 1
V_NET2 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 2
V_NET3 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 3
V_NET4 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 4
V_NET5 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 5
V_NET6 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 6
V_NET7 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 7
V_NET8 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 8
V_NET9 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 9
V_NET10 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 10
V_NET11 LIKE BSID-DMBTR,
V_ttlNET1 LIKE BSID-DMBTR,
V_ttlNET2 LIKE BSID-DMBTR,
V_ttlNET3 LIKE BSID-DMBTR,
V_ttlNET4 LIKE BSID-DMBTR,
V_ttlNET5 LIKE BSID-DMBTR,
V_ttlNET6 LIKE BSID-DMBTR,
V_ttlNET7 LIKE BSID-DMBTR,
V_ttlNET8 LIKE BSID-DMBTR,
V_ttlNET9 LIKE BSID-DMBTR,
V_ttlNET10 LIKE BSID-DMBTR,
V_ttlNET11 LIKE BSID-DMBTR,
V_ttlNET LIKE BSID-DMBTR,
End of it_final.
*
data : v_belnr like bseg-belnr,
v_gjahr like bkpf-gjahr,
v_monat like bkpf-monat,
v_ttlc type p,
v_flag(1) type c,
V_COUNT1(4) TYPE N,
V_COUNT2(4) TYPE N,
V_COUNT3(4) TYPE N,
V_COUNT4(4) TYPE N,
V_COUNT5(4) TYPE N,
V_COUNT6(4) TYPE N,
V_COUNT7(4) TYPE N,
V_COUNT8(4) TYPE N,
V_COUNT9(4) TYPE N,
V_COUNT10(4) TYPE N,
V_NET1 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 1
V_NET2 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 2
V_NET3 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 3
V_NET4 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 4
V_NET5 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 5
V_NET6 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 6
V_NET7 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 7
V_NET8 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 8
V_NET9 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 9
V_NET10 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 10
V_NET11 LIKE BSID-DMBTR, "CALCULATE CUSTOMER AGE 11
V_NET LIKE BSID-DMBTR, "Total Balance of Customer
V_ttlNET1 LIKE BSID-DMBTR,
V_ttlNET2 LIKE BSID-DMBTR,
V_ttlNET3 LIKE BSID-DMBTR,
V_ttlNET4 LIKE BSID-DMBTR,
V_ttlNET5 LIKE BSID-DMBTR,
V_ttlNET6 LIKE BSID-DMBTR,
V_ttlNET7 LIKE BSID-DMBTR,
V_ttlNET8 LIKE BSID-DMBTR,
V_ttlNET9 LIKE BSID-DMBTR,
V_ttlNET10 LIKE BSID-DMBTR,
V_ttlNET11 LIKE BSID-DMBTR,
V_ttlNET LIKE BSID-DMBTR,
v_kunnr like bseg-kunnr,
V_BUTXT like t001-butxt.
===================================================================
SELECTION SCREEN ****************************
===================================================================
selection-screen begin of block b1 with frame title text-001.
parameters : p_bukrs like bseg-bukrs obligatory.
select-options : s_kunnr for kna1-kunnr,
s_BRSCH for kna1-BRSCH,
s_REGIO for kna1-REGIO,
s_KTOKD for kna1-KTOKD,
s_BUSAB for knb1-BUSAB.
selection-screen: end of block b1.
selection-screen begin of block b2 with frame title text-003.
PARAMETERS: DAT LIKE SY-DATUM DEFAULT SY-DATUM.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 01(30) TEXT-002.
SELECTION-SCREEN POSITION POS_LOW.
*PARAMETERS: RASTBIS1 LIKE RFPDO1-ALLGROGR DEFAULT '000'.
*PARAMETERS: RASTBIS2 LIKE RFPDO1-ALLGROGR DEFAULT '030'.
*PARAMETERS: RASTBIS3 LIKE RFPDO1-ALLGROGR DEFAULT '060'.
*PARAMETERS: RASTBIS4 LIKE RFPDO1-ALLGROGR DEFAULT '090'.
*PARAMETERS: RASTBIS5 LIKE RFPDO1-ALLGROGR DEFAULT '120'.
PARAMETERS: RASTBIS1(4) type n DEFAULT '0000'.
PARAMETERS: RASTBIS2(4) type n DEFAULT '0030'.
PARAMETERS: RASTBIS3(4) type n DEFAULT '0060'.
PARAMETERS: RASTBIS4(4) type n DEFAULT '0090'.
PARAMETERS: RASTBIS5(4) type n DEFAULT '0120'.
PARAMETERS: RASTBIS6(4) type n DEFAULT '0150'.
PARAMETERS: RASTBIS7(4) type n DEFAULT '0180'.
PARAMETERS: RASTBIS8(4) type n DEFAULT '0210'.
PARAMETERS: RASTBIS9(4) type n DEFAULT '0240'.
PARAMETERS: RASTBIS0(4) type n DEFAULT '0270'.
SELECTION-SCREEN END OF LINE.
Noted item removed as per FI instruction
PARAMETERS: P_STAND AS CHECKBOX default 'X',
P_NOTED AS CHECKBOX ,
P_SPCAL AS CHECKBOX .
selection-screen: end of block b2.
selection-screen begin of block b3 with frame.
PARAMETERS: allgline like RFPDO1-allgline .
Parameters : p_balyes type c radiobutton group grp9 default 'X',
p_balno type c radiobutton group grp9.
selection-screen: end of block b3.
Check for the Select option
AT SELECTION-SCREEN.
IF P_STAND = '' AND P_SPCAL = '' .
MESSAGE E398(00) WITH 'PLEASE CHOOSE AT LEAST ONE G/L INDICATOR!'.
ENDIF.
Check for Company code Authorization
authority-check object 'F_BKPF_BUK'
ID 'BUKRS' FIELD p_bukrs
ID 'ACTVT' FIELD '03'.
if sy-subrc ne 0.
message e398(00) with 'You are not Authorized for CC ' p_bukrs.
Endif.
===================================================================
START-OF-SELECTION ****************************
===================================================================
INITIALIZATION.
REPNAME = SY-REPID.
PERFORM INITIALIZE_FIELDCAT USING FIELDTAB[].
PERFORM BUILD_EVENTTAB USING EVENTS[].
PERFORM BUILD_COMMENT USING HEADING[].
START-OF-SELECTION.
V_COUNT1 = RASTBIS1 + 1.
V_COUNT2 = RASTBIS2 + 1.
V_COUNT3 = RASTBIS3 + 1.
V_COUNT4 = RASTBIS4 + 1.
V_COUNT5 = RASTBIS5 + 1.
V_COUNT6 = RASTBIS6 + 1.
V_COUNT7 = RASTBIS7 + 1.
V_COUNT8 = RASTBIS8 + 1.
V_COUNT9 = RASTBIS9 + 1.
V_COUNT10 = RASTBIS0 + 1.
perform extract_data.
END-OF-SELECTION.
PERFORM INITIALIZE_FIELDCAT."USING FIELDTAB.
PERFORM BUILD_EVENTTAB USING EVENTS[].
PERFORM BUILD_COMMENT USING HEADING[].
===================================================================
At line Selection *****************************
===================================================================
at line-selection.
if sy-lilli >= 9 .
refresh r_bukrs.
move p_bukrs to r_bukrs-low.
move 'I' to r_bukrs-sign.
move 'EQ' to r_bukrs-option.
append r_bukrs.
refresh r_kunnr.
move customer_tab-kunnr to r_kunnr-low.
move 'I' to r_kunnr-sign.
move 'EQ' to r_kunnr-option.
append r_kunnr.
submit ZFARVR0040 and return
with p_bukrs = p_bukrs
with dat = dat
with p_stand = p_stand
with p_spcal = P_SPCAL
with s_kunnr in r_kunnr.
endif.
===================================================================
Top of Page *******************************
===================================================================
TOP-OF-PAGE.
SELECT SINGLE BUTXT FROM T001 INTO V_BUTXT
WHERE BUKRS = p_BUKRS .
WRITE:/73'Customers Aging Analysis',140'PAGE NO.',
SY-PAGNO.
WRITE:/002 'COMPANY',
011 P_BUKRS,
017 V_BUTXT,
055 allgline centered,
140 'DATE :',
150 sy-datum .
write:/002 'User',
011 sy-UNAME,
140 'Time :',
150 sy-UZEIT.
SKIP.
format color col_heading intensified off.
WRITE:/ SY-ULINE,
SY-VLINE,002 'Customer',
012 SY-VLINE,013 'Name',
043 SY-VLINE,048 'CURRENT',
061 SY-VLINE,065 'FROM ',V_COUNT1,
079 SY-VLINE,083 'FROM ',V_COUNT2,
097 SY-VLINE,101 'FROM ',V_COUNT3,
115 SY-VLINE,119 'FROM ',V_COUNT4,
133 SY-VLINE,137 'FROM ',V_COUNT5,
151 SY-VLINE,155 'FROM ',V_COUNT6,
169 SY-VLINE,173 'FROM ',V_COUNT7,
187 SY-VLINE,191 'FROM ',V_COUNT8,
205 SY-VLINE,209 'FROM ',V_COUNT9,
223 SY-VLINE,228 'FROM ',V_COUNT10,
243 SY-VLINE,248 'TOTAL',
268 SY-VLINE.
WRITE:/ SY-VLINE,002 'Number',
12 SY-VLINE,
43 SY-VLINE,
061 SY-VLINE,065 'TO ',RASTBIS2,
079 SY-VLINE,083 'TO ',RASTBIS3,
097 SY-VLINE,101 'TO ',RASTBIS4,
115 SY-VLINE,119 'TO ',RASTBIS5,
133 SY-VLINE,137 'FROM ',RASTBIS6,
151 SY-VLINE,155 'FROM ',RASTBIS7,
169 SY-VLINE,173 'FROM ',RASTBIS8,
187 SY-VLINE,191 'FROM ',RASTBIS9,
205 SY-VLINE,209 'FROM ',RASTBIS0,
223 SY-VLINE,
243 SY-VLINE,
268 SY-VLINE,
SY-ULINE.
format color off.
===================================================================
END-OF-SELECTION ***************************
===================================================================
*
PERFORM BUILD_LAYOUT USING LAYOUT.
PERFORM WRITE_OUTPUT.
===================================================================
Form : Extract_Data *
===================================================================
form extract_data.
Select the Customers
Select t1~kunnr t2~name1
into corresponding fields of table customer_tab
from knb1 as t1 inner join kna1 as t2
on t2~kunnr = t1~kunnr
where t1~bukrs = p_bukrs
and t1~kunnr in s_kunnr
and t1~BUSAB in s_busab
and t2~regio in s_regio
and t2~BRSCH in s_BRSCH
and t2~KTOKD in s_KTOKD.
if sy-subrc <> 0.
message e398(00) with 'No Customers Selected'.
endif.
sort customer_tab.
describe table customer_tab lines v_ttlc.
v_ttlc = v_ttlc + 10.
loop at customer_tab.
v_net1 = 0.
v_net2 = 0.
v_net3 = 0.
v_net4 = 0.
v_net5 = 0.
v_net6 = 0.
v_net7 = 0.
v_net8 = 0.
v_net9 = 0.
v_net10 = 0.
v_net11 = 0.
v_net = 0.
perform calculate_ageing
using
p_bukrs
customer_tab-kunnr
dat
RASTBIS1
RASTBIS2
RASTBIS3
RASTBIS4
RASTBIS5
RASTBIS6
RASTBIS7
RASTBIS8
RASTBIS9
RASTBIS0
P_STAND
' ' "noted item
P_SPCAL
changing
v_net1
v_net2
v_net3
v_net4
v_net5
v_net6
v_net7
v_net8
v_net9
v_net10
v_net11
v_net.
if p_balyes = 'X' or v_net > 0.
format color col_total.
write:/ sy-vline,
002 customer_tab-kunnr,
012 SY-VLINE,013(30) customer_tab-name1,
043 SY-VLINE,044(16) v_net1,
061 SY-VLINE,062(16) v_net2,
079 SY-VLINE,080(16) v_net3,
097 SY-VLINE,098(16) v_net4,
115 SY-VLINE,116(16) v_net5,
133 SY-VLINE,134(16) v_net6,
151 SY-VLINE,152(16) v_net7,
169 SY-VLINE,170(16) v_net8,
187 SY-VLINE,188(16) v_net9,
205 SY-VLINE,206(16) v_net10,
223 SY-VLINE,224(16) v_net11,
239 SY-VLINE,240(16) v_net,
258 SY-VLINE.
format color off.
hide : customer_tab-kunnr.
v_ttlnet1 = v_ttlnet1 + v_net1.
v_ttlnet2 = v_ttlnet2 + v_net2.
v_ttlnet3 = v_ttlnet3 + v_net3.
v_ttlnet4 = v_ttlnet4 + v_net4.
v_ttlnet5 = v_ttlnet5 + v_net5.
v_ttlnet6 = v_ttlnet6 + v_net6.
v_ttlnet7 = v_ttlnet7 + v_net7.
v_ttlnet8 = v_ttlnet8 + v_net8.
v_ttlnet9 = v_ttlnet9 + v_net9.
v_ttlnet10 = v_ttlnet10 + v_net10.
v_ttlnet11 = v_ttlnet11 + v_net11.
v_ttlnet = v_ttlnet + v_net.
endif.
endloop.
ULINE.
format color col_total.
write:/ sy-vline,
012 SY-VLINE,012(30) ' T O T A L',
043 SY-VLINE,044(16) v_ttlnet1,
061 SY-VLINE,062(16) v_ttlnet2,
079 SY-VLINE,080(16) v_ttlnet3,
097 SY-VLINE,098(16) v_ttlnet4,
115 SY-VLINE,116(16) v_ttlnet5,
133 SY-VLINE,134(16) v_ttlnet6,
151 SY-VLINE,152(16) v_ttlnet7,
169 SY-VLINE,170(16) v_ttlnet8,
187 SY-VLINE,188(16) v_ttlnet9,
205 SY-VLINE,206(16) v_ttlnet10,
223 SY-VLINE,224(16) v_ttlnet11,
239 SY-VLINE,240(16) v_ttlnet,
258 SY-VLINE.
format color off.
ULINE.
*
*loop at customer_tab.
move customer_tab-KUNNR to IT_FINAL-KUNNR.
MOVE customer_tab-NAME1 to IT_FINAL-NAME1.
move v_net1 to IT_FINAL-v_net1.
move v_net2 to IT_FINAL-v_net2.
move v_net3 to IT_FINAL-v_net3.
move v_net4 to IT_FINAL-v_net4.
move v_net5 to IT_FINAL-v_net5.
move v_net6 to IT_FINAL-v_net6.
move v_net7 to IT_FINAL-v_net7.
move v_net8 to IT_FINAL-v_net8.
move v_net9 to IT_FINAL-v_net9.
move v_net10 to IT_FINAL-v_net10.
move v_net11 to IT_FINAL-v_net11.
move V_ttlNET to IT_FINAL-V_ttlNET.
MOVE V_TTLNET2 TO IT_FINAL-V_TTLNET2.
MOVE V_TTLNET3 TO IT_FINAL-V_TTLNET3.
MOVE V_TTLNET4 TO IT_FINAL-V_TTLNET4.
MOVE V_TTLNET5 TO IT_FINAL-V_TTLNET5.
MOVE V_TTLNET6 TO IT_FINAL-V_TTLNET6.
MOVE V_TTLNET7 TO IT_FINAL-V_TTLNET7.
MOVE V_TTLNET8 TO IT_FINAL-V_TTLNET8.
MOVE V_TTLNET9 TO IT_FINAL-V_TTLNET9.
MOVE V_TTLNET10 TO IT_FINAL-V_TTLNET10.
MOVE V_TTLNET11 TO IT_FINAL-V_TTLNET11.
MOVE V_TTLNET TO IT_FINAL-V_TTLNET.
*move v_net1 to it_final-net1.
*move v_net1 to it_final-net1.
*move v_net1 to it_final-net1.
*move v_net1 to it_final-net1.
*move v_net1 to it_final-net1.
*move v_net1 to it_final-net1.
*move v_net1 to it_final-net1.
*move v_net1 to it_final-net1.
append IT_FINAL.
clear IT_FINAL.
endif.
endloop.
endform. "extract_data
Function to Calculate Aging.
Form calculate_ageing using
bukrs
kunnr
dat
RASTBIS1
RASTBIS2
RASTBIS3
RASTBIS4
RASTBIS5
RASTBIS6
RASTBIS7
RASTBIS8
RASTBIS9
RASTBIS0
P_STAND
P_NOTED
P_SPCAL
changing
v_net1
v_net2
v_net3
v_net4
v_net5
v_net6
v_net7
v_net8
v_net9
v_net10
v_net11
v_net.
DATA: BEGIN OF BSID_TAB1 OCCURS 0,
BUKRS LIKE BSID-BUKRS,
PRCTR LIKE BSID-PRCTR,
KUNNR LIKE BSID-KUNNR,
FLAG(1),
UMSKZ LIKE BSID-UMSKZ,
BLART LIKE BSID-BLART,
BELNR LIKE BSID-BELNR,
BUZEI LIKE BSID-BUZEI,
NETDT LIKE BSID-ZFBDT,
ZFBDT LIKE BSID-ZFBDT,
BUDAT LIKE BSID-BUDAT,
BLDAT LIKE BSID-BLDAT,
BSCHL LIKE BSID-BSCHL,
DMBTR LIKE BSID-DMBTR,
SHKZG LIKE BSID-SHKZG,
ZBD1T LIKE BSID-ZBD1T,
ZBD2T LIKE BSID-ZBD2T,
ZBD3T LIKE BSID-ZBD3T,
REBZG LIKE BSID-REBZG,
REBZT LIKE BSID-REBZT,
KOART LIKE BSEG-KOART,
SK1DT LIKE FAEDE-SK1DT,
SK2DT LIKE FAEDE-SK2DT,
DAYSD LIKE SY-TABIX,
END OF BSID_TAB1.
RANGES: R_UMSKZ FOR BSID-UMSKZ.
Data : V_ZFBDT Like bsid-ZFBDT,
V_ZBD1T Like bsid-ZBD1T,
V_ZBD2T Like bsid-ZBD2T,
V_ZBD3T Like bsid-ZBD3T,
V_LINES(8) TYPE n.
IF P_NOTED = 'X'. "CHECK NOTED ITEMS
R_UMSKZ-SIGN = 'I'.
R_UMSKZ-OPTION = 'EQ'.
R_UMSKZ-LOW = 'D'.
APPEND R_UMSKZ.
R_UMSKZ-SIGN = 'I'.
R_UMSKZ-OPTION = 'EQ'.
R_UMSKZ-LOW = 'L'.
APPEND R_UMSKZ.
ENDIF.
IF P_STAND = 'X'. "CHECK STANDARD ITEMS
R_UMSKZ-SIGN = 'I'.
R_UMSKZ-OPTION = 'EQ'.
R_UMSKZ-LOW = ' '.
APPEND R_UMSKZ.
ENDIF.
IF P_SPCAL = 'X'. "CHECK SPECIAL G/L TRANSACTION
R_UMSKZ-SIGN = 'I'.
R_UMSKZ-OPTION = 'EQ'.
R_UMSKZ-LOW = 'A'.
APPEND R_UMSKZ.
R_UMSKZ-SIGN = 'I'.
R_UMSKZ-OPTION = 'EQ'.
R_UMSKZ-LOW = 'B'.
APPEND R_UMSKZ.
ENDIF.
SELECT * FROM BSID INTO CORRESPONDING FIELDS OF TABLE BSID_TAB
WHERE BUKRS = BUKRS AND
budat <= dat AND
KUNNR = KUNNR AND
UMSKZ in R_UMSKZ.
SELECT * FROM BSAD appending CORRESPONDING FIELDS OF TABLE BSID_TAB
WHERE BUKRS = BUKRS AND
budat <= dat AND
augdt >= dat AND
KUNNR = KUNNR AND
UMSKZ in R_UMSKZ.
DESCRIBE TABLE BSID_TAB LINES V_LINES.
LOOP AT BSID_TAB.
if bsid_tab-BLART = 'DZ'.
Select single ZFBDT ZBD1T ZBD2T ZBD3T
into (V_ZFBDT,V_ZBD1T,V_ZBD2T,V_ZBD3T)
from bsid where BUKRS = BUKRS
and kunnr = bsid_tab-kunnr
and BELNR = bsid_tab-REBZG.
if sy-subrc = 0.
bsid_tab-ZFBDT = V_ZFBDT.
bsid_tab-ZBD1T = V_ZBD1T.
bsid_tab-ZBD2T = V_ZBD2T.
bsid_tab-ZBD3T = V_ZBD3T.
else.
Select single ZFBDT ZBD1T ZBD2T ZBD3T
into (V_ZFBDT,V_ZBD1T,V_ZBD2T,V_ZBD3T)
from bsad where BUKRS = BUKRS
and kunnr = bsid_tab-kunnr
and BELNR = bsid_tab-REBZG.
if sy-subrc <> 0.
bsid_tab-ZFBDT = V_ZFBDT.
bsid_tab-ZBD1T = V_ZBD1T.
bsid_tab-ZBD2T = V_ZBD2T.
bsid_tab-ZBD3T = V_ZBD3T.
endif.
endif.
endif.
IF BSID_TAB-SHKZG = 'H'.
BSID_TAB-DMBTR = BSID_TAB-DMBTR * ( - 1 ).
ENDIF.
bsid_tab-netdt = bsid_tab-ZFBDT.
bsid_tab-netdt = bsid_tab-budat.
bsid_tab-koart = 'D'.
MODIFY BSID_TAB.
PERFORM CALC_DUE_DATE USING BSID_TAB.
BSID_TAB-DAYSD = DAT - BSID_TAB-NETDT.
IF BSID_TAB-DAYSD <= RASTBIS1.
V_NET1 = V_NET1 + BSID_TAB-DMBTR.
ELSEIF BSID_TAB-DAYSD <= RASTBIS2.
V_NET2 = V_NET2 + BSID_TAB-DMBTR.
ELSEIF BSID_TAB-DAYSD <= RASTBIS3.
V_NET3 = V_NET3 + BSID_TAB-DMBTR.
ELSEIF BSID_TAB-DAYSD <= RASTBIS4.
V_NET4 = V_NET4 + BSID_TAB-DMBTR.
ELSEIF BSID_TAB-DAYSD <= RASTBIS5.
V_NET5 = V_NET5 + BSID_TAB-DMBTR.
ELSEIF BSID_TAB-DAYSD <= RASTBIS6.
V_NET6 = V_NET6 + BSID_TAB-DMBTR.
ELSEIF BSID_TAB-DAYSD <= RASTBIS7.
V_NET7 = V_NET7 + BSID_TAB-DMBTR.
ELSEIF BSID_TAB-DAYSD <= RASTBIS5.
V_NET8 = V_NET8 + BSID_TAB-DMBTR.
ELSEIF BSID_TAB-DAYSD <= RASTBIS9.
V_NET9 = V_NET9 + BSID_TAB-DMBTR.
ELSEIF BSID_TAB-DAYSD <= RASTBIS0.
V_NET10 = V_NET10 + BSID_TAB-DMBTR.
ELSEIF BSID_TAB-DAYSD > RASTBIS0.
V_NET11 = V_NET11 + BSID_TAB-DMBTR.
ENDIF.
V_NET = V_NET + BSID_TAB-DMBTR.
MODIFY BSID_TAB.
ENDLOOP.
endform. "calculate_ageing
Calculate Due Date
FORM CALC_DUE_DATE USING P_BSID_TAB STRUCTURE BSID_TAB.
DATA : REFE TYPE P.
IF P_BSID_TAB-KOART = 'K' OR P_BSID_TAB-KOART = 'D'.
IF P_BSID_TAB-ZFBDT IS INITIAL.
P_BSID_TAB-ZFBDT = P_BSID_TAB-BLDAT.
ENDIF.
*Nettofälligkeit bestimmen--
*
IF NOT P_BSID_TAB-ZBD3T IS INITIAL.
REFE = P_BSID_TAB-ZBD3T.
ELSE.
IF NOT P_BSID_TAB-ZBD2T IS INITIAL.
REFE = P_BSID_TAB-ZBD2T.
ELSE.
REFE = P_BSID_TAB-ZBD1T.
ENDIF.
ENDIF.
*Nichtrechnungsbezogene Gutschriften sind sofort fällig--
*
IF P_BSID_TAB-KOART = 'D' AND P_BSID_TAB-SHKZG = 'H'
OR P_BSID_TAB-KOART = 'K' AND P_BSID_TAB-SHKZG = 'S'.
IF P_BSID_TAB-REBZG IS INITIAL.
REFE = 0.
ENDIF.
ENDIF.
P_BSID_TAB-NETDT = P_BSID_TAB-ZFBDT + REFE.
*Skontofälligkeiten bestimmen--
*
IF NOT P_BSID_TAB-ZBD2T IS INITIAL.
P_BSID_TAB-SK2DT = P_BSID_TAB-ZFBDT + P_BSID_TAB-ZBD2T.
ELSE.
P_BSID_TAB-SK2DT = P_BSID_TAB-NETDT.
ENDIF.
IF NOT P_BSID_TAB-ZBD1T IS INITIAL
OR NOT P_BSID_TAB-ZBD2T IS INITIAL.
P_BSID_TAB-SK1DT = P_BSID_TAB-ZFBDT + P_BSID_TAB-ZBD1T.
ELSE.
P_BSID_TAB-SK1DT = P_BSID_TAB-NETDT.
ENDIF.
*Nichtrechnungsbezogene Gutschriften sind sofort fällig--
*
IF P_BSID_TAB-KOART = 'D' AND P_BSID_TAB-SHKZG = 'H'
OR P_BSID_TAB-KOART = 'K' AND P_BSID_TAB-SHKZG = 'S'.
IF P_BSID_TAB-REBZG IS INITIAL.
P_BSID_TAB-SK2DT = P_BSID_TAB-NETDT.
P_BSID_TAB-SK1DT = P_BSID_TAB-NETDT.
ENDIF.
ENDIF.
ELSE.
MESSAGE E122 RAISING ACCOUNT_TYPE_NOT_SUPPORTED.
ENDIF.
E_FAEDE = FAEDE.
ENDFORM. "CALC_DUE_DATE
*----
*
FORM TOP_OF_PAGE *
*----
*
........ *
*----
*
FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = HEADING.
ENDFORM. "TOP_OF_PAGE
*&----
-
*
*& Form BUILD_LAYOUT
*&----
-
*
FORM BUILD_LAYOUT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_LAYOUT-F2CODE = F2CODE.
P_LAYOUT-ZEBRA = 'X'.
P_LAYOUT-DETAIL_POPUP = 'X'.
ENDFORM. " BUILD_LAYOUT
*&----
-
*
*& Form WRITE_OUTPUT
*&----
-
*
text
*----
-
*
--> p1 text
<-- p2 text
*----
-
*
FORM WRITE_OUTPUT .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPNAME
I_STRUCTURE_NAME = 'BSID_TAB'
IS_LAYOUT = LAYOUT
IT_FIELDCAT = P_FIELDTAB
TABLES
T_OUTTAB = IT_FINAL.
IF SY-SUBRC <> 0.
WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.
ENDIF.
ENDFORM. " WRITE_OUTPUT
*&----
*
*& Form INITIALIZE_FIELDCAT
*&----
*
text
*----
*
-->P_FIELDTAB[] text
*----
*
FORM INITIALIZE_FIELDCAT."USING P_FIELDTAB TYPE SLIS_T_FIELDCAT_ALV.
fixed columns (obligatory)
DATA ls_fieldcat TYPE slis_fieldcat_alv.
DATA : fieldcat_tab TYPE slis_t_fieldcat_alv,
COL TYPE I .
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'KUNNR'.
ls_fieldcat-reptext_ddic = 'Customer'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'NAME1'.
ls_fieldcat-reptext_ddic = 'Name'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_NET1'.
ls_fieldcat-reptext_ddic = 'Current'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_NET2'.
ls_fieldcat-reptext_ddic = 'From 0001 To 0030'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_NET3'.
ls_fieldcat-reptext_ddic = 'From 0031 To 0060'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_NET4'.
ls_fieldcat-reptext_ddic = 'From 0061 To 0090'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_NET5'.
ls_fieldcat-reptext_ddic = 'From 0091 To 0120'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_NET6'.
ls_fieldcat-reptext_ddic = 'From 0121 From 0150'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_NET7'.
ls_fieldcat-reptext_ddic = 'From 0151 From 0180'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_NET8'.
ls_fieldcat-reptext_ddic = 'From 0181 From 0210'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_NET9'.
ls_fieldcat-reptext_ddic = 'From 0211 From 0240'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_NET10'.
ls_fieldcat-reptext_ddic = 'From 0241 From 0270'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_NET11'.
ls_fieldcat-reptext_ddic = 'From 0271'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
ls_fieldcat-COL_POS = COL + 1.
ls_fieldcat-tabname = 'IT_FINAL'.
ls_fieldcat-fieldname = 'V_TTLNET'.
ls_fieldcat-reptext_ddic = 'Total'.
ls_fieldcat-do_sum = 'X'.
APPEND ls_fieldcat TO fieldcat_tab.
CLEAR ls_fieldcat.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPNAME
IT_FIELDCAT = FIELDCAT_TAB
TABLES
T_OUTTAB = IT_FINAL.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPNAME
I_STRUCTURE_NAME = 'BSID_TAB'
IS_LAYOUT = LAYOUT
IT_FIELDCAT = fieldcat_tab
TABLES
T_OUTTAB = IT_FINAL[].
IF SY-SUBRC <> 0.
WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.
ENDIF.
ENDFORM. " INITIALIZE_FIELDCAT
*&----
-
*
*& Form BUILD_EVENTTAB
*&----
-
*
text
*----
-
*
-->P_EVENTS[] text
*----
-
*
FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_EVENTS.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
ENDFORM. " BUILD_EVENTTAB
*&----
-
*
*& Form BUILD_COMMENT
*&----
-
*
text
*----
-
*
-->P_HEADING[] text
*----
-
*
FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.
DATA: HLINE TYPE SLIS_LISTHEADER,
TEXT(60) TYPE C,
SEP(20) TYPE C.
CLEAR: HLINE, TEXT.
HLINE-TYP = 'H'.
WRITE: TEXT-101 TO TEXT+23.
HLINE-INFO = TEXT.
APPEND HLINE TO P_HEADING.
CLEAR TEXT.
WRITE: 'User: ' TO TEXT,
SY-UNAME TO TEXT+6,
'Date: ' TO TEXT+25,
SY-DATUM TO TEXT+31,
'Page: ' TO TEXT+50,
SY-PAGNO TO TEXT+56.
HLINE-INFO = TEXT.
APPEND HLINE TO P_HEADING.
ENDFORM. " BUILD_COMMENT
‎2006 Jul 18 8:33 PM