<?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 Problem with Generic Function Module. in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-generic-function-module/m-p/1930977#M385635</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to develop a generic function module which can be used in different programs for displaying ALV.&lt;/P&gt;&lt;P&gt;I am able to display the ALV but unable to get the header for it.&lt;/P&gt;&lt;P&gt;Please suggest.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the code -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function zhrca_show_itab_in_alv.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Local Interface:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     REFERENCE(V_REPID) TYPE  SY-REPID DEFAULT SY-REPID&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      ITAB&lt;/P&gt;&lt;P&gt;*"      ITAB_NAMES&lt;/P&gt;&lt;P&gt;*"      I_ALV OPTIONAL&lt;/P&gt;&lt;P&gt;*"  EXCEPTIONS&lt;/P&gt;&lt;P&gt;*"      DATA_TABLE_EMPTY&lt;/P&gt;&lt;P&gt;*"      HEADER_TABLE_EMPTY&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_repid = v_repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  describe table itab lines l_lines.&lt;/P&gt;&lt;P&gt;  if l_lines eq 0.&lt;/P&gt;&lt;P&gt;    raise data_table_empty.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  describe table itab_names lines l_lines.&lt;/P&gt;&lt;P&gt;  if l_lines eq 0.&lt;/P&gt;&lt;P&gt;    raise header_table_empty.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_layout changing l_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM easy_alv_build_fcat TABLES   itab&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             itab_names&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             CHANGING fcat error.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************************&lt;/P&gt;&lt;P&gt;  field-symbols: &amp;lt;f_line&amp;gt; type any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear fcat.&lt;/P&gt;&lt;P&gt;  refresh fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  error = 0.&lt;/P&gt;&lt;P&gt;  l_index = 0.&lt;/P&gt;&lt;P&gt;  clear   fcat.&lt;/P&gt;&lt;P&gt;  refresh fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read the structure of the incoming Internal table and then&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create the field catalog ,assigning the user defined texts&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;sent in the table P_ITAB_NAMES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  assign local copy of initial line of itab to &amp;lt;f_line&amp;gt;.&lt;/P&gt;&lt;P&gt;  describe field &amp;lt;f_line&amp;gt; into td.&lt;/P&gt;&lt;P&gt;  read table td-types index 1 into typed.&lt;/P&gt;&lt;P&gt;  if typed-from = 0 and typed-to = 0.&lt;/P&gt;&lt;P&gt;    error = 10. exit.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table itab_names index l_index.&lt;/P&gt;&lt;P&gt;  itab_names1[] = itab_names[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at td-types into wa_types from typed-from to typed-to.&lt;/P&gt;&lt;P&gt;    l_index = l_index + 1.&lt;/P&gt;&lt;P&gt;    read table td-names into wa_name index wa_types-idx_name.&lt;/P&gt;&lt;P&gt;    wa_fcat-fieldname  = wa_name-name.&lt;/P&gt;&lt;P&gt;    if not wa_name-continue is initial.&lt;/P&gt;&lt;P&gt;      idx = wa_types-idx_name + 1.&lt;/P&gt;&lt;P&gt;      read table td-names into wa_name index idx.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For local struct no more than 30 chars are allowed so there is no need&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to loop at td-name to get more than 2 pieces of the name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      concatenate wa_fcat-fieldname wa_name-name&lt;/P&gt;&lt;P&gt;                  into wa_fcat-fieldname.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE itab_names INDEX l_index.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    read table itab_names1 index l_index.&lt;/P&gt;&lt;P&gt;    wa_fcat-reptext_ddic    =  itab_names1-title.&lt;/P&gt;&lt;P&gt;    wa_fcat-inttype         =  wa_types-type.&lt;/P&gt;&lt;P&gt;    wa_fcat-outputlen       =  wa_types-output_length.&lt;/P&gt;&lt;P&gt;    textlen = strlen( wa_fcat-fieldname ).&lt;/P&gt;&lt;P&gt;    if wa_fcat-outputlen &amp;lt; textlen.&lt;/P&gt;&lt;P&gt;      wa_fcat-outputlen = textlen.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    wa_fcat-decimals_out  =  wa_types-decimals.&lt;/P&gt;&lt;P&gt;    append wa_fcat to fcat.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_list_type     = 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;     et_events       = i_eventcat&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&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; CLEAR l_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; READ TABLE i_eventcat WITH KEY name = slis_ev_top_of_page INTO l_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MOVE 'ZF_TOP_OF_PAGE' TO l_event-form.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND l_event TO i_eventcat.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*perform event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_callback_program        = l_repid&lt;/P&gt;&lt;P&gt;      i_callback_top_of_page    = 'ALV_TOP_OF_PAGE'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_callback_pf_status_set = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_callback_user_command  = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      is_layout                 = l_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat               = fcat&lt;/P&gt;&lt;P&gt;      it_events                 = i_eventcat&lt;/P&gt;&lt;UL&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                   = 'A'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     is_variant               = l_variant&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;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      program_error             = 1&lt;/P&gt;&lt;P&gt;      others                    = 2.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endfunction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&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;***INCLUDE LZHRCA_UEMAILSF02 .&lt;/P&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;&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;P&gt;form fill_layout changing c_f_layout type slis_layout_alv.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call module to set values for optimize width etc&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'FM_ALV_LAYOUT'&lt;/P&gt;&lt;P&gt;    changing&lt;/P&gt;&lt;P&gt;      c_f_layout = c_f_layout.&lt;/P&gt;&lt;P&gt;  c_f_layout-key_hotspot = ' '.&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  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;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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 event .&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_list_type     = 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;     et_events       = i_eventcat&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&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; CLEAR l_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; READ TABLE i_eventcat WITH KEY name = slis_ev_top_of_page INTO l_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MOVE 'ZF_TOP_OF_PAGE' TO l_event-form.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND l_event TO i_eventcat.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*ENDFORM.                    " 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  alv_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 alv_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_listheader type slis_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear l_listheader.&lt;/P&gt;&lt;P&gt;  l_listheader-typ = 'H'.&lt;/P&gt;&lt;P&gt;  l_listheader-key = 'Program'.&lt;/P&gt;&lt;P&gt;  l_listheader-info = l_repid.&lt;/P&gt;&lt;P&gt;  append l_listheader to i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear l_listheader.&lt;/P&gt;&lt;P&gt;  l_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;  l_listheader-key = 'Run Date'.&lt;/P&gt;&lt;P&gt;  l_listheader-info = sy-datum.&lt;/P&gt;&lt;P&gt;  append l_listheader to i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear l_listheader.&lt;/P&gt;&lt;P&gt;  l_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;  l_listheader-key = 'Run BY'.&lt;/P&gt;&lt;P&gt;  l_listheader-info = sy-uname.&lt;/P&gt;&lt;P&gt;  append l_listheader to i_listheader.&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 = i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " ALV_TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Points will be rewarded.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Amit Khare&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anym Suggestion from anyone.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Amit Khare&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 06 Feb 2007 16:24:39 GMT</pubDate>
    <dc:creator>amit_khare</dc:creator>
    <dc:date>2007-02-06T16:24:39Z</dc:date>
    <item>
      <title>Problem with Generic Function Module.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-generic-function-module/m-p/1930977#M385635</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to develop a generic function module which can be used in different programs for displaying ALV.&lt;/P&gt;&lt;P&gt;I am able to display the ALV but unable to get the header for it.&lt;/P&gt;&lt;P&gt;Please suggest.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the code -&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function zhrca_show_itab_in_alv.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Local Interface:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     REFERENCE(V_REPID) TYPE  SY-REPID DEFAULT SY-REPID&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      ITAB&lt;/P&gt;&lt;P&gt;*"      ITAB_NAMES&lt;/P&gt;&lt;P&gt;*"      I_ALV OPTIONAL&lt;/P&gt;&lt;P&gt;*"  EXCEPTIONS&lt;/P&gt;&lt;P&gt;*"      DATA_TABLE_EMPTY&lt;/P&gt;&lt;P&gt;*"      HEADER_TABLE_EMPTY&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_repid = v_repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  describe table itab lines l_lines.&lt;/P&gt;&lt;P&gt;  if l_lines eq 0.&lt;/P&gt;&lt;P&gt;    raise data_table_empty.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  describe table itab_names lines l_lines.&lt;/P&gt;&lt;P&gt;  if l_lines eq 0.&lt;/P&gt;&lt;P&gt;    raise header_table_empty.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform fill_layout changing l_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM easy_alv_build_fcat TABLES   itab&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             itab_names&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             CHANGING fcat error.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************************&lt;/P&gt;&lt;P&gt;  field-symbols: &amp;lt;f_line&amp;gt; type any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear fcat.&lt;/P&gt;&lt;P&gt;  refresh fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  error = 0.&lt;/P&gt;&lt;P&gt;  l_index = 0.&lt;/P&gt;&lt;P&gt;  clear   fcat.&lt;/P&gt;&lt;P&gt;  refresh fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read the structure of the incoming Internal table and then&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create the field catalog ,assigning the user defined texts&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;sent in the table P_ITAB_NAMES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  assign local copy of initial line of itab to &amp;lt;f_line&amp;gt;.&lt;/P&gt;&lt;P&gt;  describe field &amp;lt;f_line&amp;gt; into td.&lt;/P&gt;&lt;P&gt;  read table td-types index 1 into typed.&lt;/P&gt;&lt;P&gt;  if typed-from = 0 and typed-to = 0.&lt;/P&gt;&lt;P&gt;    error = 10. exit.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  read table itab_names index l_index.&lt;/P&gt;&lt;P&gt;  itab_names1[] = itab_names[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at td-types into wa_types from typed-from to typed-to.&lt;/P&gt;&lt;P&gt;    l_index = l_index + 1.&lt;/P&gt;&lt;P&gt;    read table td-names into wa_name index wa_types-idx_name.&lt;/P&gt;&lt;P&gt;    wa_fcat-fieldname  = wa_name-name.&lt;/P&gt;&lt;P&gt;    if not wa_name-continue is initial.&lt;/P&gt;&lt;P&gt;      idx = wa_types-idx_name + 1.&lt;/P&gt;&lt;P&gt;      read table td-names into wa_name index idx.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For local struct no more than 30 chars are allowed so there is no need&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to loop at td-name to get more than 2 pieces of the name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      concatenate wa_fcat-fieldname wa_name-name&lt;/P&gt;&lt;P&gt;                  into wa_fcat-fieldname.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE itab_names INDEX l_index.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    read table itab_names1 index l_index.&lt;/P&gt;&lt;P&gt;    wa_fcat-reptext_ddic    =  itab_names1-title.&lt;/P&gt;&lt;P&gt;    wa_fcat-inttype         =  wa_types-type.&lt;/P&gt;&lt;P&gt;    wa_fcat-outputlen       =  wa_types-output_length.&lt;/P&gt;&lt;P&gt;    textlen = strlen( wa_fcat-fieldname ).&lt;/P&gt;&lt;P&gt;    if wa_fcat-outputlen &amp;lt; textlen.&lt;/P&gt;&lt;P&gt;      wa_fcat-outputlen = textlen.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    wa_fcat-decimals_out  =  wa_types-decimals.&lt;/P&gt;&lt;P&gt;    append wa_fcat to fcat.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_list_type     = 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;     et_events       = i_eventcat&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&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; CLEAR l_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; READ TABLE i_eventcat WITH KEY name = slis_ev_top_of_page INTO l_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MOVE 'ZF_TOP_OF_PAGE' TO l_event-form.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND l_event TO i_eventcat.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*perform event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;    exporting&lt;/P&gt;&lt;P&gt;      i_callback_program        = l_repid&lt;/P&gt;&lt;P&gt;      i_callback_top_of_page    = 'ALV_TOP_OF_PAGE'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_callback_pf_status_set = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_callback_user_command  = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      is_layout                 = l_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat               = fcat&lt;/P&gt;&lt;P&gt;      it_events                 = i_eventcat&lt;/P&gt;&lt;UL&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                   = 'A'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     is_variant               = l_variant&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;P&gt;    exceptions&lt;/P&gt;&lt;P&gt;      program_error             = 1&lt;/P&gt;&lt;P&gt;      others                    = 2.&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endfunction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&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;***INCLUDE LZHRCA_UEMAILSF02 .&lt;/P&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;&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;P&gt;form fill_layout changing c_f_layout type slis_layout_alv.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call module to set values for optimize width etc&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'FM_ALV_LAYOUT'&lt;/P&gt;&lt;P&gt;    changing&lt;/P&gt;&lt;P&gt;      c_f_layout = c_f_layout.&lt;/P&gt;&lt;P&gt;  c_f_layout-key_hotspot = ' '.&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  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;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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 event .&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_list_type     = 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;     et_events       = i_eventcat&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&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; CLEAR l_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; READ TABLE i_eventcat WITH KEY name = slis_ev_top_of_page INTO l_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MOVE 'ZF_TOP_OF_PAGE' TO l_event-form.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND l_event TO i_eventcat.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*ENDFORM.                    " 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  alv_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 alv_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_listheader type slis_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  refresh i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear l_listheader.&lt;/P&gt;&lt;P&gt;  l_listheader-typ = 'H'.&lt;/P&gt;&lt;P&gt;  l_listheader-key = 'Program'.&lt;/P&gt;&lt;P&gt;  l_listheader-info = l_repid.&lt;/P&gt;&lt;P&gt;  append l_listheader to i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear l_listheader.&lt;/P&gt;&lt;P&gt;  l_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;  l_listheader-key = 'Run Date'.&lt;/P&gt;&lt;P&gt;  l_listheader-info = sy-datum.&lt;/P&gt;&lt;P&gt;  append l_listheader to i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear l_listheader.&lt;/P&gt;&lt;P&gt;  l_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;  l_listheader-key = 'Run BY'.&lt;/P&gt;&lt;P&gt;  l_listheader-info = sy-uname.&lt;/P&gt;&lt;P&gt;  append l_listheader to i_listheader.&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 = i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " ALV_TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Points will be rewarded.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Amit Khare&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Anym Suggestion from anyone.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Amit Khare&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Feb 2007 16:24:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-generic-function-module/m-p/1930977#M385635</guid>
      <dc:creator>amit_khare</dc:creator>
      <dc:date>2007-02-06T16:24:39Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with Generic Function Module.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-generic-function-module/m-p/1930978#M385636</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Amit,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try the following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;function zhrca_show_itab_in_alv.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Local Interface:&lt;/P&gt;&lt;P&gt;*" IMPORTING&lt;/P&gt;&lt;P&gt;*" REFERENCE(V_REPID) TYPE SY-REPID DEFAULT SY-REPID&lt;/P&gt;&lt;P&gt;*" TABLES&lt;/P&gt;&lt;P&gt;*" ITAB&lt;/P&gt;&lt;P&gt;*" ITAB_NAMES&lt;/P&gt;&lt;P&gt;*" I_ALV OPTIONAL&lt;/P&gt;&lt;P&gt;*" EXCEPTIONS&lt;/P&gt;&lt;P&gt;*" DATA_TABLE_EMPTY&lt;/P&gt;&lt;P&gt;*" HEADER_TABLE_EMPTY&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;l_repid = v_repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;describe table itab lines l_lines.&lt;/P&gt;&lt;P&gt;if l_lines eq 0.&lt;/P&gt;&lt;P&gt;raise data_table_empty.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;describe table itab_names lines l_lines.&lt;/P&gt;&lt;P&gt;if l_lines eq 0.&lt;/P&gt;&lt;P&gt;raise header_table_empty.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform fill_layout changing l_layout.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM easy_alv_build_fcat TABLES itab&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;itab_names&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CHANGING fcat error.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************************&lt;/P&gt;&lt;P&gt;field-symbols: &amp;lt;f_line&amp;gt; type any.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear fcat.&lt;/P&gt;&lt;P&gt;refresh fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;error = 0.&lt;/P&gt;&lt;P&gt;l_index = 0.&lt;/P&gt;&lt;P&gt;clear fcat.&lt;/P&gt;&lt;P&gt;refresh fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read the structure of the incoming Internal table and then&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create the field catalog ,assigning the user defined texts&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;sent in the table P_ITAB_NAMES&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;assign local copy of initial line of itab to &amp;lt;f_line&amp;gt;.&lt;/P&gt;&lt;P&gt;describe field &amp;lt;f_line&amp;gt; into td.&lt;/P&gt;&lt;P&gt;read table td-types index 1 into typed.&lt;/P&gt;&lt;P&gt;if typed-from = 0 and typed-to = 0.&lt;/P&gt;&lt;P&gt;error = 10. exit.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;read table itab_names index l_index.&lt;/P&gt;&lt;P&gt;itab_names1[] = itab_names[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at td-types into wa_types from typed-from to typed-to.&lt;/P&gt;&lt;P&gt;l_index = l_index + 1.&lt;/P&gt;&lt;P&gt;read table td-names into wa_name index wa_types-idx_name.&lt;/P&gt;&lt;P&gt;wa_fcat-fieldname = wa_name-name.&lt;/P&gt;&lt;P&gt;if not wa_name-continue is initial.&lt;/P&gt;&lt;P&gt;idx = wa_types-idx_name + 1.&lt;/P&gt;&lt;P&gt;read table td-names into wa_name index idx.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For local struct no more than 30 chars are allowed so there is no need&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to loop at td-name to get more than 2 pieces of the name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;concatenate wa_fcat-fieldname wa_name-name&lt;/P&gt;&lt;P&gt;into wa_fcat-fieldname.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;READ TABLE itab_names INDEX l_index.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;read table itab_names1 index l_index.&lt;/P&gt;&lt;P&gt;wa_fcat-reptext_ddic = itab_names1-title.&lt;/P&gt;&lt;P&gt;wa_fcat-inttype = wa_types-type.&lt;/P&gt;&lt;P&gt;wa_fcat-outputlen = wa_types-output_length.&lt;/P&gt;&lt;P&gt;textlen = strlen( wa_fcat-fieldname ).&lt;/P&gt;&lt;P&gt;if wa_fcat-outputlen &amp;lt; textlen.&lt;/P&gt;&lt;P&gt;wa_fcat-outputlen = textlen.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;wa_fcat-decimals_out = wa_types-decimals.&lt;/P&gt;&lt;P&gt;append wa_fcat to fcat.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;i_list_type = 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;et_events = i_eventcat&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&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;CLEAR l_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;READ TABLE i_eventcat WITH KEY name = slis_ev_top_of_page INTO l_event.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MOVE 'ZF_TOP_OF_PAGE' TO l_event-form.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;APPEND l_event TO i_eventcat.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;perform event.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;i_callback_program = l_repid&lt;/P&gt;&lt;P&gt;i_callback_top_of_page = 'ALV_TOP_OF_PAGE'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;i_callback_pf_status_set = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;i_callback_user_command = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;is_layout = l_layout&lt;/P&gt;&lt;P&gt;it_fieldcat = fcat&lt;/P&gt;&lt;P&gt;it_events = i_eventcat&lt;/P&gt;&lt;UL&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 = 'A'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;is_variant = l_variant&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;P&gt;exceptions&lt;/P&gt;&lt;P&gt;program_error = 1&lt;/P&gt;&lt;P&gt;others = 2.&lt;/P&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;message id sy-msgid type sy-msgty number sy-msgno&lt;/P&gt;&lt;P&gt;with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endfunction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&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;***INCLUDE LZHRCA_UEMAILSF02 .&lt;/P&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;&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;P&gt;form fill_layout changing c_f_layout type slis_layout_alv.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call module to set values for optimize width etc&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;call function 'FM_ALV_LAYOUT'&lt;/P&gt;&lt;P&gt;changing&lt;/P&gt;&lt;P&gt;c_f_layout = c_f_layout.&lt;/P&gt;&lt;P&gt;c_f_layout-key_hotspot = ' '.&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 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;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;--&amp;gt; p1 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;&amp;lt;-- p2 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&amp;lt;b&amp;gt;FORM 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 = i_eventcat&lt;/P&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt; list_type_wrong = 1&lt;/P&gt;&lt;P&gt; OTHERS = 2.&lt;/P&gt;&lt;P&gt; IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt; MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt; WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; CLEAR l_event.&lt;/P&gt;&lt;P&gt; READ TABLE i_eventcat WITH KEY name = slis_ev_top_of_page INTO l_event.&lt;/P&gt;&lt;P&gt; IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt; MOVE 'ZF_TOP_OF_PAGE' TO l_event-form.&lt;/P&gt;&lt;P&gt; APPEND l_event TO i_eventcat.&lt;/P&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " event&amp;lt;/b&amp;gt;&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 alv_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 alv_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: l_listheader type slis_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;refresh i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear l_listheader.&lt;/P&gt;&lt;P&gt;l_listheader-typ = 'H'.&lt;/P&gt;&lt;P&gt;l_listheader-key = 'Program'.&lt;/P&gt;&lt;P&gt;l_listheader-info = l_repid.&lt;/P&gt;&lt;P&gt;append l_listheader to i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear l_listheader.&lt;/P&gt;&lt;P&gt;l_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;l_listheader-key = 'Run Date'.&lt;/P&gt;&lt;P&gt;l_listheader-info = sy-datum.&lt;/P&gt;&lt;P&gt;append l_listheader to i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;clear l_listheader.&lt;/P&gt;&lt;P&gt;l_listheader-typ = 'S'.&lt;/P&gt;&lt;P&gt;l_listheader-key = 'Run BY'.&lt;/P&gt;&lt;P&gt;l_listheader-info = sy-uname.&lt;/P&gt;&lt;P&gt;append l_listheader to i_listheader.&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 = i_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform. " ALV_TOP_OF_PAGE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope it helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Gilberto Li&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Feb 2007 21:28:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-generic-function-module/m-p/1930978#M385636</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-06T21:28:04Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with Generic Function Module.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-generic-function-module/m-p/1930979#M385637</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for reply,&lt;/P&gt;&lt;P&gt;but you may find the same suggestion existing in the code and commented out, as it is not working too.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Amit&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Feb 2007 23:23:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-generic-function-module/m-p/1930979#M385637</guid>
      <dc:creator>amit_khare</dc:creator>
      <dc:date>2007-02-06T23:23:01Z</dc:date>
    </item>
    <item>
      <title>Re: Problem with Generic Function Module.</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-generic-function-module/m-p/1930980#M385638</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do this change at starting of your FM..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;l_repid = &amp;lt;b&amp;gt;sy-repid&amp;lt;/b&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Since you are assigning the program name that calls this function module...But the subroutine  'ALV_TOP_OF_PAGE' is available inside your function module..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So this should work..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Naren&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Feb 2007 23:28:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/problem-with-generic-function-module/m-p/1930980#M385638</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-06T23:28:36Z</dc:date>
    </item>
  </channel>
</rss>

