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 reports

Former Member
0 Kudos

Hi friends,

i have problem how to do total ,subtotal and average and percentage of individual,

please can any body give me the solution if possible reference code.

Thanks in advance,

sasi.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Follow the steps below .....to get Subtotals and Grand totals

1.

Define SORT table and FIELDCATALOG table .

Data :i_field type slis_t_fieldcat_alv,

w_field like line of i_field,

i_sort type slis_t_sortinfo_alv,

w_sort like line of i_sort.

2.Grand Total

While buildingfieldcatalog,We have to set DO_SUM = 'X' for quantity field .

ex.

w_field-fieldname = 'MENGE'.

w_field-tabname = 'I_TAB'.

w_field-DO_SUM = 'X'.

append w_field to i_field.

clear w_field.

3.Subtotal

Whenever WERKS is changed Subtotal is displayed .

Build sort table .

Clear: w_sort,i_sort[].

w_sort-spos = 1.

w_sort-fieldname = 'WERKS'.

w_sort-up = 'X'.

w_sort-subtot = 'X'.

append w_sort to i_sort.

clear w_sort.

4.

Pass this I_SORT table thru REUSE_ALV_LIST_DISPLAY function module ..like fieldcatalog table.

***************************

if you want average then use DO_SUM = 'C'."instead of 'X'

then totals will be shown interms of average.

*****************************

You can't get percentage in ALV by default because ALV don't provide this functionality. You can write the simple code: value/ total * 100 and then display the same in the ALV.

4 REPLIES 4

Former Member
0 Kudos

Follow the steps below .....to get Subtotals and Grand totals

1.

Define SORT table and FIELDCATALOG table .

Data :i_field type slis_t_fieldcat_alv,

w_field like line of i_field,

i_sort type slis_t_sortinfo_alv,

w_sort like line of i_sort.

2.Grand Total

While buildingfieldcatalog,We have to set DO_SUM = 'X' for quantity field .

ex.

w_field-fieldname = 'MENGE'.

w_field-tabname = 'I_TAB'.

w_field-DO_SUM = 'X'.

append w_field to i_field.

clear w_field.

3.Subtotal

Whenever WERKS is changed Subtotal is displayed .

Build sort table .

Clear: w_sort,i_sort[].

w_sort-spos = 1.

w_sort-fieldname = 'WERKS'.

w_sort-up = 'X'.

w_sort-subtot = 'X'.

append w_sort to i_sort.

clear w_sort.

4.

Pass this I_SORT table thru REUSE_ALV_LIST_DISPLAY function module ..like fieldcatalog table.

***************************

if you want average then use DO_SUM = 'C'."instead of 'X'

then totals will be shown interms of average.

*****************************

You can't get percentage in ALV by default because ALV don't provide this functionality. You can write the simple code: value/ total * 100 and then display the same in the ALV.

Former Member
0 Kudos

hi

good

go through this

for totalsin slis_T_fieldcat_alv in that table u have field named DO_SUM = 'X' set this for

the field which are u want to calculate total.

for subtotal in slis_t_sortinfo_alv in that structure u have field named

SUBTOT = 'X' set this field which are u want to calculate subtotal.

and plz do refer to the links also

Refer this link:

http://www.sapfans.com/forums/viewtopic.php?t=20386

http://www.sapfans.com/forums/viewtopic.php?t=85191

http://www.sapfans.com/forums/viewtopic.php?t=88401

http://www.sapfans.com/forums/viewtopic.php?t=17335

ALV Group Heading

http://www.sap-img.com/fu037.htm

http://www.sap-img.com/abap/test-alv-display-with-header-footer.htm

http://www.sap-img.com/abap/sample-alv-heading-in-alv.htm

thanks

mrutyun^

abdulazeez12
Active Contributor
0 Kudos

Reprots

http://www.sapgenie.com/abap/reports.htm

http://www.allsaplinks.com/material.html

http://www.sapdevelopment.co.uk/reporting/reportinghome.htm

ALV

1. Please give me general info on ALV.

http://www.sapfans.com/forums/viewtopic.php?t=58286

http://www.sapfans.com/forums/viewtopic.php?t=76490

http://www.sapfans.com/forums/viewtopic.php?t=20591

http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.

2. How do I program double click in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=11601

http://www.sapfans.com/forums/viewtopic.php?t=23010

3. How do I add subtotals (I have problem to add them)...

http://www.sapfans.com/forums/viewtopic.php?t=20386

http://www.sapfans.com/forums/viewtopic.php?t=85191

http://www.sapfans.com/forums/viewtopic.php?t=88401

http://www.sapfans.com/forums/viewtopic.php?t=17335

4. How to add list heading like top-of-page in ABAP lists?

http://www.sapfans.com/forums/viewtopic.php?t=58775

http://www.sapfans.com/forums/viewtopic.php?t=60550

http://www.sapfans.com/forums/viewtopic.php?t=16629

5. How to print page number / total number of pages X/XX in ALV? http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)

6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.

http://www.sapfans.com/forums/viewtopic.php?t=64320

http://www.sapfans.com/forums/viewtopic.php?t=44477

7. How can I set the cell color in ALV? http://www.sapfans.com/forums/viewtopic.php?t=52107

8. How do I print a logo/graphics in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=81149

http://www.sapfans.com/forums/viewtopic.php?t=35498

http://www.sapfans.com/forums/viewtopic.php?t=5013

9. How do I create and use input-enabled fields in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=84933

http://www.sapfans.com/forums/viewtopic.php?t=69878

10. How can I use ALV for reports that are going to be run in background?

http://www.sapfans.com/forums/viewtopic.php?t=83243

http://www.sapfans.com/forums/viewtopic.php?t=19224

11. How can I display an icon in ALV? (Common requirement is traffic light icon).

http://www.sapfans.com/forums/viewtopic.php?t=79424

http://www.sapfans.com/forums/viewtopic.php?t=24512

12. How can I display a checkbox in ALV? http://www.sapfans.com/forums/viewtopic.php?t=88376

http://www.sapfans.com/forums/viewtopic.php?t=40968

http://www.sapfans.com/forums/viewtopic.php?t=6919

Check this for basic concepts of OOPS

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20...

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20...

Tabstrip

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20...

Editable ALV

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20...

Tree

http://www.sapdevelopment.co.uk/reporting/alv/alvtree/alvtree_usrint.htm

General Tutorial for OOPS

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/an%20ea...

http://www.sapdevelopment.co.uk/reporting/alvhome.htm

http://www.sap-img.com/abap/what-is-alv-programming.htm

http://www.sap-img.com/abap-function.htm

http://www.geocities.com/mpioud/Abap_programs.html

http://www.sapdevelopment.co.uk/reporting/alv/alvtree%5Calvtree_basic.htm

http://esnips.com/doc/ad20dca9-6182-4903-8d8f-96a66dc8590c/ALV.pdf

http://www.sap-img.com/abap-function.htm

former_member386202
Active Contributor
0 Kudos

Hi,

U can do only total n subtotal in alv report for that refer this code

*--Pass the values to the table

lwa_sort-fieldname = 'PERNR'. "Field name in o/p inttable

lwa_sort-tabname = 'it_final2'. "Output Internal table

lwa_sort-spos = '1'. "Sort sequence

lwa_sort-up = 'X'. "Sort in ascending order

lwa_sort-down = ' '. "Sort in descending order

lwa_sort-subtot = 'X'. "Subtotal

APPEND lwa_sort TO lit_sort.

*--Pass the values to the table

lwa_sort-fieldname = 'WORKDATE'. "Field name in o/p inttable

lwa_sort-tabname = 'it_final2'. "Output Internal table

lwa_sort-spos = '2'. "Sort sequence

lwa_sort-up = 'X'. "Sort in ascending order

lwa_sort-down = ' '. "Sort in descending order

lwa_sort-subtot = ' '. "Subtotal

APPEND lwa_sort TO lit_sort.

*--Pass the values to the table

lwa_sort-fieldname = 'WEKLY'. "Field name in o/p inttable

lwa_sort-tabname = 'it_final2'. "Output Internal table

lwa_sort-spos = '3'. "Sort sequence

lwa_sort-up = 'X'. "Sort in ascending order

lwa_sort-down = ' '. "Sort in descending order

lwa_sort-subtot = ' '. "Subtotal

APPEND lwa_sort TO lit_sort.

wa_layout-colwidth_optimize = 'X'.

IF NOT it_final2[] IS INITIAL.

*--Call the function module to display the ALV report

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

is_layout = wa_layout

i_callback_program = v_repid

it_fieldcat = it_fieldcat1[]

i_default = c_chk

i_save = c_save

it_sort = lit_sort

TABLES

t_outtab = it_final2

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ELSE.

*--Message No data found

MESSAGE i888 WITH text-017.

LEAVE LIST-PROCESSING.

ENDIF.

ENDFORM. " sub_display_data

if u want to average n percentage also then do it manually store it in one internal table n use block alv to display 2 internal tables.

&----


*& Form sub_alv_display *

&----


  • This form displays the output using REUSE_ALV_GRID_DISPLAY *

  • function module *

----


FORM sub_alv_display .

*--Local Variables

DATA : lv_index LIKE sy-tabix.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = v_repid.

wa_layout1-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = wa_layout1

it_fieldcat = it_fieldcat[]

i_tabname = 'it_final'

it_events = it_events

TABLES

t_outtab = it_final

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

LOOP AT it_fieldcat INTO wa_fieldcat.

lv_index = sy-tabix.

IF wa_fieldcat-fieldname = 'ERDAT'.

wa_fieldcat-fieldname = 'TITLE'.

wa_fieldcat-seltext_m = text-026.

wa_fieldcat-outputlen = 10.

ENDIF.

MODIFY it_fieldcat FROM wa_fieldcat INDEX lv_index TRANSPORTING

fieldname seltext_m outputlen.

CLEAR : wa_fieldcat.

ENDLOOP.

wa_layout2-no_colhead = 'X'.

wa_layout2-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = wa_layout2

it_fieldcat = it_fieldcat[]

i_tabname = 'it_total'

it_events = it_event1

TABLES

t_outtab = it_total

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

wa_layout3-no_colhead = 'X'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

is_layout = wa_layout3

it_fieldcat = it_fieldcat2[]

i_tabname = 'it_ship'

it_events = it_event2

TABLES

t_outtab = it_ship

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

IF NOT it_final IS INITIAL OR

NOT it_total IS INITIAL OR

NOT it_ship IS INITIAL.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

ENDIF.

ENDFORM. "sub_alv_display

also see this standard program ALV Block List BALVBT01

Regards,

Prashant