‎2007 Mar 21 7:57 AM
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
‎2007 Mar 21 7:58 AM
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
‎2007 Mar 21 8:08 AM
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'.
‎2007 Mar 21 8:17 AM
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
‎2007 Mar 21 8:18 AM
hi Mahesh,
Try this way out
it_sort-fieldname = 'MATNR'.
IT_SORT-TABNAME = 'GI_FINAL'.
IT-SORT-SPOS = '2'.Regards,
santosh
‎2007 Mar 21 8:37 AM
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