<?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 code in function module in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-code-in-function-module/m-p/3540949#M851930</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;I have created a report and it gets displayed in ALV. My requirement was to put the whole code in a function module, including the ALV functionality...I have put the same..the problem is that I am not able to see the TOP-OF-PAGE..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am putting a sample code of what exactly I did in the function module..let me know what needs to be done..&lt;/P&gt;&lt;P&gt;FUNCTION ZAZTEST.&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(GV_REPID) TYPE  SY-REPID&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      S_KUNNR STRUCTURE  JITO_KUNNR_RANGE&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform sub_get_customers tables s_kunnr&lt;/P&gt;&lt;P&gt;                          changing gt_kna1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform sub_prepare_fieldcatalog using :&lt;/P&gt;&lt;P&gt;'KUNNR'       'Customer No'       '10'          'GT_KNA1'    space         space changing   gt_fieldcat,&lt;/P&gt;&lt;P&gt;    'NAME1'         'Name'       '35'           'GT_KNA1'    space         space changing   gt_fieldcat,&lt;/P&gt;&lt;P&gt;    'LAND1'         'Country'       '4'           'GT_KNA1'    space         space changing  gt_fieldcat,&lt;/P&gt;&lt;P&gt;    'ORT01'         'City'       '35'           'GT_KNA1'    space         space changing  gt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform sub_build_alv_events changing gt_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform sub_comment_build tables s_kunnr changing gt_list_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM sub_display using gv_repid gt_fieldcat   gt_events    gt_kna1.&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;form sub_get_customers tables p_kunnr structure JITO_KUNNR_RANGE&lt;/P&gt;&lt;P&gt;changing p_it_kna1 type tt_kna1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select kunnr name1 land1 ort01&lt;/P&gt;&lt;P&gt;from kna1&lt;/P&gt;&lt;P&gt;into table p_it_kna1&lt;/P&gt;&lt;P&gt;where kunnr in p_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;  sort p_it_kna1 by kunnr.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;------&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Prepare Field Catalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;------&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;lv_F  fieldname&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;lv_D  column Description&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;lv_L  Output length&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;lv_T  Tablename&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --lv_A  Reference table name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --lv_B  Reference Field Name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;------&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM sub_prepare_fieldcatalog using value(lv_f)&lt;/P&gt;&lt;P&gt;                                    value(lv_d)&lt;/P&gt;&lt;P&gt;                                  value(lv_t)&lt;/P&gt;&lt;P&gt;                                    value(lv_l)&lt;/P&gt;&lt;P&gt;                                    value(lv_a)&lt;/P&gt;&lt;P&gt;                                     value(lv_b)&lt;/P&gt;&lt;P&gt;                                     changing pt_fieldcat TYPE  slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:  gs_fieldcat TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gs_fieldcat-fieldname = lv_f.&lt;/P&gt;&lt;P&gt;  gs_fieldcat-seltext_m = lv_d.&lt;/P&gt;&lt;P&gt;   gs_fieldcat-tabname   = lv_t.&lt;/P&gt;&lt;P&gt;  gs_fieldcat-outputlen = lv_l.&lt;/P&gt;&lt;P&gt;  gs_fieldcat-ref_tabname    = lv_a.&lt;/P&gt;&lt;P&gt;  gs_fieldcat-ref_fieldname = lv_b.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND gs_fieldcat TO Pt_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR gs_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "sub_prepare_fieldcatalog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*------&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  sub_build_alv_events&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM sub_build_alv_events CHANGING PT_EVENTS TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_index TYPE sy-tabix,&lt;/P&gt;&lt;P&gt;  GS_EVENTS 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       = Pt_events[]&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      list_type_wrong = 0&lt;/P&gt;&lt;P&gt;      OTHERS          = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE Pt_events&lt;/P&gt;&lt;P&gt;        INTO gs_events&lt;/P&gt;&lt;P&gt;        WITH KEY name = slis_ev_top_of_page&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    ls_index = sy-tabix.&lt;/P&gt;&lt;P&gt;    gs_events-form    = c_ev_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MODIFY Pt_events FROM gs_events INDEX ls_index.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR gs_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_build_alv_events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*------&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  sub_comment_build&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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: print select options in the output&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM sub_comment_build tables p_kunnr structure JITO_KUNNR_RANGE&lt;/P&gt;&lt;P&gt;changing gt_top_of_page type slis_t_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_line TYPE slis_listheader,&lt;/P&gt;&lt;P&gt;        lv_Low(10) type c,&lt;/P&gt;&lt;P&gt;        lv_high(10) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_low = p_kunnr-low.&lt;/P&gt;&lt;P&gt;  lv_high = p_kunnr-high.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: ls_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_line-typ  = 'H'.&lt;/P&gt;&lt;P&gt;  ls_line-info = 'Customer Details'.&lt;/P&gt;&lt;P&gt;  APPEND ls_line TO gt_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT lv_low IS INITIAL AND NOT lv_high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: ls_line.&lt;/P&gt;&lt;P&gt;    ls_line-typ  = 'S'.&lt;/P&gt;&lt;P&gt;    ls_line-key  = 'Customer No'.   "TEXT DESCRIPTION&lt;/P&gt;&lt;P&gt;    CONCATENATE lv_low 'to' lv_high INTO ls_line-info&lt;/P&gt;&lt;P&gt;    SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    APPEND ls_line TO gt_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; elseif  lv_low is initial and lv_high is initial.&lt;/P&gt;&lt;P&gt;    CLEAR: ls_line.&lt;/P&gt;&lt;P&gt;    ls_line-typ  = 'S'.&lt;/P&gt;&lt;P&gt;    ls_line-key  = 'Customer No'.&lt;/P&gt;&lt;P&gt;    ls_line-info = 'ALL Values'.&lt;/P&gt;&lt;P&gt;    APPEND ls_line TO gt_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSEIF lv_high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: ls_line.&lt;/P&gt;&lt;P&gt;    ls_line-typ  = 'S'.&lt;/P&gt;&lt;P&gt;    ls_line-key  = 'Customer No'.&lt;/P&gt;&lt;P&gt;    ls_line-info = lv_low.&lt;/P&gt;&lt;P&gt;    APPEND ls_line TO gt_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form SUB_EVENT_TOP_OF_PAGE.&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 = gt_list_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "sub_comment_build&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;STRONG&gt;-----&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;**&amp;amp;      Form  sub_display&lt;/P&gt;&lt;P&gt;**&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;STRONG&gt;-----&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    ALV Grid Display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form sub_display using pv_repid type sy-repid&lt;/P&gt;&lt;P&gt;        pt_fieldcat TYPE slis_t_fieldcat_alv&lt;/P&gt;&lt;P&gt;          pt_events type slis_t_event&lt;/P&gt;&lt;P&gt;         pt_kna1 type TT_kna1.&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 = pv_repid&lt;/P&gt;&lt;P&gt;      it_fieldcat        = Pt_fieldcat&lt;/P&gt;&lt;P&gt;      it_events          = Pt_events[]&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab           = Pt_kna1&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;&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;ENDFORM.                                      "sub_display&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 06 Mar 2008 05:57:12 GMT</pubDate>
    <dc:creator>abdulazeez12</dc:creator>
    <dc:date>2008-03-06T05:57:12Z</dc:date>
    <item>
      <title>ALV code in function module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-code-in-function-module/m-p/3540949#M851930</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;I have created a report and it gets displayed in ALV. My requirement was to put the whole code in a function module, including the ALV functionality...I have put the same..the problem is that I am not able to see the TOP-OF-PAGE..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am putting a sample code of what exactly I did in the function module..let me know what needs to be done..&lt;/P&gt;&lt;P&gt;FUNCTION ZAZTEST.&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(GV_REPID) TYPE  SY-REPID&lt;/P&gt;&lt;P&gt;*"  TABLES&lt;/P&gt;&lt;P&gt;*"      S_KUNNR STRUCTURE  JITO_KUNNR_RANGE&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform sub_get_customers tables s_kunnr&lt;/P&gt;&lt;P&gt;                          changing gt_kna1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform sub_prepare_fieldcatalog using :&lt;/P&gt;&lt;P&gt;'KUNNR'       'Customer No'       '10'          'GT_KNA1'    space         space changing   gt_fieldcat,&lt;/P&gt;&lt;P&gt;    'NAME1'         'Name'       '35'           'GT_KNA1'    space         space changing   gt_fieldcat,&lt;/P&gt;&lt;P&gt;    'LAND1'         'Country'       '4'           'GT_KNA1'    space         space changing  gt_fieldcat,&lt;/P&gt;&lt;P&gt;    'ORT01'         'City'       '35'           'GT_KNA1'    space         space changing  gt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform sub_build_alv_events changing gt_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform sub_comment_build tables s_kunnr changing gt_list_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM sub_display using gv_repid gt_fieldcat   gt_events    gt_kna1.&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;form sub_get_customers tables p_kunnr structure JITO_KUNNR_RANGE&lt;/P&gt;&lt;P&gt;changing p_it_kna1 type tt_kna1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select kunnr name1 land1 ort01&lt;/P&gt;&lt;P&gt;from kna1&lt;/P&gt;&lt;P&gt;into table p_it_kna1&lt;/P&gt;&lt;P&gt;where kunnr in p_kunnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;  sort p_it_kna1 by kunnr.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;------&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Prepare Field Catalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;------&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;lv_F  fieldname&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;lv_D  column Description&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;lv_L  Output length&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;lv_T  Tablename&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --lv_A  Reference table name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --lv_B  Reference Field Name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;------&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM sub_prepare_fieldcatalog using value(lv_f)&lt;/P&gt;&lt;P&gt;                                    value(lv_d)&lt;/P&gt;&lt;P&gt;                                  value(lv_t)&lt;/P&gt;&lt;P&gt;                                    value(lv_l)&lt;/P&gt;&lt;P&gt;                                    value(lv_a)&lt;/P&gt;&lt;P&gt;                                     value(lv_b)&lt;/P&gt;&lt;P&gt;                                     changing pt_fieldcat TYPE  slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:  gs_fieldcat TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gs_fieldcat-fieldname = lv_f.&lt;/P&gt;&lt;P&gt;  gs_fieldcat-seltext_m = lv_d.&lt;/P&gt;&lt;P&gt;   gs_fieldcat-tabname   = lv_t.&lt;/P&gt;&lt;P&gt;  gs_fieldcat-outputlen = lv_l.&lt;/P&gt;&lt;P&gt;  gs_fieldcat-ref_tabname    = lv_a.&lt;/P&gt;&lt;P&gt;  gs_fieldcat-ref_fieldname = lv_b.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND gs_fieldcat TO Pt_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR gs_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "sub_prepare_fieldcatalog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*------&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  sub_build_alv_events&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM sub_build_alv_events CHANGING PT_EVENTS TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_index TYPE sy-tabix,&lt;/P&gt;&lt;P&gt;  GS_EVENTS 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       = Pt_events[]&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      list_type_wrong = 0&lt;/P&gt;&lt;P&gt;      OTHERS          = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE Pt_events&lt;/P&gt;&lt;P&gt;        INTO gs_events&lt;/P&gt;&lt;P&gt;        WITH KEY name = slis_ev_top_of_page&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    ls_index = sy-tabix.&lt;/P&gt;&lt;P&gt;    gs_events-form    = c_ev_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MODIFY Pt_events FROM gs_events INDEX ls_index.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR gs_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " sub_build_alv_events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*------&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  sub_comment_build&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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: print select options in the output&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM sub_comment_build tables p_kunnr structure JITO_KUNNR_RANGE&lt;/P&gt;&lt;P&gt;changing gt_top_of_page type slis_t_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_line TYPE slis_listheader,&lt;/P&gt;&lt;P&gt;        lv_Low(10) type c,&lt;/P&gt;&lt;P&gt;        lv_high(10) type c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lv_low = p_kunnr-low.&lt;/P&gt;&lt;P&gt;  lv_high = p_kunnr-high.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: ls_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_line-typ  = 'H'.&lt;/P&gt;&lt;P&gt;  ls_line-info = 'Customer Details'.&lt;/P&gt;&lt;P&gt;  APPEND ls_line TO gt_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT lv_low IS INITIAL AND NOT lv_high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: ls_line.&lt;/P&gt;&lt;P&gt;    ls_line-typ  = 'S'.&lt;/P&gt;&lt;P&gt;    ls_line-key  = 'Customer No'.   "TEXT DESCRIPTION&lt;/P&gt;&lt;P&gt;    CONCATENATE lv_low 'to' lv_high INTO ls_line-info&lt;/P&gt;&lt;P&gt;    SEPARATED BY space.&lt;/P&gt;&lt;P&gt;    APPEND ls_line TO gt_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; elseif  lv_low is initial and lv_high is initial.&lt;/P&gt;&lt;P&gt;    CLEAR: ls_line.&lt;/P&gt;&lt;P&gt;    ls_line-typ  = 'S'.&lt;/P&gt;&lt;P&gt;    ls_line-key  = 'Customer No'.&lt;/P&gt;&lt;P&gt;    ls_line-info = 'ALL Values'.&lt;/P&gt;&lt;P&gt;    APPEND ls_line TO gt_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSEIF lv_high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLEAR: ls_line.&lt;/P&gt;&lt;P&gt;    ls_line-typ  = 'S'.&lt;/P&gt;&lt;P&gt;    ls_line-key  = 'Customer No'.&lt;/P&gt;&lt;P&gt;    ls_line-info = lv_low.&lt;/P&gt;&lt;P&gt;    APPEND ls_line TO gt_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form SUB_EVENT_TOP_OF_PAGE.&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 = gt_list_top_of_page.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "sub_comment_build&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;STRONG&gt;-----&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;**&amp;amp;      Form  sub_display&lt;/P&gt;&lt;P&gt;**&amp;amp;----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;*&lt;STRONG&gt;-----&lt;/STRONG&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    ALV Grid Display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;**----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Form sub_display using pv_repid type sy-repid&lt;/P&gt;&lt;P&gt;        pt_fieldcat TYPE slis_t_fieldcat_alv&lt;/P&gt;&lt;P&gt;          pt_events type slis_t_event&lt;/P&gt;&lt;P&gt;         pt_kna1 type TT_kna1.&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 = pv_repid&lt;/P&gt;&lt;P&gt;      it_fieldcat        = Pt_fieldcat&lt;/P&gt;&lt;P&gt;      it_events          = Pt_events[]&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab           = Pt_kna1&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;&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;ENDFORM.                                      "sub_display&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Mar 2008 05:57:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-code-in-function-module/m-p/3540949#M851930</guid>
      <dc:creator>abdulazeez12</dc:creator>
      <dc:date>2008-03-06T05:57:12Z</dc:date>
    </item>
    <item>
      <title>Re: ALV code in function module</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-code-in-function-module/m-p/3540950#M851931</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello shakir,&lt;/P&gt;&lt;P&gt; You can refer to the code below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
TYPE-POOLS : slis.

* internal table declaration
Data:i_fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv,
      top_header TYPE slis_t_listheader.  "Table to store The Values of Top-Of-Page Parameter for ALV   

* work area declaration

Data: wa_top_header TYPE slis_listheader,
        wa_fieldcat   TYPE slis_fieldcat_alv.

* CONSTANTS
CONSTANTS: c_h    TYPE slis_listheader VALUE 'H',
                     c_s    TYPE slis_listheader VALUE 'S'.



********* calling a subroutine to display the fields ********************

    PERFORM zalv_display.


********* function module to display the report in Grid format ***********

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
      EXPORTING
        i_callback_program     = sy-repid
        i_callback_top_of_page = 'TOP_OF_PAGE'
        it_fieldcat            = i_fieldcat
      TABLES
        t_outtab               = i_final
      EXCEPTIONS
        program_error          = 1
        OTHERS                 = 2.
    IF sy-subrc &amp;lt;&amp;gt; 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  zalv_display
*&amp;amp;---------------------------------------------------------------------*
*       Subroutine To display the fields in grid format
*----------------------------------------------------------------------*

FORM zalv_display .

  PERFORM zalv_grid_disp USING '1'  'CHARG'      'I_FINAL'    'Shotton coil id'.
  PERFORM zalv_grid_disp USING '2'  'MATNR'      'I_FINAL'    'Material number'.
  PERFORM zalv_grid_disp USING '3'  'BESTQ'      'I_FINAL'    'Stock Status'.
  PERFORM zalv_grid_disp USING '4'  'AUFNR'      'I_FINAL'    'PROCESS ORDER NUMBER'.
  PERFORM zalv_grid_disp USING '5'  'KDAUF'      'I_FINAL'    'SALES ORDER NUM'.
  PERFORM zalv_grid_disp USING '6'  'GESME'      'I_FINAL'    'Coil Weight'.
  PERFORM zalv_grid_disp USING '7'  'WDATU'      'I_FINAL'    'Date of coil receipt'.
  PERFORM zalv_grid_disp USING '8'  'LGTYP'      'I_FINAL'    'Storage Type'.
  PERFORM zalv_grid_disp USING '9'  'LGPLA'      'I_FINAL'    'Storage Bin'.
  PERFORM zalv_grid_disp USING '10' 'COIL_STAT'  'I_FINAL'    'COIL STATUS'.
  PERFORM zalv_grid_disp USING '11' 'MAKTX'      'I_FINAL'    'MATERIAL DESP'.

ENDFORM.                    " zalv_display

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  zalv_grid_disp
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      --&amp;gt;P_0691   column position
*      --&amp;gt;P_0692   field name
*      --&amp;gt;P_0693   table name
*      --&amp;gt;P_0694   field text
*----------------------------------------------------------------------*
FORM zalv_grid_disp  USING    value(col_pos)     TYPE n
                              value(field_name)  TYPE c
                              value(tab_name)    TYPE c
                              value(sel_text)    TYPE c.

  wa_fieldcat-col_pos = col_pos.
  wa_fieldcat-fieldname = field_name.
  wa_fieldcat-tabname = tab_name.
  wa_fieldcat-seltext_l = sel_text.

  APPEND wa_fieldcat TO i_fieldcat.
  CLEAR wa_fieldcat.




ENDFORM.                    " zalv_grid_disp

*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  top_of_page
*&amp;amp;---------------------------------------------------------------------*
*       module to display Header Information
*----------------------------------------------------------------------*

FORM top_of_page.

************************     HEADER     ********************************


  wa_top_header-typ = c_h.

  CONCATENATE 'CONCESSION'
              'COIL'
              'REPORT'
              INTO wa_top_header-info
              SEPARATED BY space.
  APPEND wa_top_header TO top_header.

  CLEAR wa_top_header.

  wa_top_header-typ  = c_s.
  wa_top_header-key  = 'Date:'.
  WRITE sy-datum TO wa_top_header-info.
  APPEND wa_top_header TO top_header.

  CLEAR wa_top_header.

  wa_top_header-typ  = c_s.
  wa_top_header-key  = 'User Name:'.
  WRITE sy-uname TO wa_top_header-info.
  APPEND wa_top_header TO top_header.


  CLEAR wa_top_header.

*  wa_top_header-typ  = c_s.
*  wa_top_header-key  = 'No.Of Records :'.
*  WRITE sy-dbcnt TO wa_top_header-info.
*  APPEND wa_top_header TO top_header.
*  CLEAR wa_top_header.

  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = top_header.

ENDFORM.                    "top_of_page
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 06 Mar 2008 07:06:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-code-in-function-module/m-p/3540950#M851931</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-06T07:06:28Z</dc:date>
    </item>
  </channel>
</rss>

