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

subtotal

Former Member
0 Likes
485

hi

i have to get subtotal for some line items ,for subtotals i should get title has subtotal. how to write code

4 REPLIES 4
Read only

Former Member
0 Likes
458

Hi

SUBTOTAL is the TOTAL at perticluar level.

TOTAL means TOTAL of all the lines.

LIKE:

N1 100

N1 200

N2 100

N2 500

Subtotal

N1 300

N2 600

Total

  • 900

To get the SUBTOTAL in the ALV you need to use the SORT tables.

In the SORT table you can find a parameter SUB_TOT. Just pass 'X' on which you want to have an subtotal. Like in the about example FLD .. pass 'X' to SUB_TOT,

To get the TOTAL .. pass FCAT-DO_SUM = 'X' for the amount fields.

b]How do I add subtotals

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

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_basic.htm

Read only

Former Member
0 Likes
458

wht is it its a report script alv smartform which one?

Read only

Former Member
0 Likes
458

hi,

Do u want output like this?

TABLES : mseg.

TYPE-POOLS : slis.

DATA : BEGIN OF itab OCCURS 0,

mblnr LIKE mseg-mblnr,

matnr LIKE mseg-matnr,

werks LIKE mseg-werks,

menge LIKE mseg-menge,

line_color(4) TYPE c,

END OF itab.

DATA : BEGIN OF itab1 OCCURS 0,

mblnr LIKE mseg-mblnr,

matnr LIKE mseg-matnr,

werks LIKE mseg-werks,

menge LIKE mseg-menge,

line_color(4) TYPE c,

END OF itab1.

DATA : t_fcat TYPE slis_t_fieldcat_alv,

t_eve TYPE slis_t_event,

t_subtot TYPE slis_t_sortinfo_alv,

subtot LIKE LINE OF t_subtot,

wa_fcat LIKE LINE OF t_fcat,

gd_layout TYPE slis_layout_alv.

DATA : gt_menge LIKE mseg-menge,

st_menge LIKE mseg-menge.

SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : doc FOR mseg-mblnr.

SELECTION-SCREEN : END OF BLOCK blk1.

INITIALIZATION.

PERFORM build_cat USING t_fcat.

PERFORM build_eve.

PERFORM build_layout.

START-OF-SELECTION.

PERFORM get_data.

PERFORM display.

&----


*& Form build_cat

&----


  • text

----


  • -->TEMP_FCAT text

----


FORM build_cat USING temp_fcat TYPE slis_t_fieldcat_alv.

wa_fcat-tabname = 'ITAB'.

wa_fcat-fieldname = 'MBLNR'.

wa_fcat-seltext_m = 'Material Doc.'.

APPEND wa_fcat TO temp_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB'.

wa_fcat-fieldname = 'MATNR'.

wa_fcat-seltext_m = 'Material'.

APPEND wa_fcat TO temp_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB'.

wa_fcat-fieldname = 'WERKS'.

wa_fcat-seltext_m = 'Plant'.

APPEND wa_fcat TO temp_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB'.

wa_fcat-fieldname = 'MENGE'.

wa_fcat-seltext_m = 'Quantity'.

APPEND wa_fcat TO temp_fcat.

CLEAR wa_fcat.

ENDFORM. "build_cat

&----


*& Form build_eve

&----


  • text

----


FORM build_eve.

DATA : wa_eve TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = t_eve

EXCEPTIONS

list_type_wrong = 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.

ENDFORM. "build_eve

&----


*& Form build_layout

&----


  • text

----


FORM build_layout.

gd_layout-no_input = 'X'.

gd_layout-colwidth_optimize = 'X'.

gd_layout-info_fieldname = 'LINE_COLOR'.

ENDFORM. " BUILD_LAYOUT

&----


*& Form get_data

&----


  • text

----


FORM get_data.

SELECT mblnr matnr werks menge FROM mseg INTO CORRESPONDING FIELDS OF TABLE itab

WHERE mblnr IN doc.

SORT itab BY mblnr.

  • APPEND 'Total' TO itab.

LOOP AT itab.

AT NEW mblnr.

LOOP AT itab WHERE mblnr = itab-mblnr.

st_menge = st_menge + itab-menge.

itab1-mblnr = itab-mblnr.

itab1-matnr = itab-matnr.

itab1-werks = itab-werks.

itab1-menge = itab-menge.

APPEND itab1.

ENDLOOP.

itab1-mblnr = 'Sub_Total'.

itab1-matnr = ''.

itab1-werks = ''.

itab1-menge = st_menge.

itab1-line_color = 'C710'.

APPEND itab1.

itab1-line_color = ''.

CLEAR st_menge.

ENDAT.

ENDLOOP.

LOOP AT itab.

gt_menge = gt_menge + itab-menge.

ENDLOOP.

itab1-mblnr = 'Total'.

itab1-matnr = ''.

itab1-werks = ''.

itab1-menge = gt_menge.

itab1-line_color = 'C310'.

APPEND itab1.

ENDFORM. "get_data

&----


*& Form display

&----


  • text

----


FORM display.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = 'ZALV_LIST'

is_layout = gd_layout

it_fieldcat = t_fcat

it_sort = t_subtot

it_events = t_eve

TABLES

t_outtab = itab1

  • 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.

ENDFORM. "display

Read only

former_member386202
Active Contributor
0 Likes
458

Hi,

In layout pass text as subtotal

gd_layout-no_input = 'X'.

gd_layout-colwidth_optimize = 'X'.

gd_layout-subtotal_text= 'Subtotal'. (Just check in layout)

Regards,

Prashant