<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic ALV Subtotal Text Using Classes in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-subtotal-text-using-classes/m-p/2553155#M581640</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying for alv subtotal text but i am not able to get the subtotal text. this is my program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report  ztest_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;type-pools : slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types : begin of itab_t,&lt;/P&gt;&lt;P&gt;          ebeln like ekpo-ebeln,&lt;/P&gt;&lt;P&gt;          lifnr like ekko-lifnr,&lt;/P&gt;&lt;P&gt;          ekorg like ekko-ekorg,&lt;/P&gt;&lt;P&gt;          ekgrp like ekko-ekgrp,&lt;/P&gt;&lt;P&gt;          werks like ekpo-werks,&lt;/P&gt;&lt;P&gt;          ebelp like ekpo-ebelp,&lt;/P&gt;&lt;P&gt;          matnr like ekpo-matnr,&lt;/P&gt;&lt;P&gt;          menge like ekpo-menge,&lt;/P&gt;&lt;P&gt;          netpr like ekpo-netpr,&lt;/P&gt;&lt;P&gt;         end of itab_t.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  itab type  table of itab_t.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : itab1 like eket occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: t_fcat       type slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      it_sort      type slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;      t_events     type slis_t_event,&lt;/P&gt;&lt;P&gt;      listhead     type slis_t_listheader,&lt;/P&gt;&lt;P&gt;      ls_layout    type slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select a~ebeln&lt;/P&gt;&lt;P&gt;         a~lifnr&lt;/P&gt;&lt;P&gt;         a~ekorg&lt;/P&gt;&lt;P&gt;         a~ekgrp&lt;/P&gt;&lt;P&gt;         b~werks&lt;/P&gt;&lt;P&gt;         b~ebelp&lt;/P&gt;&lt;P&gt;         b~matnr&lt;/P&gt;&lt;P&gt;         b~menge&lt;/P&gt;&lt;P&gt;         b~netpr&lt;/P&gt;&lt;P&gt;         up to 100 rows&lt;/P&gt;&lt;P&gt;         into corresponding fields of table itab&lt;/P&gt;&lt;P&gt;         from ekko as a inner join ekpo as b&lt;/P&gt;&lt;P&gt;         on a&lt;SUB&gt;ebeln = b&lt;/SUB&gt;ebeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_fcat using t_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_event using t_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_fcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_FCAT   text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_fcat  using    p_t_fcat type slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data : lfcat type slis_fieldcat_alv,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         colpos type i value '0'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data : ls_sort type slis_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname = 'EKKO'.&lt;/P&gt;&lt;P&gt;  lfcat-hotspot = 'X'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos          = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'LIFNR'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'LIFNR'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKKO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'EKORG'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'EKORG'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKKO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'EKGRP'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'EKGRP'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname = 'EKKO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'WERKS'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'WERKS'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKPO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'EBELP'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'EBELP'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKPO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKPO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname     = 'MENGE'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname       = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'MENGE'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKPO'.&lt;/P&gt;&lt;P&gt;  lfcat-do_sum        = 'X'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'NETPR'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'NETPR'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKPO'.&lt;/P&gt;&lt;P&gt;  lfcat-do_sum        = 'X'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_sort-spos = 1.&lt;/P&gt;&lt;P&gt;  ls_sort-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;  ls_sort-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  ls_sort-up        = 'X'.&lt;/P&gt;&lt;P&gt;  ls_sort-group     = 'UL'.&lt;/P&gt;&lt;P&gt;  ls_sort-subtot    = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append ls_sort to it_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                   " fill_fcat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_event&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_EVENTS text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_event  using    p_t_events type slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data : ls_event type slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;   exporting&lt;/P&gt;&lt;P&gt;     i_list_type           = 0&lt;/P&gt;&lt;P&gt;   importing&lt;/P&gt;&lt;P&gt;     et_events             = p_t_events&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  LIST_TYPE_WRONG       = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table p_t_events with key name = slis_ev_top_of_page&lt;/P&gt;&lt;P&gt;                        into ls_event.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    move 'TOP_OF_PAGE' to ls_event-form.&lt;/P&gt;&lt;P&gt;    append ls_event to p_t_events.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " FILL_EVENT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data : s_listhead type slis_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear s_listhead.&lt;/P&gt;&lt;P&gt;  s_listhead-typ  = 'H'.&lt;/P&gt;&lt;P&gt;  s_listhead-info = 'SIMPLE REPORT'.&lt;/P&gt;&lt;P&gt;  append s_listhead to listhead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  s_listhead-typ  = 'S'.&lt;/P&gt;&lt;P&gt;  s_listhead-key  = 'EBELN'.&lt;/P&gt;&lt;P&gt;  s_listhead-info = 'ALV'.&lt;/P&gt;&lt;P&gt;  append s_listhead to listhead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      it_list_commentary       = listhead&lt;/P&gt;&lt;P&gt;      i_logo                   = 'ENJOYSAP_LOGO'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_END_OF_LIST_GRID       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;endform.                    "TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_layout&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_S_LAYOUT  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_layout .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;  ls_layout-detail_popup = 'X'.&lt;/P&gt;&lt;P&gt;  ls_layout-key_hotspot = 'X'.&lt;/P&gt;&lt;P&gt;  ls_layout-window_titlebar = 'Dharma'.&lt;/P&gt;&lt;P&gt;  ls_layout-detail_titlebar = 'Jasti'.&lt;/P&gt;&lt;P&gt;  ls_layout-totals_text = 'GRAND TOTAL'.&lt;/P&gt;&lt;P&gt;  ls_layout-subtotals_text = 'SUB'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " fill_layout&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  display&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form display .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;   exporting&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_INTERFACE_CHECK              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BYPASSING_BUFFER             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BUFFER_ACTIVE                = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     i_callback_program             = sy-repid&lt;/P&gt;&lt;P&gt;     i_callback_pf_status_set       = 'STATUS'&lt;/P&gt;&lt;P&gt;     i_callback_user_command        = 'USER_COMMAND'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_STRUCTURE_NAME               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     is_layout                      = ls_layout&lt;/P&gt;&lt;P&gt;     it_fieldcat                    = t_fcat&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EXCLUDING                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_SPECIAL_GROUPS              =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     it_sort                        = it_sort[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_FILTER                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_SEL_HIDE                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_DEFAULT                      = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SAVE                         = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_VARIANT                     =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     it_events                      = t_events&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EVENT_EXIT                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_PRINT                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_REPREP_ID                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_START_COLUMN          = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_START_LINE            = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_END_COLUMN            = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_END_LINE              = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  E_EXIT_CAUSED_BY_CALLER        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ES_EXIT_CAUSED_BY_USER         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      t_outtab                       = itab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PROGRAM_ERROR                  = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                         = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGI D TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.                    " display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  status&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;EXTAB      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form status using extab type slis_t_extab.&lt;/P&gt;&lt;P&gt;  set pf-status 'PFSA' excluding extab.&lt;/P&gt;&lt;P&gt;endform.                    "STATUS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  user_command&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;R_UCOMM    text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;RS_SELFIELDtext&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form user_command using r_ucomm like sy-ucomm&lt;/P&gt;&lt;P&gt;                    rs_selfield type slis_selfield.&lt;/P&gt;&lt;P&gt;  case r_ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when '&amp;amp;ETA'.&lt;/P&gt;&lt;P&gt;      select * from eket into corresponding fields of  itab1&lt;/P&gt;&lt;P&gt;            where ebeln = rs_selfield-value.&lt;/P&gt;&lt;P&gt;        write:/ itab1-ebeln,&lt;/P&gt;&lt;P&gt;                itab1-ebelp,&lt;/P&gt;&lt;P&gt;                itab1-etenr,&lt;/P&gt;&lt;P&gt;                itab1-eindt,&lt;/P&gt;&lt;P&gt;                itab1-menge.&lt;/P&gt;&lt;P&gt;      endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when 'BACK' or 'EXIT' or 'CANC'.&lt;/P&gt;&lt;P&gt;      leave .&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "USER_COMMAND&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can you specify where it is required to modify..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 18 Jul 2007 11:01:27 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-18T11:01:27Z</dc:date>
    <item>
      <title>ALV Subtotal Text Using Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-subtotal-text-using-classes/m-p/2553155#M581640</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying for alv subtotal text but i am not able to get the subtotal text. this is my program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report  ztest_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;type-pools : slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types : begin of itab_t,&lt;/P&gt;&lt;P&gt;          ebeln like ekpo-ebeln,&lt;/P&gt;&lt;P&gt;          lifnr like ekko-lifnr,&lt;/P&gt;&lt;P&gt;          ekorg like ekko-ekorg,&lt;/P&gt;&lt;P&gt;          ekgrp like ekko-ekgrp,&lt;/P&gt;&lt;P&gt;          werks like ekpo-werks,&lt;/P&gt;&lt;P&gt;          ebelp like ekpo-ebelp,&lt;/P&gt;&lt;P&gt;          matnr like ekpo-matnr,&lt;/P&gt;&lt;P&gt;          menge like ekpo-menge,&lt;/P&gt;&lt;P&gt;          netpr like ekpo-netpr,&lt;/P&gt;&lt;P&gt;         end of itab_t.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data:  itab type  table of itab_t.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : itab1 like eket occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: t_fcat       type slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      it_sort      type slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;      t_events     type slis_t_event,&lt;/P&gt;&lt;P&gt;      listhead     type slis_t_listheader,&lt;/P&gt;&lt;P&gt;      ls_layout    type slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select a~ebeln&lt;/P&gt;&lt;P&gt;         a~lifnr&lt;/P&gt;&lt;P&gt;         a~ekorg&lt;/P&gt;&lt;P&gt;         a~ekgrp&lt;/P&gt;&lt;P&gt;         b~werks&lt;/P&gt;&lt;P&gt;         b~ebelp&lt;/P&gt;&lt;P&gt;         b~matnr&lt;/P&gt;&lt;P&gt;         b~menge&lt;/P&gt;&lt;P&gt;         b~netpr&lt;/P&gt;&lt;P&gt;         up to 100 rows&lt;/P&gt;&lt;P&gt;         into corresponding fields of table itab&lt;/P&gt;&lt;P&gt;         from ekko as a inner join ekpo as b&lt;/P&gt;&lt;P&gt;         on a&lt;SUB&gt;ebeln = b&lt;/SUB&gt;ebeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_fcat using t_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_event using t_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_fcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_FCAT   text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_fcat  using    p_t_fcat type slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data : lfcat type slis_fieldcat_alv,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;         colpos type i value '0'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data : ls_sort type slis_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname = 'EKKO'.&lt;/P&gt;&lt;P&gt;  lfcat-hotspot = 'X'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos          = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'LIFNR'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'LIFNR'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKKO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'EKORG'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'EKORG'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKKO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'EKGRP'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'EKGRP'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname = 'EKKO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'WERKS'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'WERKS'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKPO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'EBELP'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'EBELP'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKPO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKPO'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname     = 'MENGE'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname       = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'MENGE'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKPO'.&lt;/P&gt;&lt;P&gt;  lfcat-do_sum        = 'X'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;  lfcat-col_pos   = colpos.&lt;/P&gt;&lt;P&gt;  lfcat-fieldname = 'NETPR'.&lt;/P&gt;&lt;P&gt;  lfcat-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_fieldname = 'NETPR'.&lt;/P&gt;&lt;P&gt;  lfcat-ref_tabname   = 'EKPO'.&lt;/P&gt;&lt;P&gt;  lfcat-do_sum        = 'X'.&lt;/P&gt;&lt;P&gt;  append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;  clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_sort-spos = 1.&lt;/P&gt;&lt;P&gt;  ls_sort-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;  ls_sort-tabname   = 'ITAB'.&lt;/P&gt;&lt;P&gt;  ls_sort-up        = 'X'.&lt;/P&gt;&lt;P&gt;  ls_sort-group     = 'UL'.&lt;/P&gt;&lt;P&gt;  ls_sort-subtot    = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append ls_sort to it_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                   " fill_fcat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_event&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_EVENTS text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_event  using    p_t_events type slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data : ls_event type slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;   exporting&lt;/P&gt;&lt;P&gt;     i_list_type           = 0&lt;/P&gt;&lt;P&gt;   importing&lt;/P&gt;&lt;P&gt;     et_events             = p_t_events&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  LIST_TYPE_WRONG       = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table p_t_events with key name = slis_ev_top_of_page&lt;/P&gt;&lt;P&gt;                        into ls_event.&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    move 'TOP_OF_PAGE' to ls_event-form.&lt;/P&gt;&lt;P&gt;    append ls_event to p_t_events.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " FILL_EVENT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data : s_listhead type slis_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear s_listhead.&lt;/P&gt;&lt;P&gt;  s_listhead-typ  = 'H'.&lt;/P&gt;&lt;P&gt;  s_listhead-info = 'SIMPLE REPORT'.&lt;/P&gt;&lt;P&gt;  append s_listhead to listhead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  s_listhead-typ  = 'S'.&lt;/P&gt;&lt;P&gt;  s_listhead-key  = 'EBELN'.&lt;/P&gt;&lt;P&gt;  s_listhead-info = 'ALV'.&lt;/P&gt;&lt;P&gt;  append s_listhead to listhead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      it_list_commentary       = listhead&lt;/P&gt;&lt;P&gt;      i_logo                   = 'ENJOYSAP_LOGO'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_END_OF_LIST_GRID       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;endform.                    "TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_layout&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_S_LAYOUT  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_layout .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;  ls_layout-detail_popup = 'X'.&lt;/P&gt;&lt;P&gt;  ls_layout-key_hotspot = 'X'.&lt;/P&gt;&lt;P&gt;  ls_layout-window_titlebar = 'Dharma'.&lt;/P&gt;&lt;P&gt;  ls_layout-detail_titlebar = 'Jasti'.&lt;/P&gt;&lt;P&gt;  ls_layout-totals_text = 'GRAND TOTAL'.&lt;/P&gt;&lt;P&gt;  ls_layout-subtotals_text = 'SUB'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " fill_layout&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  display&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form display .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;   exporting&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_INTERFACE_CHECK              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BYPASSING_BUFFER             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BUFFER_ACTIVE                = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     i_callback_program             = sy-repid&lt;/P&gt;&lt;P&gt;     i_callback_pf_status_set       = 'STATUS'&lt;/P&gt;&lt;P&gt;     i_callback_user_command        = 'USER_COMMAND'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_STRUCTURE_NAME               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     is_layout                      = ls_layout&lt;/P&gt;&lt;P&gt;     it_fieldcat                    = t_fcat&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EXCLUDING                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_SPECIAL_GROUPS              =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     it_sort                        = it_sort[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_FILTER                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_SEL_HIDE                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_DEFAULT                      = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SAVE                         = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_VARIANT                     =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     it_events                      = t_events&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EVENT_EXIT                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_PRINT                       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_REPREP_ID                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_START_COLUMN          = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_START_LINE            = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_END_COLUMN            = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_SCREEN_END_LINE              = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  E_EXIT_CAUSED_BY_CALLER        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ES_EXIT_CAUSED_BY_USER         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    tables&lt;/P&gt;&lt;P&gt;      t_outtab                       = itab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PROGRAM_ERROR                  = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                         = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGI D TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.                    " display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  status&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;EXTAB      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form status using extab type slis_t_extab.&lt;/P&gt;&lt;P&gt;  set pf-status 'PFSA' excluding extab.&lt;/P&gt;&lt;P&gt;endform.                    "STATUS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  user_command&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;R_UCOMM    text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;RS_SELFIELDtext&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form user_command using r_ucomm like sy-ucomm&lt;/P&gt;&lt;P&gt;                    rs_selfield type slis_selfield.&lt;/P&gt;&lt;P&gt;  case r_ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when '&amp;amp;ETA'.&lt;/P&gt;&lt;P&gt;      select * from eket into corresponding fields of  itab1&lt;/P&gt;&lt;P&gt;            where ebeln = rs_selfield-value.&lt;/P&gt;&lt;P&gt;        write:/ itab1-ebeln,&lt;/P&gt;&lt;P&gt;                itab1-ebelp,&lt;/P&gt;&lt;P&gt;                itab1-etenr,&lt;/P&gt;&lt;P&gt;                itab1-eindt,&lt;/P&gt;&lt;P&gt;                itab1-menge.&lt;/P&gt;&lt;P&gt;      endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    when 'BACK' or 'EXIT' or 'CANC'.&lt;/P&gt;&lt;P&gt;      leave .&lt;/P&gt;&lt;P&gt;  endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "USER_COMMAND&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can you specify where it is required to modify..&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Jul 2007 11:01:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-subtotal-text-using-classes/m-p/2553155#M581640</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-18T11:01:27Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Subtotal Text Using Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-subtotal-text-using-classes/m-p/2553156#M581641</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;for this you need to do some thing different...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in local calss , you need a event for sub total text, &lt;/P&gt;&lt;P&gt;and set the handler for it, then sub total text will come.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM method_subtotal_text USING es_subtottxt_info TYPE lvc_s_stxt&lt;/P&gt;&lt;P&gt;ep_subtot_line TYPE REF TO data&lt;/P&gt;&lt;P&gt;e_event_data TYPE REF TO&lt;/P&gt;&lt;P&gt;cl_alv_event_data.&lt;/P&gt;&lt;P&gt;DATA ls_sflight LIKE sflight.&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS: &amp;lt;fs1&amp;gt; STRUCTURE sflight DEFAULT ls_sflight,&lt;/P&gt;&lt;P&gt;&amp;lt;fs2&amp;gt;.&lt;/P&gt;&lt;P&gt;IF es_subtottxt_info-criteria = 'PLANETYPE'.&lt;/P&gt;&lt;P&gt;ASSIGN ep_subtot_line-&amp;gt;* TO &amp;lt;fs1&amp;gt;.&lt;/P&gt;&lt;P&gt;ASSIGN e_event_data-&amp;gt;m_data-&amp;gt;* TO &amp;lt;fs2&amp;gt;.&lt;/P&gt;&lt;P&gt;CONCATENATE es_subtottxt_info-keyword ': '&lt;/P&gt;&lt;P&gt;&amp;lt;fs1&amp;gt;-planetype INTO &amp;lt;fs2&amp;gt;.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;rewards point for useful answer......&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thnaks ...&lt;/P&gt;&lt;P&gt;Abhay SIngh.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Jul 2007 11:03:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-subtotal-text-using-classes/m-p/2553156#M581641</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-18T11:03:31Z</dc:date>
    </item>
    <item>
      <title>Re: ALV Subtotal Text Using Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-subtotal-text-using-classes/m-p/2553157#M581642</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Raghavendra,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I modified your code abit.&lt;/P&gt;&lt;P&gt;Just check it once.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Observe the Bold code. and Now you will get the Subtotal text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZTEST_ALV                               .&lt;/P&gt;&lt;P&gt;type-pools : slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;types : begin of itab_t,&lt;/P&gt;&lt;P&gt;ebeln like ekpo-ebeln,&lt;/P&gt;&lt;P&gt;lifnr like ekko-lifnr,&lt;/P&gt;&lt;P&gt;ekorg like ekko-ekorg,&lt;/P&gt;&lt;P&gt;ekgrp like ekko-ekgrp,&lt;/P&gt;&lt;P&gt;werks like ekpo-werks,&lt;/P&gt;&lt;P&gt;ebelp like ekpo-ebelp,&lt;/P&gt;&lt;P&gt;matnr like ekpo-matnr,&lt;/P&gt;&lt;P&gt;menge like ekpo-menge,&lt;/P&gt;&lt;P&gt;netpr like ekpo-netpr,&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;d,&amp;lt;/b&amp;gt;                           "Dummy field to fire the Subtotal_text event&lt;/P&gt;&lt;P&gt;end of itab_t.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: itab type table of itab_t.&lt;/P&gt;&lt;P&gt;data: tab type itab_t.&lt;/P&gt;&lt;P&gt;data : itab1 like eket occurs 0 with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: t_fcat type slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;it_sort type slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;t_events type slis_t_event,&lt;/P&gt;&lt;P&gt;listhead type slis_t_listheader,&lt;/P&gt;&lt;P&gt;ls_layout type slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select a~ebeln&lt;/P&gt;&lt;P&gt;a~lifnr&lt;/P&gt;&lt;P&gt;a~ekorg&lt;/P&gt;&lt;P&gt;a~ekgrp&lt;/P&gt;&lt;P&gt;b~werks&lt;/P&gt;&lt;P&gt;b~ebelp&lt;/P&gt;&lt;P&gt;b~matnr&lt;/P&gt;&lt;P&gt;b~menge&lt;/P&gt;&lt;P&gt;b~netpr&lt;/P&gt;&lt;P&gt;up to 100 rows&lt;/P&gt;&lt;P&gt;into corresponding fields of table itab&lt;/P&gt;&lt;P&gt;from ekko as a inner join ekpo as b&lt;/P&gt;&lt;P&gt;on a&lt;SUB&gt;ebeln = b&lt;/SUB&gt;ebeln.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform fill_fcat using t_fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform fill_event using t_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform fill_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form fill_fcat&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_T_FCAT text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_fcat using p_t_fcat type slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : lfcat type slis_fieldcat_alv,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;colpos type i value '0'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : ls_sort type slis_sortinfo_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;lfcat-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;lfcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;lfcat-ref_fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;lfcat-ref_tabname = 'EKKO'.&lt;/P&gt;&lt;P&gt;lfcat-hotspot = 'X'.&lt;/P&gt;&lt;P&gt;append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;lfcat-fieldname = 'LIFNR'.&lt;/P&gt;&lt;P&gt;lfcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;lfcat-ref_fieldname = 'LIFNR'.&lt;/P&gt;&lt;P&gt;lfcat-ref_tabname = 'EKKO'.&lt;/P&gt;&lt;P&gt;append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;lfcat-fieldname = 'EKORG'.&lt;/P&gt;&lt;P&gt;lfcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;lfcat-ref_fieldname = 'EKORG'.&lt;/P&gt;&lt;P&gt;lfcat-ref_tabname = 'EKKO'.&lt;/P&gt;&lt;P&gt;append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;lfcat-fieldname = 'EKGRP'.&lt;/P&gt;&lt;P&gt;lfcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;lfcat-ref_fieldname = 'EKGRP'.&lt;/P&gt;&lt;P&gt;lfcat-ref_tabname = 'EKKO'.&lt;/P&gt;&lt;P&gt;append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;lfcat-fieldname = 'WERKS'.&lt;/P&gt;&lt;P&gt;lfcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;lfcat-ref_fieldname = 'WERKS'.&lt;/P&gt;&lt;P&gt;lfcat-ref_tabname = 'EKPO'.&lt;/P&gt;&lt;P&gt;append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;lfcat-fieldname = 'EBELP'.&lt;/P&gt;&lt;P&gt;lfcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;lfcat-ref_fieldname = 'EBELP'.&lt;/P&gt;&lt;P&gt;lfcat-ref_tabname = 'EKPO'.&lt;/P&gt;&lt;P&gt;append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;lfcat-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;lfcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;lfcat-ref_fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;lfcat-ref_tabname = 'EKPO'.&lt;/P&gt;&lt;P&gt;append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;lfcat-fieldname = 'MENGE'.&lt;/P&gt;&lt;P&gt;lfcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;lfcat-ref_fieldname = 'MENGE'.&lt;/P&gt;&lt;P&gt;lfcat-ref_tabname = 'EKPO'.&lt;/P&gt;&lt;P&gt;lfcat-do_sum = 'X'.&lt;/P&gt;&lt;P&gt;append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;lfcat-fieldname = 'NETPR'.&lt;/P&gt;&lt;P&gt;lfcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;lfcat-ref_fieldname = 'NETPR'.&lt;/P&gt;&lt;P&gt;lfcat-ref_tabname = 'EKPO'.&lt;/P&gt;&lt;P&gt;lfcat-do_sum = 'X'.&lt;/P&gt;&lt;P&gt;append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;colpos = colpos + 1.&lt;/P&gt;&lt;P&gt;lfcat-col_pos = colpos.&lt;/P&gt;&lt;P&gt;lfcat-fieldname = 'D'.&lt;/P&gt;&lt;P&gt;lfcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;lfcat-ref_fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;lfcat-ref_tabname = 'EKKO'.&lt;/P&gt;&lt;P&gt;lfcat-no_out = 'X'.&lt;/P&gt;&lt;P&gt;append lfcat to p_t_fcat.&lt;/P&gt;&lt;P&gt;clear lfcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_sort-spos = 1.&lt;/P&gt;&lt;P&gt;ls_sort-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;ls_sort-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;ls_sort-up = 'X'.&lt;/P&gt;&lt;P&gt;ls_sort-group = 'UL'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append ls_sort to it_sort.&lt;/P&gt;&lt;P&gt;clear ls_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;ls_sort-spos = 2.&lt;/P&gt;&lt;P&gt;ls_sort-fieldname = 'D'.&lt;/P&gt;&lt;P&gt;ls_sort-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;ls_sort-up = 'X'.&lt;/P&gt;&lt;P&gt;ls_sort-group = 'UL'.&lt;/P&gt;&lt;P&gt;ls_sort-subtot = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;append ls_sort to it_sort.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;endform. " fill_fcat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form fill_event&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_T_EVENTS text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_event using p_t_events type slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : ls_event type slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;i_list_type = 0&lt;/P&gt;&lt;P&gt;importing&lt;/P&gt;&lt;P&gt;et_events = p_t_events&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LIST_TYPE_WRONG = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read table p_t_events with key name = slis_ev_top_of_page&lt;/P&gt;&lt;P&gt;into ls_event.&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;move 'TOP_OF_PAGE' to ls_event-form.&lt;/P&gt;&lt;P&gt;append ls_event to p_t_events.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;read table p_t_events with key name = SLIS_EV_SUBTOTAL_TEXT&lt;/P&gt;&lt;P&gt;into ls_event.&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;move 'SUBTOTAL' to ls_event-form.&lt;/P&gt;&lt;P&gt;append ls_event to p_t_events.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform. " FILL_EVENT&lt;/P&gt;&lt;P&gt;FORM SUBTOTAL USING I_LISTHEAD STRUCTURE tab&lt;/P&gt;&lt;P&gt;                    I_SUBTOTAL TYPE SLIS_SUBTOT_TEXT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*criteria type slis_fieldname,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        keyword  like dd03p-reptext,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        criteria_text(255) type c,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        max_len  like dd03p-outputlen,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        display_text_for_subtotal(255) type c,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;if I_SUBTOTAL-criteria = 'D'.&lt;/P&gt;&lt;P&gt;concatenate 'Subtotal for'   I_LISTHEAD-EBELN  into &lt;/P&gt;&lt;P&gt;I_SUBTOTAL-display_text_for_subtotal .&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : s_listhead type slis_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear s_listhead.&lt;/P&gt;&lt;P&gt;s_listhead-typ = 'H'.&lt;/P&gt;&lt;P&gt;s_listhead-info = 'SIMPLE REPORT'.&lt;/P&gt;&lt;P&gt;append s_listhead to listhead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;s_listhead-typ = 'S'.&lt;/P&gt;&lt;P&gt;s_listhead-key = 'EBELN'.&lt;/P&gt;&lt;P&gt;s_listhead-info = 'ALV'.&lt;/P&gt;&lt;P&gt;append s_listhead to listhead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;it_list_commentary = listhead&lt;/P&gt;&lt;P&gt;i_logo = 'ENJOYSAP_LOGO'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_END_OF_LIST_GRID =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;endform. "TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form fill_layout&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_S_LAYOUT text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form fill_layout .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ls_layout-zebra = 'X'.&lt;/P&gt;&lt;P&gt;ls_layout-detail_popup = 'X'.&lt;/P&gt;&lt;P&gt;ls_layout-key_hotspot = 'X'.&lt;/P&gt;&lt;P&gt;ls_layout-window_titlebar = 'Dharma'.&lt;/P&gt;&lt;P&gt;ls_layout-detail_titlebar = 'Jasti'.&lt;/P&gt;&lt;P&gt;ls_layout-totals_text = 'GRAND TOTAL'.&lt;/P&gt;&lt;P&gt;ls_layout-subtotals_text = 'SUB'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform. " fill_layout&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form display&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt; p1 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;&amp;lt;-- p2 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form display .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_INTERFACE_CHECK = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BYPASSING_BUFFER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BUFFER_ACTIVE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;i_callback_program = sy-repid&lt;/P&gt;&lt;P&gt;i_callback_pf_status_set = 'STATUS'&lt;/P&gt;&lt;P&gt;i_callback_user_command = 'USER_COMMAND'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_STRUCTURE_NAME =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;is_layout = ls_layout&lt;/P&gt;&lt;P&gt;it_fieldcat = t_fcat&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_EXCLUDING =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_SPECIAL_GROUPS =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;it_sort = it_sort[]&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_FILTER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_SEL_HIDE =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_DEFAULT = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SAVE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_VARIANT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;it_events = t_events&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IT_EVENT_EXIT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_PRINT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_REPREP_ID =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_COLUMN = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_START_LINE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_COLUMN = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_SCREEN_END_LINE = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;E_EXIT_CAUSED_BY_CALLER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ES_EXIT_CAUSED_BY_USER =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;t_outtab = itab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROGRAM_ERROR = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGI D TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endform. " display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form status&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;EXTAB text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form status using extab type slis_t_extab.&lt;/P&gt;&lt;P&gt;set pf-status 'PFSA' excluding extab.&lt;/P&gt;&lt;P&gt;endform. "STATUS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form user_command&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;R_UCOMM text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;RS_SELFIELDtext&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form user_command using r_ucomm like sy-ucomm&lt;/P&gt;&lt;P&gt;rs_selfield type slis_selfield.&lt;/P&gt;&lt;P&gt;case r_ucomm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when '&amp;amp;ETA'.&lt;/P&gt;&lt;P&gt;select * from eket into corresponding fields of itab1&lt;/P&gt;&lt;P&gt;where ebeln = rs_selfield-value.&lt;/P&gt;&lt;P&gt;write:/ itab1-ebeln,&lt;/P&gt;&lt;P&gt;itab1-ebelp,&lt;/P&gt;&lt;P&gt;itab1-etenr,&lt;/P&gt;&lt;P&gt;itab1-eindt,&lt;/P&gt;&lt;P&gt;itab1-menge.&lt;/P&gt;&lt;P&gt;endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;when 'BACK' or 'EXIT' or 'CANC'.&lt;/P&gt;&lt;P&gt;leave .&lt;/P&gt;&lt;P&gt;endcase.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform. "USER_COMMAND&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 18 Jul 2007 11:31:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-subtotal-text-using-classes/m-p/2553157#M581642</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-18T11:31:40Z</dc:date>
    </item>
  </channel>
</rss>

