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: 

alv column summation and assign it to final internal table

former_member574106
Participant
0 Kudos

Hi friends,

There is a issue with summation of column in ALV. I need to display the total of every month like April, May, June in a normal ALV instead of the exact amount corresponding with their respective account no . But the total is coming wrong in the final internal table. How do i pass it ?The fields given are

1. Amount - HSL from table faglflexa

2. Period - POPER from table faglflexa.

The logic is that period '1' for example corresponds to April month of the complete financial year. Similarly, period '2' corresponds to May month of the financial year.  Also, if an account number has multiple line items it should not be shown in the ALV output.

Please check my code , screenshots and the output for complete understanding.Please help with corrections in the code. Points will be rewarded.

Regards,

Saurav Lahiry

1 ACCEPTED SOLUTION

VenkatRamesh_V
Active Contributor
0 Kudos

Hi,

Try,

Declare  racct(Account no ) as first field in internal table  it_faglflexa.

SORT  it_faglflexa by Account no.

DATA: lv_flag_start type c.

          lv_flag_end  type c.

LOOP AT it_faglflexa .

CLEAR lv_flag_start.

AT NEW RACCT.

CLEAR:  lv_total1 , lv_total11,lv_total12,...etc, lv_flag_stop. " "All variables.

lv_flag_start  = 'X'.

ENDAT.

AT END OF  RACCT.

lv_flag_stop.  = 'X'.

ENDAT.

IF lv_falg_start is not initial.

READ TABLE it_skat WITH KEY saknr = it_faglflexa-racct.

it_final-txt50 = it_skat-txt50.

it_final-saknr = it_skat-saknr.

ENDIF.

CASE it_faglflexa-poper.

WHEN '011'.

lv_total11 = lv_total11 + it_faglflexa-hsl.

..........etc......

ENDCASE.

IF lv_flag_stop is not initial.

it_final-hsl1 = lv_total1.

it_final-hsl2 = lv_total2.

it_final-hsl3 = lv_total3.

it_final-hsl4 = lv_total4.

it_final-hsl5 = lv_total5.

it_final-hsl6 = lv_total6.

it_final-hsl7 = lv_total7.

it_final-hsl8 = lv_total8.

it_final-hsl9 = lv_total9.

it_final-hsl10 = lv_total10.

it_final-hsl11 = lv_total11.

it_final-hsl12 = lv_total12.

it_final-hsl13 = lv_total13.

it_final-hsl14 = lv_total14.

it_final-hsl15 = lv_total15.

it_final-hsl16 = lv_total16.

it_final-ztotal = it_final-hsl1 + it_final-hsl2 + it_final-hsl3 + it_final-hsl4 + it_final-hsl5 + it_final-hsl6

                  + it_final-hsl7 + it_final-hsl8 + it_final-hsl9 + it_final-hsl10 + it_final-hsl11 +

                  it_final-hsl12 + it_final-hsl13 + it_final-hsl14 + it_final-hsl15 + it_final-hsl16.

APPPEND it_final.

ENDIF.


ENDLOOP.




NOTE: use Internal table without header line.




Hope it helpful,


Regards,

Venkat.







3 REPLIES 3

VenkatRamesh_V
Active Contributor
0 Kudos

Hi,

Try,

Declare  racct(Account no ) as first field in internal table  it_faglflexa.

SORT  it_faglflexa by Account no.

DATA: lv_flag_start type c.

          lv_flag_end  type c.

LOOP AT it_faglflexa .

CLEAR lv_flag_start.

AT NEW RACCT.

CLEAR:  lv_total1 , lv_total11,lv_total12,...etc, lv_flag_stop. " "All variables.

lv_flag_start  = 'X'.

ENDAT.

AT END OF  RACCT.

lv_flag_stop.  = 'X'.

ENDAT.

IF lv_falg_start is not initial.

READ TABLE it_skat WITH KEY saknr = it_faglflexa-racct.

it_final-txt50 = it_skat-txt50.

it_final-saknr = it_skat-saknr.

ENDIF.

CASE it_faglflexa-poper.

WHEN '011'.

lv_total11 = lv_total11 + it_faglflexa-hsl.

..........etc......

ENDCASE.

IF lv_flag_stop is not initial.

it_final-hsl1 = lv_total1.

it_final-hsl2 = lv_total2.

it_final-hsl3 = lv_total3.

it_final-hsl4 = lv_total4.

it_final-hsl5 = lv_total5.

it_final-hsl6 = lv_total6.

it_final-hsl7 = lv_total7.

it_final-hsl8 = lv_total8.

it_final-hsl9 = lv_total9.

it_final-hsl10 = lv_total10.

it_final-hsl11 = lv_total11.

it_final-hsl12 = lv_total12.

it_final-hsl13 = lv_total13.

it_final-hsl14 = lv_total14.

it_final-hsl15 = lv_total15.

it_final-hsl16 = lv_total16.

it_final-ztotal = it_final-hsl1 + it_final-hsl2 + it_final-hsl3 + it_final-hsl4 + it_final-hsl5 + it_final-hsl6

                  + it_final-hsl7 + it_final-hsl8 + it_final-hsl9 + it_final-hsl10 + it_final-hsl11 +

                  it_final-hsl12 + it_final-hsl13 + it_final-hsl14 + it_final-hsl15 + it_final-hsl16.

APPPEND it_final.

ENDIF.


ENDLOOP.




NOTE: use Internal table without header line.




Hope it helpful,


Regards,

Venkat.







0 Kudos

Hi,

Venkat. thanks a lot for the answer. But one more issue is there.

In the test case, 419014 has 3 line items. If i am giving it as a single input, the totals of all the line items are being displayed in APRIL, MAY etc. but as soon as i am taking the range 419014 to 419035, the output is coming wrong. Please correct the code. I am unable to attach the screenshot here. Please send ur email id , where i can send the screenshots for the output.

*&---------------------------------------------------------------------*
*& Report  ZSFMONTHLYEXPENSEPRAC
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZSFMONTHLYEXPENSEPRAC.
TABLES : faglflexa,skat.
TYPES : BEGIN OF ty_faglflexa,
RACCT
LIKE faglflexa-RACCT,
RBUKRS
LIKE faglflexa-RBUKRS,
RYEAR
LIKE faglflexa-RYEAR,
poper
LIKE faglflexa-POPER,
*        RACCT LIKE faglflexa-RACCT,
RTCUR
LIKE faglflexa-RTCUR,
hsl  
LIKE faglflexa-hSL,
buzei
LIKE faglflexa-buzei,
END OF ty_faglflexa.
TYPES : BEGIN OF ty_skat,
saknr
LIKE skat-saknr,
txt50
LIKE skat-txt50,
END OF ty_skat.
TYPES : BEGIN OF ty_final,
TXT50
LIKE skat-txt50,
*        RACCT LIKE faglflexa-RACCT,
SAKNR
LIKE skat-saknr,
HSL1
LIKE faglflexa-hsl,
HSL2
LIKE faglflexa-hsl,
HSL3
LIKE faglflexa-hsl,
HSL4
LIKE faglflexa-hsl,
HSL5
LIKE faglflexa-hsl,
HSL6
LIKE faglflexa-hsl,
HSL7
LIKE faglflexa-hsl,
HSL8
LIKE faglflexa-hsl,
HSL9
LIKE faglflexa-hsl,
HSL10
LIKE faglflexa-hsl,
HSL11
LIKE faglflexa-hsl,
HSL12
LIKE faglflexa-hsl,
HSL13
LIKE faglflexa-hsl,
HSL14
LIKE faglflexa-hsl,
HSL15
LIKE faglflexa-hsl,
HSL16
LIKE faglflexa-hsl,
ZTOTAL
TYPE faglflexa-hsl,
TEXT(50) TYPE c,
END OF ty_final.
DATA : it_faglflexa TYPE  TABLE OF ty_faglflexa ,
wa_faglflexa
TYPE ty_faglflexa,
it_skat
TYPE STANDARD TABLE OF ty_skat WITH HEADER LINE,
it_final
TYPE STANDARD TABLE OF ty_final ,
wa_final
TYPE ty_final.
SELECT-OPTIONS : so_bukrs FOR faglflexa-RBUKRS NO INTERVALS OBLIGATORY,
so_year 
FOR faglflexa-RYEAR NO INTERVALS OBLIGATORY,
so_per
FOR faglflexa-POPER OBLIGATORY,
so_acct  
FOR skat-saknr OBLIGATORY,
so_curr
FOR faglflexa-RTCUR NO INTERVALS DEFAULT 'USD'.
* ALV declarations
DATA :
wa_fieldcat
TYPE slis_fieldcat_alv,
it_fieldcat
TYPE slis_t_fieldcat_alv,
wa_layout  
TYPE slis_layout_alv,
gd_repid
LIKE sy-repid,
gs_layout
TYPE slis_layout_alv,
ok_code
LIKE sy-ucomm.

data: it_sortcat   type slis_sortinfo_alv occurs 1,
wa_sort
like line of it_sortcat.
DATA : i_events TYPE slis_t_event.
data : i_list_top_of_page type slis_t_listheader.
START-OF-SELECTION.
PERFORM fetch_data.
PERFORM build_fieldcatalog.
PERFORM SUB_EVENTTAB_BUILD USING I_EVENTS.
PERFORM SUB_COMMENT_BUILD USING i_list_top_of_page.
PERFORM display_alv_output.
*&---------------------------------------------------------------------*
*&      Form  FETCH_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FETCH_DATA .
REFRESH it_faglflexa[].
SELECT rbukrs
ryear
poper
buzei
*       rpmax
racct
rtcur
hsl
FROM faglflexa
INTO CORRESPONDING FIELDS OF wa_faglflexa
WHERE rbukrs IN so_bukrs
AND   ryear IN so_year
AND   poper IN so_per
AND   racct IN so_acct.
APPEND wa_faglflexa TO it_faglflexa.
CLEAR  wa_faglflexa.
ENDSELECT.
*       AND   rtcur IN so_curr.
IF NOT it_faglflexa[] IS INITIAL.
SELECT saknr
txt50
FROM skat
INTO CORRESPONDING FIELDS OF TABLE it_skat
FOR ALL ENTRIES IN it_faglflexa
WHERE saknr EQ it_faglflexa-racct.
ENDIF.
LOOP AT it_skat.
SHIFT it_skat-saknr LEFT DELETING LEADING '0'.
MODIFY it_skat.
ENDLOOP.
*LOOP AT it_faglflexa INTO wa_faglflexa.
*SHIFT wa_faglflexa-racct LEFT DELETING LEADING '0'.
*  IF wa_faglflexa-racct+0(1) NE '4'.
*DELETE   it_faglflexa .
**MODIFY it_faglflexa FROM wa_faglflexa.
**
**CLEAR  wa_faglflexa.
*ENDIF.
*ENDLOOP.

SORT it_faglflexa[] by racct.
*SHIFT it_faglflexa-racct LEFT DELETING LEADING '0'.
LOOP AT it_faglflexa INTO wa_faglflexa .
SHIFT wa_faglflexa-racct LEFT DELETING LEADING '0'.
IF wa_faglflexa-racct+0(1) EQ '4'.


DATA: lv_flag_start type c,

lv_flag_end 
type c.

DATA : lv_total1 TYPE faglflexa-hsl,
lv_total11
TYPE faglflexa-hsl,
lv_total2
TYPE faglflexa-hsl,
lv_total3
TYPE faglflexa-hsl,
lv_total4
TYPE faglflexa-hsl,
lv_total5
TYPE faglflexa-hsl,
lv_total6
TYPE faglflexa-hsl,
lv_total7
TYPE faglflexa-hsl,
lv_total8
TYPE faglflexa-hsl,
lv_total9
TYPE faglflexa-hsl,
lv_total10
TYPE faglflexa-hsl,
lv_total12
TYPE faglflexa-hsl,
lv_total13
TYPE faglflexa-hsl,
lv_total14
TYPE faglflexa-hsl,
lv_total15
TYPE faglflexa-hsl,
lv_total16
TYPE faglflexa-hsl.
*        lv_total11 TYPE faglflexa-hsl,
*        lv_total11 TYPE faglflexa-hsl.

*LOOP AT it_faglflexa .

CLEAR lv_flag_start.

AT NEW RACCT.

CLEARlv_total1 , lv_total11,lv_total12,lv_total2, lv_total3,lv_total4,lv_total5,lv_total6,lv_total7, lv_total8,
lv_total9
,lv_total10, lv_total14,lv_total15,lv_total16,
lv_flag_end
. " "All variables.

lv_flag_start 
= 'X'.

ENDAT.



AT END OF  RACCT.

lv_flag_end 
= 'X'.

ENDAT.

*ON CHANGE OF RACCT.





IF lv_flag_start is not initial.

READ TABLE it_skat WITH KEY saknr = wa_faglflexa-racct.

wa_final
-txt50 = it_skat-txt50.

wa_final
-saknr = it_skat-saknr.

ENDIF.
*IF lv_flag_start IS INITIAL.
*
*CASE wa_faglflexa-poper.
*
*WHEN '011'.
*
*lv_total11 = lv_total11 + wa_faglflexa-hsl.
*
*WHEN '01'.
*lv_total1 = lv_total1 + wa_faglflexa-hsl.
*WHEN '02'.
*lv_total2 = lv_total2 + wa_faglflexa-hsl.
*
*WHEN '03'.
*lv_total3 = lv_total3 + wa_faglflexa-hsl.
*
*WHEN '04'.
*lv_total4 = lv_total4 + wa_faglflexa-hsl.
*
*WHEN '05'.
*lv_total5 = lv_total5 + wa_faglflexa-hsl.
*
*WHEN '06'.
*lv_total6 = lv_total6 + wa_faglflexa-hsl.
*
*WHEN '07'.
*lv_total7 = lv_total7 + wa_faglflexa-hsl.
*
*WHEN '08'.
*lv_total8 = lv_total8 + wa_faglflexa-hsl.
*
*WHEN '09'.
*lv_total9 = lv_total9 + wa_faglflexa-hsl.
*
*WHEN '010'.
*lv_total10 = lv_total10 + wa_faglflexa-hsl.
*
*WHEN '012'.
*lv_total12 = lv_total12 + wa_faglflexa-hsl.
*
*WHEN '013'.
*lv_total13 = lv_total13 + wa_faglflexa-hsl.
*
*WHEN '014'.
*lv_total14 = lv_total14 + wa_faglflexa-hsl.
*
*WHEN '015'.
*lv_total15 = lv_total15 + wa_faglflexa-hsl.
*
*WHEN '016'.
*lv_total16 = lv_total16 + wa_faglflexa-hsl.
**APPEND wa_faglflexa TO it_final.
**CLEAR  wa_faglflexa.
*ENDCASE.
*ENDIF.

CASE wa_faglflexa-poper.

WHEN '011'.

lv_total11
= lv_total11 + wa_faglflexa-hsl.

WHEN '01'.
lv_total1
= lv_total1 + wa_faglflexa-hsl.
WHEN '02'.
lv_total2
= lv_total2 + wa_faglflexa-hsl.

WHEN '03'.
lv_total3
= lv_total3 + wa_faglflexa-hsl.

WHEN '04'.
lv_total4
= lv_total4 + wa_faglflexa-hsl.

WHEN '05'.
lv_total5
= lv_total5 + wa_faglflexa-hsl.

WHEN '06'.
lv_total6
= lv_total6 + wa_faglflexa-hsl.

WHEN '07'.
lv_total7
= lv_total7 + wa_faglflexa-hsl.

WHEN '08'.
lv_total8
= lv_total8 + wa_faglflexa-hsl.

WHEN '09'.
lv_total9
= lv_total9 + wa_faglflexa-hsl.

WHEN '010'.
lv_total10
= lv_total10 + wa_faglflexa-hsl.

WHEN '012'.
lv_total12
= lv_total12 + wa_faglflexa-hsl.

WHEN '013'.
lv_total13
= lv_total13 + wa_faglflexa-hsl.

WHEN '014'.
lv_total14
= lv_total14 + wa_faglflexa-hsl.

WHEN '015'.
lv_total15
= lv_total15 + wa_faglflexa-hsl.

WHEN '016'.
lv_total16
= lv_total16 + wa_faglflexa-hsl.
*APPEND wa_faglflexa TO it_final.
*CLEAR  wa_faglflexa.
ENDCASE.
*APPEND wa_final TO it_final.
*CLEAR  wa_final.


*ENDCASE.



IF lv_flag_end is not initial.

wa_final
-hsl1 = lv_total1.

wa_final
-hsl2 = lv_total2.

wa_final
-hsl3 = lv_total3.

wa_final
-hsl4 = lv_total4.

wa_final
-hsl5 = lv_total5.

wa_final
-hsl6 = lv_total6.

wa_final
-hsl7 = lv_total7.

wa_final
-hsl8 = lv_total8.

wa_final
-hsl9 = lv_total9.

wa_final
-hsl10 = lv_total10.

wa_final
-hsl11 = lv_total11.

wa_final
-hsl12 = lv_total12.

wa_final
-hsl13 = lv_total13.

wa_final
-hsl14 = lv_total14.

wa_final
-hsl15 = lv_total15.

wa_final
-hsl16 = lv_total16.

wa_final
-ztotal = wa_final-hsl1 + wa_final-hsl2 + wa_final-hsl3 + wa_final-hsl4 + wa_final-hsl5 + wa_final-hsl6

+ wa_final
-hsl7 + wa_final-hsl8 + wa_final-hsl9 + wa_final-hsl10 + wa_final-hsl11 +

wa_final
-hsl12 + wa_final-hsl13 + wa_final-hsl14 + wa_final-hsl15 + wa_final-hsl16.

APPEND wa_final TO it_final.
CLEAR  wa_final.
ENDIF.

ENDIF.


ENDLOOP.


*DATA : lv_total1 TYPE faglflexa-hsl,
*        lv_total11 TYPE faglflexa-hsl,
*        lv_total2 TYPE faglflexa-hsl,
*        lv_total3 TYPE faglflexa-hsl,
*        lv_total4 TYPE faglflexa-hsl,
*        lv_total5 TYPE faglflexa-hsl,
*        lv_total6 TYPE faglflexa-hsl,
*        lv_total7 TYPE faglflexa-hsl,
*        lv_total8 TYPE faglflexa-hsl,
*        lv_total9 TYPE faglflexa-hsl,
*        lv_total10 TYPE faglflexa-hsl,
*        lv_total12 TYPE faglflexa-hsl,
*        lv_total13 TYPE faglflexa-hsl,
*        lv_total14 TYPE faglflexa-hsl,
*        lv_total15 TYPE faglflexa-hsl,
*        lv_total16 TYPE faglflexa-hsl.
**        lv_total11 TYPE faglflexa-hsl,
**        lv_total11 TYPE faglflexa-hsl.
*READ TABLE it_skat WITH KEY saknr = it_faglflexa-racct.
*IF sy-subrc EQ 0.
**LOOP AT it_skat .
**SHIFT wa_faglflexa-racct LEFT DELETING LEADING '0'.
**  IF wa_faglflexa-racct+0(1) EQ '4'.
**    READ TABLE it_skat WITH KEY saknr = it_faglflexa-racct.
**IF sy-subrc EQ 0.
*it_final-txt50 = it_skat-txt50.
*it_final-saknr = it_skat-saknr.
*
*
*CASE it_faglflexa-poper.
*WHEN '011'.
*lv_total11 = lv_total11 + it_faglflexa-hsl.
*
*
**ENDAT.
**it_final-hsl11 = lv_total .
**CLEAR lv_total.
*WHEN '01'.
*lv_total1 = lv_total1 + it_faglflexa-hsl.
*WHEN '02'.
*lv_total2 = lv_total2 + it_faglflexa-hsl.
*
*WHEN '03'.
*lv_total3 = lv_total3 + it_faglflexa-hsl.
*
*WHEN '04'.
*lv_total4 = lv_total4 + it_faglflexa-hsl.
*
*WHEN '05'.
*lv_total5 = lv_total5 + it_faglflexa-hsl.
*
*WHEN '06'.
*lv_total6 = lv_total6 + it_faglflexa-hsl.
*
*WHEN '07'.
*lv_total7 = lv_total7 + it_faglflexa-hsl.
*
*WHEN '08'.
*lv_total8 = lv_total8 + it_faglflexa-hsl.
*
*WHEN '09'.
*lv_total9 = lv_total9 + it_faglflexa-hsl.
*
*WHEN '010'.
*lv_total10 = lv_total10 + it_faglflexa-hsl.
*
*WHEN '012'.
*lv_total12 = lv_total12 + it_faglflexa-hsl.
*
*WHEN '013'.
*lv_total13 = lv_total13 + it_faglflexa-hsl.
*
*WHEN '014'.
*lv_total14 = lv_total14 + it_faglflexa-hsl.
*
*WHEN '015'.
*lv_total15 = lv_total15 + it_faglflexa-hsl.
*
*WHEN '016'.
*lv_total16 = lv_total16 + it_faglflexa-hsl.
*
*ENDCASE.
*
**  READ TABLE it_skat WITH KEY saknr = it_faglflexa-racct.
**IF sy-subrc EQ 0.
***LOOP AT it_skat .
***SHIFT wa_faglflexa-racct LEFT DELETING LEADING '0'.
***  IF wa_faglflexa-racct+0(1) EQ '4'.
***    READ TABLE it_skat WITH KEY saknr = it_faglflexa-racct.
***IF sy-subrc EQ 0.
**it_final-txt50 = it_skat-txt50.
**it_final-saknr = it_skat-saknr.
**ENDIF.
**
***ENDIF.
**it_final-hsl1 = lv_total1.
**it_final-hsl2 = lv_total2.
**it_final-hsl3 = lv_total3.
**it_final-hsl4 = lv_total4.
**it_final-hsl5 = lv_total5.
**it_final-hsl6 = lv_total6.
**it_final-hsl7 = lv_total7.
**it_final-hsl8 = lv_total8.
**it_final-hsl9 = lv_total9.
**it_final-hsl10 = lv_total10.
**it_final-hsl11 = lv_total11.
**it_final-hsl12 = lv_total12.
**it_final-hsl13 = lv_total13.
**it_final-hsl14 = lv_total14.
**it_final-hsl15 = lv_total15.
**it_final-hsl16 = lv_total16.
***it_final-hsl1 = lv_total1.
***it_final-hsl1 = lv_total1.
*
**CASE it_faglflexa-poper.
***CASE it_faglflext-rpmax.
***WHEN '1'.
**  WHEN '11'.
**DATA : lv_total TYPE faglflexa-hsl.
**AT END OF hsl.
**SUM.
**it_final-hsl11 = lv_total + SUM.
**it_final-txt50 = it_skat-txt50.
**it_final-saknr = it_skat-saknr.
*
**it_final-hsl01 = it_faglflext-hsl01.
***WHEN '2'.
**it_final-hsl02 = it_faglflext-hsl02.
***WHEN '3'.
**it_final-hsl03 = it_faglflext-hsl03.
****WHEN '4'.
**it_final-hsl04 = it_faglflext-hsl04.
***WHEN '5'.
**it_final-hsl05 = it_faglflext-hsl05.
***WHEN '6'.
**it_final-hsl06 = it_faglflext-hsl06.
***WHEN '7'.
**it_final-hsl07 = it_faglflext-hsl07.
***WHEN '8'.
**it_final-hsl08 = it_faglflext-hsl08.
***WHEN '9'.
**it_final-hsl09 = it_faglflext-hsl09.
***WHEN '10'.
**it_final-hsl10 = it_faglflext-hsl10.
***WHEN '11'.
**it_final-hsl11 = it_faglflext-hsl11.
***WHEN '12'.
**it_final-hsl12 = it_faglflext-hsl12.
***WHEN '13'.
**it_final-hsl13 = it_faglflext-hsl13.
***WHEN '14'.
**it_final-hsl14 = it_faglflext-hsl14.
***WHEN '15'.
**it_final-hsl15 = it_faglflext-hsl15.
***WHEN '16'.
**it_final-hsl16 = it_faglflext-hsl16.
*it_final-ztotal = it_final-hsl1 + it_final-hsl2 + it_final-hsl3 + it_final-hsl4 + it_final-hsl5 + it_final-hsl6
*                  + it_final-hsl7 + it_final-hsl8 + it_final-hsl9 + it_final-hsl10 + it_final-hsl11 +
*                  it_final-hsl12 + it_final-hsl13 + it_final-hsl14 + it_final-hsl15 + it_final-hsl16.
*
**APPEND it_final.
**CLEAR  it_final.
*
*
**ENDCASE.
**ENDLOOP.

*APPEND it_final.
*CLEAR  it_final.
*ENDCASE.
*ENDIF.
*ENDIF.
*APPEND it_final.
*CLEAR  it_final.
*ENDIF.
*ENDLOOP.

*WRITE : lv_total11, lv_total1.
*LOOP AT it_final.
*it_final-ztotal = it_final-hsl01 + it_final-hsl02 + it_final-hsl03 + it_final-hsl04 + it_final-hsl05 + it_final-hsl06
*                  + it_final-hsl07 + it_final-hsl08 + it_final-hsl09 + it_final-hsl10 + it_final-hsl11 +
*                  it_final-hsl12 + it_final-hsl13 + it_final-hsl14 + it_final-hsl15 + it_final-hsl16.
*MODIFY it_final.
*CLEAR  it_final.
*
*ENDLOOP.
*LOOP AT it_final.
*it_final-hsl1 = lv_total1.
*it_final-hsl2 = lv_total2.
*it_final-hsl3 = lv_total3.
*it_final-hsl4 = lv_total4.
*it_final-hsl5 = lv_total5.
*it_final-hsl6 = lv_total6.
*it_final-hsl7 = lv_total7.
*it_final-hsl8 = lv_total8.
*it_final-hsl9 = lv_total9.
*it_final-hsl10 = lv_total10.
*it_final-hsl11 = lv_total11.
*it_final-hsl12 = lv_total12.
*it_final-hsl13 = lv_total13.
*it_final-hsl14 = lv_total14.
*it_final-hsl15 = lv_total15.
*it_final-hsl16 = lv_total16.
*it_final-ztotal = it_final-hsl1 + it_final-hsl2 + it_final-hsl3 + it_final-hsl4 + it_final-hsl5 + it_final-hsl6
*                  + it_final-hsl7 + it_final-hsl8 + it_final-hsl9 + it_final-hsl10 + it_final-hsl11 +
*                  it_final-hsl12 + it_final-hsl13 + it_final-hsl14 + it_final-hsl15 + it_final-hsl16.
*
*MODIFY it_final INDEX 1.
**DELETE ADJACENT DUPLICATES FROM it_final COMPARING saknr.
*ENDLOOP.

ENDFORM.                    " FETCH_DATA
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM BUILD_FIELDCATALOG .
wa_fieldcat
-col_pos    = '1'.
wa_fieldcat
-fieldname  = 'TXT50'.    " Fieldname in the data table
wa_fieldcat
-seltext_l  = 'Expense Particulars'.
*wa_fieldcat-colwidth_optimize = 'X'.
APPEND wa_fieldcat  TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '2'.
wa_fieldcat
-fieldname  = 'SAKNR'.    " Fieldname in the data table
wa_fieldcat
-seltext_l  = 'Account Number'.
*wa_fieldcat-colwidth_optimize = 'X'.
APPEND wa_fieldcat  TO it_fieldcat.
CLEAR   wa_fieldcat.


wa_fieldcat
-col_pos    = '3'.
wa_fieldcat
-fieldname  = 'HSL1'.    " Fieldname in the data table
wa_fieldcat
-seltext_m  = 'April'.
wa_fieldcat
-do_sum    = 'X'.
*wa_fieldcat-colwidth_optimize = 'X'.
APPEND wa_fieldcat  TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '4'.
wa_fieldcat
-fieldname  = 'HSL2'.    " Fieldname in the data table
wa_fieldcat
-seltext_m  = 'May'.
wa_fieldcat
-do_sum = 'X'.
*wa_fieldcat-colwidth_optimize = 'X'.
APPEND wa_fieldcat  TO it_fieldcat.
CLEAR   wa_fieldcat.


wa_fieldcat
-col_pos    = '5'.
wa_fieldcat
-fieldname  = 'HSL3'.
wa_fieldcat
-seltext_m  = 'June'.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '6'.
wa_fieldcat
-fieldname  = 'HSL4'.
wa_fieldcat
-seltext_m  = 'July'.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '7'.
wa_fieldcat
-fieldname  = 'HSL5'.
wa_fieldcat
-seltext_m  = 'August'.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '8'.
wa_fieldcat
-fieldname  = 'HSL6'.
wa_fieldcat
-seltext_m  = 'September'.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '9'.
wa_fieldcat
-fieldname  = 'HSL7'.
wa_fieldcat
-seltext_m  = 'October'.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '10'.
wa_fieldcat
-fieldname  = 'HSL8'.
wa_fieldcat
-seltext_m  = 'November'.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '11'.
wa_fieldcat
-fieldname  = 'HSL9'.
wa_fieldcat
-seltext_m  = 'December'.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '12'.
wa_fieldcat
-fieldname  = 'HSL10'.
wa_fieldcat
-seltext_m  = 'January'.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '13'.
wa_fieldcat
-fieldname  = 'HSL11'.
wa_fieldcat
-seltext_m  = 'February'.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '14'.
wa_fieldcat
-fieldname  = 'HSL12'.
wa_fieldcat
-seltext_m  = 'March'.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '15'.
wa_fieldcat
-fieldname  = 'HSL13'.
wa_fieldcat
-seltext_m  = ''.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '16'.
wa_fieldcat
-fieldname  = 'HSL14'.
wa_fieldcat
-seltext_m  = ''.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '17'.
wa_fieldcat
-fieldname  = 'HSL15'.
wa_fieldcat
-seltext_m  = ''.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '18'.
wa_fieldcat
-fieldname  = 'HSL16'.
wa_fieldcat
-seltext_m  = ''.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

wa_fieldcat
-col_pos    = '19'.
wa_fieldcat
-fieldname  = 'ZTOTAL'.
wa_fieldcat
-seltext_m  = 'total'.
wa_fieldcat
-do_sum     = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CLEAR   wa_fieldcat.

*wa_fieldcat-fieldname   = 'TEXT'.
*  wa_fieldcat-seltext_m   = 'Totals'.
*  wa_fieldcat-tech        = 'X'.
*  wa_fieldcat-no_out      = 'X'.
*  append wa_fieldcat to it_fieldcat.
*  clear  wa_fieldcat.


* wa_fieldcat-fieldname  = 'BUPLA'.
*  wa_fieldcat-seltext_m  = 'Business Place'.
*  APPEND wa_fieldcat TO it_fieldcat.
*CLEAR   wa_fieldcat.
*
*wa_fieldcat-fieldname  = 'SECCO'.
*  wa_fieldcat-seltext_m  = 'Section code'.
*  APPEND wa_fieldcat TO it_fieldcat.
*CLEAR   wa_fieldcat.
*
*
*
*  wa_fieldcat-fieldname  = 'BKTXT'.
*  wa_fieldcat-seltext_m  = 'Document Header Text'.
*  APPEND wa_fieldcat TO it_fieldcat.
*CLEAR   wa_fieldcat.
*
*  wa_fieldcat-fieldname  = 'WAERS'.
*  wa_fieldcat-seltext_m  = 'Currency Key'.
*  APPEND wa_fieldcat TO it_fieldcat.
*CLEAR   wa_fieldcat.
*
*wa_fieldcat-fieldname  = 'ZTERM'.
*  wa_fieldcat-seltext_m  = 'PaymentTerms'.
*  APPEND wa_fieldcat TO it_fieldcat.
*CLEAR   wa_fieldcat.
*
**wa_fieldcat-fieldname  = 'ZREVERSAL'.
**  wa_fieldcat-seltext_m  = 'Reversal'.
*  APPEND wa_fieldcat TO it_fieldcat.
*CLEAR   wa_fieldcat.

*  wa_fieldcat-fieldname  = 'KURSF'.
*  wa_fieldcat-seltext_m  = 'Exchange Rate'.
*  APPEND wa_fieldcat TO it_fieldcat.
* CLEAR   wa_fieldcat.
**For item
*wa_fieldcat-fieldname  = 'HKONT'.    " Fieldname in the data table
*  wa_fieldcat-seltext_m  = 'General Leger Account'.
**wa_fieldcat-colwidth_optimize = 'X'.
*  APPEND wa_fieldcat  TO it_fieldcat.
*CLEAR   wa_fieldcat.
*
*  wa_fieldcat-fieldname  = 'SHKZG'.
*  wa_fieldcat-seltext_m  = 'Debit/Credit Indicator'.
*  APPEND wa_fieldcat TO it_fieldcat.
*CLEAR   wa_fieldcat.
*  wa_fieldcat-fieldname  = 'WRBTR'.
*  wa_fieldcat-seltext_m  = 'Item Amount'.
*  APPEND wa_fieldcat TO it_fieldcat.
*CLEAR   wa_fieldcat.
*gs_sort-fieldname = 'TXT50'.
**  gs_sort-spos      = 2.
**  gs_sort-up        = 'X'.
**GS_SORT-SUBTOT    = 'X'.
*  APPEND gs_sort TO gt_sort.
CLEAR gs_layout.
gs_layout
-totals_text = 'TOTAL'.
gs_layout
-colwidth_optimize = 'X'.
gs_layout
-no_keyfix = 'X'.
*CONDENSE gs_layout-totals_text.
ENDFORM.                    " BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV_OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM DISPLAY_ALV_OUTPUT .

gd_repid
= sy-repid.
*CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
* EXPORTING
**   I_INTERFACE_CHECK                 = ' '
**   I_BYPASSING_BUFFER                = ' '
**   I_BUFFER_ACTIVE                   = ' '
*   I_CALLBACK_PROGRAM                = gd_repid
**   I_CALLBACK_PF_STATUS_SET          = 'STATUS'
**   I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
**   I_CALLBACK_TOP_OF_PAGE            = ' '
**   I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
**   I_CALLBACK_HTML_END_OF_LIST       = ' '
**   I_STRUCTURE_NAME                  =
**   I_BACKGROUND_ID                   = ' '
**   I_GRID_TITLE                      =
**   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         = gs_layout
*   IT_FIELDCAT                       = it_fieldcat
**   IT_EXCLUDING                      =
**   IT_SPECIAL_GROUPS                 =
**   IT_SORT                           = gt_sort
**   IT_FILTER                         =
**   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = 'X'
**   IS_VARIANT                        =
**   IT_EVENTS                         =
**   IT_EVENT_EXIT                     =
**   IS_PRINT                          =
**   IS_REPREP_ID                      =
**   I_SCREEN_START_COLUMN             = 0
**   I_SCREEN_START_LINE               = 0
**   I_SCREEN_END_COLUMN               = 0
**   I_SCREEN_END_LINE                 = 0
**   I_HTML_HEIGHT_TOP                 = 0
**   I_HTML_HEIGHT_END                 = 0
**   IT_ALV_GRAPHICS                   =
**   IT_HYPERLINK                      =
**   IT_ADD_FIELDCAT                   =
**   IT_EXCEPT_QINFO                   =
**   IR_SALV_FULLSCREEN_ADAPTER        =
** IMPORTING
**   E_EXIT_CAUSED_BY_CALLER           =
**   ES_EXIT_CAUSED_BY_USER            =
*  TABLES
*    T_OUTTAB                          = it_final
* EXCEPTIONS
*   PROGRAM_ERROR                     = 1
*   OTHERS                            = 2
*          .
*IF SY-SUBRC <> 0.
** Implement suitable error handling here
*ENDIF.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
*   I_INTERFACE_CHECK              = ' '
*   I_BYPASSING_BUFFER             =
*   I_BUFFER_ACTIVE                = ' '
I_CALLBACK_PROGRAM            
= gd_repid
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   I_STRUCTURE_NAME               =
IS_LAYOUT                     
= gs_layout
IT_FIELDCAT                   
= it_fieldcat
*   IT_EXCLUDING                   =
*   IT_SPECIAL_GROUPS              =
*   IT_SORT                        =
*   IT_FILTER                      =
*   IS_SEL_HIDE                    =
I_DEFAULT                     
= 'X'
I_SAVE                        
= 'X '
*   IS_VARIANT                     =
IT_EVENTS                     
= i_events
*   IT_EVENT_EXIT                  =
*   IS_PRINT                       =
*   IS_REPREP_ID                   =
*   I_SCREEN_START_COLUMN          = 0
*   I_SCREEN_START_LINE            = 0
*   I_SCREEN_END_COLUMN            = 0
*   I_SCREEN_END_LINE              = 0
*   IR_SALV_LIST_ADAPTER           =
*   IT_EXCEPT_QINFO                =
*   I_SUPPRESS_EMPTY_DATA          = ABAP_FALSE
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER        =
*   ES_EXIT_CAUSED_BY_USER         =
TABLES
T_OUTTAB                      
= it_final[]
* EXCEPTIONS
*   PROGRAM_ERROR                  = 1
*   OTHERS                         = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.




ENDFORM.                    " DISPLAY_ALV_OUTPUT
*&---------------------------------------------------------------------*
*&      Form  SUB_COMMENT_BUILD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_LIST_TOP_OF_PAGE  text
*----------------------------------------------------------------------*
FORM SUB_COMMENT_BUILD  USING    l_top_of_page TYPE slis_t_listheader.
DATA: ls_line TYPE slis_listheader.
* ***Header
CLEAR ls_line.
ls_line
-typ  = 'H'.
* LS_LINE-KEY: not used for this type
ls_line
-info = 'Heading list'.
APPEND ls_line TO l_top_of_page.
* ***Selection
CLEAR ls_line.
ls_line
-typ  = 'S'.
ls_line
-key  = 'Key 1'.
ls_line
-info = 'Material '.
APPEND ls_line TO l_top_of_page.
ls_line
-key  = 'Key 2'.
ls_line
-info = 'Document no'.
APPEND ls_line TO l_top_of_page.
* ***Action
CLEAR ls_line.
endform.                    " SUB_

*ENDFORM.                    " SUB_COMMENT_BUILD
*&---------------------------------------------------------------------*
*&      Form  SUB_EVENTTAB_BUILD
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_I_EVENTS  text
*----------------------------------------------------------------------*
FORM SUB_EVENTTAB_BUILD  USING    l_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
* Get the different events of the ALV
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type
= 0
IMPORTING
et_events  
= l_events.
* Search the top of page events
READ TABLE l_events WITH KEY name = slis_ev_top_of_page INTO ls_event.
IF sy-subrc = 0.
MOVE 'TOP_OF_PAGE' TO ls_event-form.
APPEND ls_event TO l_events.
ENDIF.

ENDFORM.                    " SUB_EVENTTAB_BUILD
FORM top_of_page .
DATA :
lv_low
LIKE faglflext-RPMAX,
lv_high
LIKE faglflext-RPMAX.
LOOP AT so_per .
lv_low
= so_per-low.
lv_high
= so_per-high.
ENDLOOP.

ULINE.
*FORMAT INTENSIFIED  COLOR = 2.
WRITE : sy-vline, 60 'Avanti Industries Pte Ltd'.
ULINE.
WRITE : sy-Vline ,60 'Monthwise Expense Report'.
*FORMAT INTENSIFIED OFF.
ULINE.
WRITE : sy-vline, 'FROM',50 sy-vline, lv_low, 65 sy-vline, 70'TO', 78 sy-vline, lv_high,
92 sy-vline.
*DATA : cl_dd TYPE REF TO cl_dd_document.
*CREATE OBJECT cl_dd.
*DATA: lv_per(255).
*
** for space
*CALL METHOD cl_dd->add_gap
*EXPORTING
*width = 7.
*
** to add text in heading
*CALL METHOD cl_dd->add_text
*EXPORTING
*text = 'Avanti Industries Pte Ltd'
*sap_style = cl_dd_document=>heading           "Sap styles are heading,Key, success,etc
*sap_fontsize = cl_dd_document=>medium       "Sap font sizes are small,medium, large
*sap_emphasis = cl_dd_document=>strong.      "Sap emphases are strong , emphasis
*
** for gap between two text
*CALL METHOD cl_dd->add_gap
*EXPORTING
*width = 23.
*
** for new text
*CALL METHOD cl_dd->add_text
*EXPORTING
*text = 'Monthwise Expense Report'
*sap_style = cl_dd_document=>key
*sap_color = cl_dd_document=>list_background
*sap_fontsize = cl_dd_document=>large
*sap_emphasis = cl_dd_document=>emphasis.
*
*
** for new line
DATA : lv_curr LIKE faglflexa-RTCUR.
LOOP AT it_faglflexa INTO wa_faglflexa.
lv_curr
= wa_faglflexa-rtcur.
ENDLOOP.
ULINE.
WRITE: sy-vline,
'CURRENCY' ,
50 SY-VLINE,   60 lv_curr, 65 sy-vline, 78 sy-vline,92 sy-vline .
*         122 SY-VLINE,  135 'HEADING3'        COLOR 4,
*         155 SY-VLINE,  165 'HEADING4' COLOR 4,
*         188 SY-VLINE.
ENDFORM.

Regards,

Saurav Lahiry

0 Kudos

Hi Venkat,

Thanks a lot. I have solved the issue.

Regards,

Saurav Lahiry