Application Development and Automation 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: 
Read only

ALV Dump

Former Member
0 Likes
278

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

1 REPLY 1
Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
247

Every column that you want to sum, add the line that gives the datatype as 'QUAN'. This should allow the totals to come.

ls_fieldcat-do_sum   = 'X'.
<b>ls_fieldcat-datatype = 'QUAN'</b>.

Regards,

Rich Heilman