‎2008 Apr 04 10:54 AM
Hi,
I have implement subtotalling in a ALV report program.
Dump message is:
Short text
The current application triggered a termination with a short dump.
What happened?
The current application program detected a situation which really
should not occur. Therefore, a termination with a short dump was
triggered on purpose by the key word MESSAGE (type X).
2729 add 1 to ls_lvc_data-col_pos.
2730
2731 assign component <ls_fcat>-fieldname
2732 of structure <ls_data> to <l_f
2733 if sy-subrc ne 0.
>>>> message x000(0k).
2735 endif.
2736
2737 *... work on average
2738 if <ls_fcat>-do_sum eq 'C'.
2739 clear l_entries.
2740
2741 assign space to <l_unit>.
2742 if not <ls_fcat>-cfieldname is initial.
2743 assign component <ls_fcat>-cfieldname
2744 of structure <ls_data> to <l_unit>.
2745 endif.
2746 if not <ls_fcat>-qfieldname is initial.
2747 assign component <ls_fcat>-qfieldname
2748 of structure <ls_data> to <l_unit>.
2749 endif.
2750
2751 l_from = ls_grpl-index_from.
2752 l_to = ls_grpl-index_to.
2753 if ls_grpl-index_from is initial
Edited by: Marc Winston Ng on Apr 4, 2008 11:55 AM
Edited by: Marc Winston Ng on Apr 4, 2008 11:55 AM
‎2008 Apr 04 11:02 AM
Hi,
Just have a look on the following sample code and compare it with your code.
TABLES : vbak.
TYPE-POOLS: slis. " ALV Global types
DATA:
BEGIN OF gt_vbak OCCURS 0,
vkorg LIKE vbak-vkorg, " Sales organization
kunnr LIKE vbak-kunnr, " Sold-to party
vbeln LIKE vbak-vbeln, " Sales document
netwr LIKE vbak-netwr, " Net Value of the Sales Order
waerk LIKE vbak-waerk, " Document currency
END OF gt_vbak.
----
*INITIALIZATION.
*
v_1 = 'Maximum of records to read'.
----
START-OF-SELECTION.
PERFORM f_read_data.
PERFORM f_display_data.
----
Form f_read_data
----
FORM f_read_data.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_vbak
FROM vbak
UP TO 20 ROWS.
ENDFORM. " F_READ_DATA
----
Form f_display_data
----
FORM f_display_data.
DEFINE m_fieldcat.
add 1 to ls_fieldcat-col_pos.
ls_fieldcat-fieldname = &1.
ls_fieldcat-ref_tabname = 'VBAK'.
ls_fieldcat-do_sum = &2.
ls_fieldcat-cfieldname = &3. "currency unit field name
"(Value set: SPACE, output table field name)
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.
DEFINE m_sort.
add 1 to ls_sort-spos.
ls_sort-fieldname = &1.
ls_sort-up = 'X'.
ls_sort-subtot = &2.
append ls_sort to lt_sort.
END-OF-DEFINITION.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv,
lt_sort TYPE slis_t_sortinfo_alv,
ls_sort TYPE slis_sortinfo_alv,
ls_layout TYPE slis_layout_alv.
m_fieldcat 'VKORG' '' ''.
m_fieldcat 'KUNNR' '' ''.
m_fieldcat 'VBELN' '' ''.
m_fieldcat 'NETWR' 'X' 'WAERK'.
m_fieldcat 'WAERK' '' ''.
m_sort 'VKORG' 'X'. " Sort by vkorg and subtotal
m_sort 'KUNNR' 'X'. " Sort by kunnr and subtotal
m_sort 'VBELN' ''. " Sort by vbeln
ls_layout-cell_merge = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
is_layout = ls_layout
it_fieldcat = lt_fieldcat
it_sort = lt_sort
TABLES
t_outtab = gt_vbak.
ENDFORM. " F_DISPLAY_DATA
Reward,if useful.
Thanks,
Chandu