06-21-2015 2:14 PM
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
06-21-2015 4:36 PM
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.
06-21-2015 4:36 PM
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.
06-22-2015 8:40 AM
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.
CLEAR: lv_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
06-22-2015 3:33 PM
Hi Venkat,
Thanks a lot. I have solved the issue.
Regards,
Saurav Lahiry