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 subtotal

Former Member
0 Likes
562

HI all,

I need subtotal based on 2 fields one is matnr and the other one is vben but i am getting subtotals based on only matnr but not on vbeln what could be the problem?

it_sort-fieldname = 'VBELN'.

IT_SORT-TABNAME = 'GI_FINAL'.

IT-SORT-SPOS = '1'.

IT_SORT-SUBTOT = 'X'.

IT-SORT-UP = 'X'.

APPEND IT-SORT.

it_sort-fieldname = 'MATNR'.

IT_SORT-TABNAME = 'GI_FINAL'.

IT-SORT-SPOS = '1'.

IT_SORT-SUBTOT = 'X'.

IT-SORT-UP = 'X'.

APPEND IT-SORT.

Please refer the above code and suggest me

what exact purpose of spos here?

Thanks&Regards

mahsh

5 REPLIES 5
Read only

p291102
Active Contributor
0 Likes
529

Hi,

Herewith i am sending the sample coding for the ALV SUBTOTAL report.

REPORT YMS_ALVSUBTOTAL.

*REPORT z_alv_sub_totals .

TYPE-POOLS: slis.

DATA: BEGIN OF it_output OCCURS 0,

var1(8) TYPE n,

var2(10),

var3 TYPE I,

END OF it_output.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,

t_fieldcat TYPE slis_fieldcat_alv,

it_sort TYPE slis_t_sortinfo_alv,

t_sort TYPE slis_sortinfo_alv,

v_repid LIKE sy-repid.

INITIALIZATION.

v_repid = sy-repid.

START-OF-SELECTION.

PERFORM get_data.

PERFORM sort_fields.

PERFORM fill_fieldcat.

PERFORM list_display.

&----


*& Form GET_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_data.

it_output-var1 = 1000.

it_output-var2 = 'anupama'.

it_output-var3 = '10000'.

APPEND it_output.

CLEAR it_output.

it_output-var1 = 1000.

it_output-var2 = 'siddhu'.

it_output-var3 = '20000'.

APPEND it_output.

CLEAR it_output.

it_output-var1 = 1000.

it_output-var2 = 'chinni'.

it_output-var3 = '100000'.

APPEND it_output.

CLEAR it_output.

it_output-var1 = 2000.

it_output-var2 = 'chicchu'.

it_output-var3 = '10000'.

APPEND it_output.

CLEAR it_output.

it_output-var1 = 2000.

it_output-var2 = 'candy'.

it_output-var3 = '10000'.

APPEND it_output.

CLEAR it_output.

it_output-var1 = 1000.

it_output-var2 = 'anupama'.

it_output-var3 = '10000'.

APPEND it_output.

CLEAR it_output.

it_output-var1 = 4000.

it_output-var2 = 'anupama'.

it_output-var3 = '10000'.

APPEND it_output.

CLEAR it_output.

ENDFORM. " GET_DATA

&----


*& Form fill_fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM fill_fieldcat.

PERFORM fill_fields USING: 'IT_OUTPUT' 'VAR1' 'Variable 1' ' ',

'IT_OUTPUT' 'VAR2' 'Variable 2' ' ',

'IT_OUTPUT' 'VAR3' 'Variable 3' 'X'.

ENDFORM. " fill_fieldcat

&----


*& Form fill_fields

&----


  • text

----


  • -->P_0146 text

  • -->P_0147 text

  • -->P_0148 text

  • -->P_0149 text

----


FORM fill_fields USING value(tabname) TYPE slis_tabname

value(fieldname) TYPE slis_fieldname

value(seltext_m) LIKE dd03p-scrtext_m

value(do_sum) TYPE c.

t_fieldcat-tabname = tabname.

t_fieldcat-fieldname = fieldname.

t_fieldcat-seltext_m = seltext_m.

IF do_sum = 'X'.

t_fieldcat-datatype = 'CURR'.

ENDIF.

t_fieldcat-do_sum = do_sum.

APPEND t_fieldcat TO it_fieldcat.

CLEAR t_fieldcat.

ENDFORM. " fill_fields

&----


*& Form list_display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM list_display.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = v_repid

it_fieldcat = it_fieldcat

it_sort = it_sort[]

TABLES

t_outtab = it_output

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. " list_display

&----


*& Form sort_fields

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sort_fields.

t_sort-fieldname = 'VAR1'.

t_sort-tabname = 'IT_OUTPUT'.

t_sort-spos = 1.

t_sort-up = 'X'.

t_sort-subtot = 'X'.

APPEND t_sort TO it_sort.

CLEAR t_sort.

t_sort-fieldname = 'VAR3'.

t_sort-tabname = 'IT_OUTPUT'.

t_sort-spos = 2.

t_sort-up = 'X'.

APPEND t_sort TO it_sort.

CLEAR t_sort.

ENDFORM. " sort_fields

Hope it will helps to u.

Thanks,

Shankar

Read only

Former Member
0 Likes
529

you have to change SPOS

it_sort-fieldname = 'MATNR'.

IT_SORT-TABNAME = 'GI_FINAL'.

<b>IT-SORT-SPOS = '2'.</b>

IT_SORT-SUBTOT = 'X'.

IT-SORT-UP = 'X'.

Read only

Former Member
0 Likes
529

Hi Mahesh,

You have made a mistake in your code......

Please change it as shown here.....



it_sort-fieldname = 'MATNR'.
IT_SORT-TABNAME = 'GI_FINAL'.
IT-SORT-SPOS = '<b>2</b>'.
IT_SORT-SUBTOT = 'X'.
IT-SORT-UP = 'X'.
APPEND IT-SORT.

Regards,

Kunjal

Read only

Former Member
0 Likes
529

hi Mahesh,

Try this way out


it_sort-fieldname = 'MATNR'.
IT_SORT-TABNAME = 'GI_FINAL'.
IT-SORT-SPOS = '2'.

Regards,

santosh

Read only

Former Member
0 Likes
529

it_sort-fieldname = 'VBELN'.

IT_SORT-TABNAME = 'GI_FINAL'.

IT-SORT-SPOS = '2'.

IT_SORT-SUBTOT = 'X'.

IT-SORT-UP = 'X'.

APPEND IT-SORT.

it_sort-fieldname = 'MATNR'.

IT_SORT-TABNAME = 'GI_FINAL'.

IT-SORT-SPOS = '1'.

IT_SORT-SUBTOT = 'X'.

IT-SORT-UP = 'X'.

APPEND IT-SORT.

HERE SPOS IS SORTING POSITION...

LIKE IN YOUR ITAB..

SORT ITAB BY MATNR VBELN.

THE PREFERENCE OF SORTING....

REGARDS

SHIBA DUTTA