<?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 in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842717#M923934</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;what are the basic steps to  follow for generating &lt;STRONG&gt;ALV REPORT&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 19 May 2008 04:45:45 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-05-19T04:45:45Z</dc:date>
    <item>
      <title>ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842717#M923934</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;what are the basic steps to  follow for generating &lt;STRONG&gt;ALV REPORT&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 May 2008 04:45:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842717#M923934</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-19T04:45:45Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842718#M923935</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;&lt;/P&gt;&lt;P&gt;ALV is Application List viewer. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sap provides a set of ALV (ABAP LIST VIEWER) function modules which can be put into use to embellish the output of a report. This set of ALV functions is used to enhance the readability and functionality of any report output. Cases arise in sap when the output of a report contains columns extending more than 255 characters in length.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In such cases, this set of ALV functions can help choose selected columns and arrange the different columns from a report output and also save different variants for report display. This is a very efficient tool for dynamically sorting and arranging the columns from a report output.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The report output can contain up to 90 columns in the display with the wide array of display options. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The commonly used ALV functions used for this purpose are; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. REUSE_ALV_VARIANT_DEFAULT_GET &lt;/P&gt;&lt;P&gt;2. REUSE_ALV_VARIANT_F4 &lt;/P&gt;&lt;P&gt;3. REUSE_ALV_VARIANT_EXISTENCE &lt;/P&gt;&lt;P&gt;4. REUSE_ALV_EVENTS_GET &lt;/P&gt;&lt;P&gt;5. REUSE_ALV_COMMENTARY_WRITE &lt;/P&gt;&lt;P&gt;6. REUSE_ALV_FIELDCATALOG_MERGE &lt;/P&gt;&lt;P&gt;7. REUSE_ALV_LIST_DISPLAY &lt;/P&gt;&lt;P&gt;8. REUSE_ALV_GRID_DISPLAY &lt;/P&gt;&lt;P&gt;9. REUSE_ALV_POPUP_TO_SELECT &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Purpose of the above Functions are differ not all the functions are required in all the ALV Report.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But either no.7 or No.8 is there in the Program.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How you call this function in your report? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After completion of all the data fetching from the database and append this data into an Internal Table. say I_ITAB. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then use follwing function module. &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       = 'Prog.name' &lt;/P&gt;&lt;P&gt;            I_STRUCTURE_NAME         = 'I_ITAB' &lt;/P&gt;&lt;P&gt;            I_DEFAULT                = 'X' &lt;/P&gt;&lt;P&gt;            I_SAVE                   = 'A' &lt;/P&gt;&lt;P&gt;       TABLES &lt;/P&gt;&lt;P&gt;            T_OUTTAB                 = I_ITAB. &lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0. &lt;/P&gt;&lt;P&gt;    WRITE: 'SY-SUBRC: ', SY-SUBRC . &lt;/P&gt;&lt;P&gt;  ENDIF. &lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_FINAL_DATA &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;How to Upload Logo for ALV? &lt;/P&gt;&lt;P&gt;Upload Logo for REUSE_ALV_COMMENTARY_WRITE &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Get help for your ABAP problems &lt;/P&gt;&lt;P&gt;Do you have a ABAP Question? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ABAP Books &lt;/P&gt;&lt;P&gt;ABAP Certification, BAPI, Java, Web Programming, Smart Forms, Sapscripts Reference Books &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ABAP Tips &lt;/P&gt;&lt;P&gt;ABAP Forum for Discussion and Samples Program Codes for Abapers &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards, &lt;/P&gt;&lt;P&gt;SAP Basis, ABAP Programming and Other IMG Stuff &lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com" target="test_blank"&gt;http://www.sap-img.com&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;All the site contents are Copyright © &lt;A href="https://community.sap.com/www.sap-img.com" target="test_blank"&gt;www.sap-img.com&lt;/A&gt; and the content authors. All rights reserved. &lt;/P&gt;&lt;P&gt;All product names are trademarks of their respective companies.  The site &lt;A href="https://community.sap.com/www.sap-img.com" target="test_blank"&gt;www.sap-img.com&lt;/A&gt; is in no way affiliated with SAP AG.  &lt;/P&gt;&lt;P&gt;Every effort is made to ensure the content integrity.  Information used on this site is at your own risk.  &lt;/P&gt;&lt;P&gt; The content on this site may not be reproduced or redistributed without the express written permission of  &lt;/P&gt;&lt;P&gt;&lt;A href="https://community.sap.com/www.sap-img.com" target="test_blank"&gt;www.sap-img.com&lt;/A&gt; or the content authors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**ALV EXAMPLE&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; Report  ZJE_ALV_EXAMPLE&lt;/P&gt;&lt;P&gt;*&amp;amp;&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;&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zje_alv_example.&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis.&lt;/P&gt;&lt;P&gt;*type declaration for values from ekko&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF i_ekko,&lt;/P&gt;&lt;P&gt;          ebeln LIKE ekko-ebeln,&lt;/P&gt;&lt;P&gt;          aedat LIKE ekko-aedat,&lt;/P&gt;&lt;P&gt;          bukrs LIKE ekko-bukrs,&lt;/P&gt;&lt;P&gt;          bsart LIKE ekko-bsart,&lt;/P&gt;&lt;P&gt;          lifnr LIKE ekko-lifnr,&lt;/P&gt;&lt;P&gt;       END OF i_ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*type declaration for values from ekpo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF i_ekpo,&lt;/P&gt;&lt;P&gt;          ebeln LIKE ekpo-ebeln,&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;          meins LIKE ekpo-meins,&lt;/P&gt;&lt;P&gt;          netpr LIKE ekpo-netpr,&lt;/P&gt;&lt;P&gt;       END OF i_ekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_ekko TYPE STANDARD TABLE OF i_ekko INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;      wa_ekko TYPE i_ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_ekpo TYPE STANDARD TABLE OF i_ekpo INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;      wa_ekpo TYPE i_ekpo .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*variable for Report ID&lt;/P&gt;&lt;P&gt;DATA: v_repid LIKE sy-repid .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*declaration for fieldcatalog&lt;/P&gt;&lt;P&gt;DATA: i_fieldcat TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      wa_fieldcat TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_listheader TYPE slis_t_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;declaration for events table where user comand or set PF status will&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;be defined&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: v_events TYPE slis_t_event,&lt;/P&gt;&lt;P&gt;      wa_event TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;declartion for layout&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: alv_layout TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;declaration for variant(type of display we want)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: i_variant TYPE disvariant,&lt;/P&gt;&lt;P&gt;      i_variant1 TYPE disvariant,&lt;/P&gt;&lt;P&gt;      i_save(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*PARAMETERS : p_var TYPE disvariant-variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Title displayed when the alv list is displayed&lt;/P&gt;&lt;P&gt;DATA: i_title_ekko TYPE lvc_title VALUE 'FIRST LIST DISPLAYED'.&lt;/P&gt;&lt;P&gt;DATA: i_title_ekpo TYPE lvc_title VALUE 'SECONDRY LIST DISPLAYED'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;  v_repid = sy-repid.&lt;/P&gt;&lt;P&gt;  PERFORM build_fieldcatlog.&lt;/P&gt;&lt;P&gt;  PERFORM event_call.&lt;/P&gt;&lt;P&gt;  PERFORM populate_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM data_retrieval.&lt;/P&gt;&lt;P&gt;  PERFORM build_listheader USING it_listheader.&lt;/P&gt;&lt;P&gt;  PERFORM display_alv_report.&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 BUILD_FIELDCATLOG&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;Fieldcatalog has all the field details from ekko&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM build_fieldcatlog.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'IT_EKKO'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-seltext_m = 'PO NO.'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO i_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'IT_EKKO'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'AEDAT'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-seltext_m = 'DATE.'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO i_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'IT_EKKO'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'BUKRS'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-seltext_m = 'COMPANY CODE'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO i_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'IT_EKKO'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'BUKRS'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-seltext_m = 'DOCMENT TYPE'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO i_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'IT_EKKO'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'LIFNR'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-no_out = 'X'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-seltext_m = 'VENDOR CODE'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO i_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "BUILD_FIELDCATLOG&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 EVENT_CALL&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;we get all events - TOP OF PAGE or USER COMMAND in table v_events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM event_call.&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 = v_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;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;ENDFORM. "EVENT_CALL&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 POPULATE_EVENT&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;Events populated for TOP OF PAGE &amp;amp; USER COMAND&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM populate_event.&lt;/P&gt;&lt;P&gt;  READ TABLE v_events INTO wa_event WITH KEY name = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    wa_event-form = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;    MODIFY v_events FROM wa_event TRANSPORTING form WHERE name =&lt;/P&gt;&lt;P&gt;    wa_event-form.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE v_events INTO wa_event WITH KEY name = 'USER_COMMAND'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    wa_event-form = 'USER_COMMAND'.&lt;/P&gt;&lt;P&gt;    MODIFY v_events FROM wa_event TRANSPORTING form WHERE name =&lt;/P&gt;&lt;P&gt;    wa_event-name.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. "POPULATE_EVENT&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 data_retrieval&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;retreiving values from the database table ekko&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM data_retrieval.&lt;/P&gt;&lt;P&gt;  SELECT ebeln aedat bukrs bsart lifnr&lt;/P&gt;&lt;P&gt;         FROM ekko&lt;/P&gt;&lt;P&gt;         INTO TABLE it_ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "data_retrieval&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 bUild_listheader&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&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;I_LISTHEADEtext&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM build_listheader USING i_listheader TYPE slis_t_listheader.&lt;/P&gt;&lt;P&gt;  DATA hline TYPE slis_listheader.&lt;/P&gt;&lt;P&gt;  hline-info = 'this is my first alv pgm'.&lt;/P&gt;&lt;P&gt;  hline-typ = 'H'.&lt;/P&gt;&lt;P&gt;ENDFORM. "build_listheader&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 display_alv_report&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&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM display_alv_report.&lt;/P&gt;&lt;P&gt;  v_repid = sy-repid.&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 = v_repid&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;/UL&gt;&lt;P&gt;  i_callback_user_command = 'USER_COMMAND'&lt;/P&gt;&lt;P&gt;  i_callback_top_of_page = 'TOP_OF_PAGE'&lt;/P&gt;&lt;P&gt;  i_grid_title = i_title_ekko&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_GRID_SETTINGS =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_LAYOUT = ALV_LAYOUT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  it_fieldcat = i_fieldcat[]&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;LI level="1" type="ul"&gt;&lt;P&gt;IT_SORT =&lt;/P&gt;&lt;/LI&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 = 'ZLAY1'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  i_save = 'A'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;is_variant = i_variant&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  it_events = v_events&lt;/P&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;  t_outtab = it_ekko&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-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;ENDFORM. "display_alv_report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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 TOP_OF_PAGE&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&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;  it_list_commentary = it_listheader&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;i_logo =&lt;/P&gt;&lt;/LI&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;&lt;/P&gt;&lt;P&gt;ENDFORM. "TOP_OF_PAGE&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 USER_COMMAND&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&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;, text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;RS_SLEFIELDtext&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;    WHEN '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;      READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.&lt;/P&gt;&lt;P&gt;      PERFORM build_fieldcatlog_ekpo.&lt;/P&gt;&lt;P&gt;      PERFORM event_call_ekpo.&lt;/P&gt;&lt;P&gt;      PERFORM populate_event_ekpo.&lt;/P&gt;&lt;P&gt;      PERFORM data_retrieval_ekpo.&lt;/P&gt;&lt;P&gt;      PERFORM build_listheader_ekpo USING it_listheader.&lt;/P&gt;&lt;P&gt;      PERFORM display_alv_ekpo.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM. "user_command&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 BUILD_FIELDCATLOG_EKPO&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&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM build_fieldcatlog_ekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'IT_EKPO'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'EBELN'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-seltext_m = 'PO NO.'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO i_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'IT_EKPO'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'EBELP'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-seltext_m = 'LINE NO'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO i_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'I_EKPO'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-seltext_m = 'MATERIAL NO.'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO i_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'I_EKPO'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'MENGE'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-seltext_m = 'QUANTITY'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO i_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'I_EKPO'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'MEINS'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-seltext_m = 'UOM'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO i_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'I_EKPO'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'NETPR'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-seltext_m = 'PRICE'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO i_fieldcat.&lt;/P&gt;&lt;P&gt;  CLEAR wa_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "BUILD_FIELDCATLOG_EKPO&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 event_call_ekpo&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;we get all events - TOP OF PAGE or USER COMMAND in table v_events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM event_call_ekpo.&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 = v_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;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;ENDFORM. "event_call_ekpo&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 POPULATE_EVENT&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;Events populated for TOP OF PAGE &amp;amp; USER COMAND&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM populate_event_ekpo.&lt;/P&gt;&lt;P&gt;  READ TABLE v_events INTO wa_event WITH KEY name = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;    wa_event-form = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;    MODIFY v_events FROM wa_event TRANSPORTING form WHERE name =&lt;/P&gt;&lt;P&gt;    wa_event-form.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "POPULATE_EVENT&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 TOP_OF_PAGE&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&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM f_top_of_page.&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 = it_listheader&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;i_logo =&lt;/P&gt;&lt;/LI&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;&lt;/P&gt;&lt;P&gt;ENDFORM. "TOP_OF_PAGE&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 USER_COMMAND&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&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;, text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;RS_SLEFIELDtext&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;*retreiving values from the database table ekko&lt;/P&gt;&lt;P&gt;FORM data_retrieval_ekpo.&lt;/P&gt;&lt;P&gt;  SELECT ebeln ebelp matnr menge meins netpr&lt;/P&gt;&lt;P&gt;         FROM ekpo&lt;/P&gt;&lt;P&gt;         INTO TABLE it_ekpo.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "DATA_RETRIEVAL_EKPO&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  BUILD_LISTHEADER_EKPO&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&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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;I_LISTHEADER  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM build_listheader_ekpo USING i_listheader TYPE slis_t_listheader.&lt;/P&gt;&lt;P&gt;  DATA: hline1 TYPE slis_listheader.&lt;/P&gt;&lt;P&gt;  hline1-typ = 'H'.&lt;/P&gt;&lt;P&gt;  hline1-info = 'CHECKING PGM'.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "BUILD_LISTHEADER_EKPO&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  DISPLAY_ALV_EKPO&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&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM display_alv_ekpo.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_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 = v_repid&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 = 'F_USER_COMMAND'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  i_callback_top_of_page = 'TOP_OF_PAGE'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_CALLBACK_HTML_TOP_OF_PAGE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_CALLBACK_HTML_END_OF_LIST = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_STRUCTURE_NAME =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_BACKGROUND_ID = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  i_grid_title = i_title_ekpo&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;I_GRID_SETTINGS =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IS_LAYOUT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  it_fieldcat = i_fieldcat[]&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;LI level="1" type="ul"&gt;&lt;P&gt;IT_SORT =&lt;/P&gt;&lt;/LI&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 =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  i_save = 'A'&lt;/P&gt;&lt;UL&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 = v_events&lt;/P&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;  t_outtab = it_ekpo&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;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;ENDFORM.                    "DISPLAY_ALV_EKPO&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 May 2008 04:48:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842718#M923935</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-19T04:48:02Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842719#M923936</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;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.saptechnical.com/Tutorials/ALV/ALVMainPage.htm" target="test_blank"&gt;http://www.saptechnical.com/Tutorials/ALV/ALVMainPage.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/what-is-alv-programming.htm" target="test_blank"&gt;http://www.sap-img.com/abap/what-is-alv-programming.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/sample-alv-heading-in-alv.htm" target="test_blank"&gt;http://www.sap-img.com/abap/sample-alv-heading-in-alv.htm&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 May 2008 04:53:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842719#M923936</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-19T04:53:54Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842720#M923937</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;the alv function modules are used to enhance the output of the report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;While preparing a list to be displayed  we have some basic components to prepare. These are;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. List data&lt;/P&gt;&lt;P&gt;2.Field Catalog&lt;/P&gt;&lt;P&gt;3. Layout Structure&lt;/P&gt;&lt;P&gt;4.events&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;1.list data:&lt;/STRONG&gt; this is the data in an internal table to be listed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;STRONG&gt;2.field catalog:&lt;/STRONG&gt; We use another internal table to define specifications on how the fields of our list will be displayed. This internal table is called the u201Cfield catalogu201D.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;3.layout structure:&lt;/STRONG&gt; We fill a structure to specify general layout options for the grid. With this structure we can set general display options, grid customizing, totals options, color adjustments etc&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4. events: handles the events like top_of_page, end_of_page,&lt;/P&gt;&lt;P&gt;            user_command.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the internal tables used are&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for fieldcat: SLIS_T_FIELDCAT_ALV&lt;/P&gt;&lt;P&gt;for layout:  SLIS_LAYOUT_ALV&lt;/P&gt;&lt;P&gt;for events: SLIS_T_EVENT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks and regards.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 May 2008 05:42:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842720#M923937</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-19T05:42:34Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842721#M923938</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Find some more info below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ABAP List Viewer &lt;/P&gt;&lt;P&gt;The common features of report are column alignment, sorting, filtering, subtotals, totals etc. To implement these, a lot of coding and logic is to be put. To avoid that we can use a concept called ABAP List Viewer (ALV).&lt;/P&gt;&lt;P&gt;Using ALV, we can have three types of reports:&lt;/P&gt;&lt;P&gt;1. Simple Report&lt;/P&gt;&lt;P&gt;2. Block Report&lt;/P&gt;&lt;P&gt;3. Hierarchical Sequential Report&lt;/P&gt;&lt;P&gt;There are some function modules which will enable to produce the above reports without much effort.&lt;/P&gt;&lt;P&gt;All the definitions of internal tables, structures and constants are declared in a type-pool called SLIS.&lt;/P&gt;&lt;P&gt;SIMPLE REPORT:&lt;/P&gt;&lt;P&gt;The important function modules are: &lt;/P&gt;&lt;P&gt;REUSE_ALV_LIST_DISPLAY&lt;/P&gt;&lt;P&gt;REUSE_ALV_FIELDCATALOG_MERGE&lt;/P&gt;&lt;P&gt;REUSE_ALV_EVENTS_GET&lt;/P&gt;&lt;P&gt;REUSE_ALV_COMMENTARY_WRITE&lt;/P&gt;&lt;P&gt;REUSE_ALV_GRID_DISPLAY&lt;/P&gt;&lt;P&gt;A. REUSE_ALV_LIST_DISPLAY: This is the function module which prints the data.&lt;/P&gt;&lt;P&gt;The important parameters are:&lt;/P&gt;&lt;P&gt;1. Export:&lt;/P&gt;&lt;P&gt;a. I_callback_program : report id&lt;/P&gt;&lt;P&gt;b. I_callback_pf_status_set : routine where a user can set his own pf status or change the functionality of the existing pf -status.&lt;/P&gt;&lt;P&gt;c. I_callback_user_command : routine where the function codes are handled.&lt;/P&gt;&lt;P&gt;d. I_structure_name: name of the dictionary table&lt;/P&gt;&lt;P&gt;e. Is_Layout : structure to set the layout of the report&lt;/P&gt;&lt;P&gt;f. It_fieldcat : internal table with the list of all fields and their attributes which are to be printed (this table can be populated automatically by the function module REUSE_ALV_FIELDCATALOG_MERGE)&lt;/P&gt;&lt;P&gt;g. It_events : internal table with a list of all possible events of ALVand their corresponding routine names.&lt;/P&gt;&lt;P&gt;2. Tables:&lt;/P&gt;&lt;P&gt;a. t_outtab: internal table with the data to be output&lt;/P&gt;&lt;P&gt;B. REUSE_ALV_FIELDCATALOG_MERGE: &lt;/P&gt;&lt;P&gt;This function module is used to populate a field catalog which is essential to display the data in ALV. If the output data is from a single dictionary table and all the columns are selected, then we need not exclusively create the field catalog. Itu2019s enough to mention the table name as a parameter (I_structure_name) in the REUSE_ALV_LIST_DISPLAY. But in other cases we need to create it.&lt;/P&gt;&lt;P&gt;The important parameters are:&lt;/P&gt;&lt;P&gt;1. Export:&lt;/P&gt;&lt;P&gt;a. I_program_name : report id&lt;/P&gt;&lt;P&gt;b. I_internal_tabname : the internal output table &lt;/P&gt;&lt;P&gt;c. I_inclname : include or the report name where all the dynamic forms are handled.&lt;/P&gt;&lt;P&gt;2. Changing&lt;/P&gt;&lt;P&gt;ct_fieldcat: an internal table with the type SLIS_T_FIELDCAT_ALV which is declared in the type pool SLIS.&lt;/P&gt;&lt;P&gt;C. REUSE_ALV_EVENTS_GET: Returns table of possible events for a list type&lt;/P&gt;&lt;P&gt;1. Import:&lt;/P&gt;&lt;P&gt;Et_Events : The event table is returned with all possible CALLBACK events for the specified list type (column u2018NAMEu2019). For events to be processed by the callback, their u2018FORMu2019 field must be filled. If the field is initialized, the event is ignored. The entry can be read from the event table, the field u2018FORMu2019 filled and the entry modified using constants from the type pool SLIS.&lt;/P&gt;&lt;P&gt;2. Export:&lt;/P&gt;&lt;P&gt;I_list_type: &lt;/P&gt;&lt;P&gt;0 = simple list&lt;/P&gt;&lt;P&gt;1 = hierarchical-sequential list &lt;/P&gt;&lt;P&gt;2 = simple block list&lt;/P&gt;&lt;P&gt;3 = hierarchical-sequential block list&lt;/P&gt;&lt;P&gt;D. REUSE_ALV_COMMENTARY_WRITE: This is used in the TOP-OF-PAGE event to print the headings and other comments for the list.&lt;/P&gt;&lt;P&gt;1. It_list_commentary : Internal table with the headings of the type slis_t_listheader.&lt;/P&gt;&lt;P&gt;This internal table has three fields:&lt;/P&gt;&lt;P&gt;Typ : u2018Hu2019 - header, u2018Su2019 - selection, u2018Au2019 - action&lt;/P&gt;&lt;P&gt;Key : only when typ is u2018Su2019.&lt;/P&gt;&lt;P&gt;Info : the text to be printed&lt;/P&gt;&lt;P&gt;E. REUSE_ALV_GRID_DISPLAY: A new function in 4.6 versions, to display the results in grid rather than as a list.&lt;/P&gt;&lt;P&gt;Parameters: same as REUSE_ALV_LIST_DISPLAY&lt;/P&gt;&lt;P&gt;HIERARCHICAL REPORTS&lt;/P&gt;&lt;P&gt;A. REUSE_ALV_HIERSEQ_LIST_DISPLAY&lt;/P&gt;&lt;P&gt;1. Export:&lt;/P&gt;&lt;P&gt;a. I_CALLBACK_PROGRAM&lt;/P&gt;&lt;P&gt;b. I_CALLBACK_PF_STATUS_SET&lt;/P&gt;&lt;P&gt;c. I_CALLBACK_USER_COMMAND&lt;/P&gt;&lt;P&gt;d. IS_LAYOUT&lt;/P&gt;&lt;P&gt;e. IT_FIELDCAT &lt;/P&gt;&lt;P&gt;f. IT_EVENTS&lt;/P&gt;&lt;P&gt;g. I_TABNAME_HEADER: Name of the internal table in the program containing the output data of the highest hierarchy level.&lt;/P&gt;&lt;P&gt;h. I_TABNAME_ITEM: Name of the internal table in the program containing the output data of the lowest hierarchy level.&lt;/P&gt;&lt;P&gt;i. IS_KEYINFO: This structure contains the header and item table field names which link the two tables (shared key).&lt;/P&gt;&lt;P&gt;2. Tables &lt;/P&gt;&lt;P&gt;a. T_OUTTAB_HEADER: Header table with data to be output&lt;/P&gt;&lt;P&gt;b. T_OUTTAB_ITEM: Name of the internal table in the program containing the output data of the lowest hierarchy level.&lt;/P&gt;&lt;P&gt;BLOCK REPORT:&lt;/P&gt;&lt;P&gt;This is used to display multiple lists continuously.&lt;/P&gt;&lt;P&gt;The important functions used in this report are:&lt;/P&gt;&lt;P&gt;A. REUSE_ALV_BLOCK_LIST_INIT&lt;/P&gt;&lt;P&gt;B. REUSE_ALV_BLOCK_LIST_APPEND&lt;/P&gt;&lt;P&gt;C. REUSE_ALV_BLOCK_LIST_DISPLAY &lt;/P&gt;&lt;P&gt;D. REUSE_ALV_BLOCK_HS_LIST_APPEND&lt;/P&gt;&lt;P&gt;A. REUSE_ALV_BLOCK_LIST_INIT&lt;/P&gt;&lt;P&gt;Parameters:&lt;/P&gt;&lt;P&gt;a. I_CALLBACK_PROGRAM&lt;/P&gt;&lt;P&gt;b. I_CALLBACK_PF_STATUS_SET&lt;/P&gt;&lt;P&gt;c. I_CALLBACK_USER_COMMAND&lt;/P&gt;&lt;P&gt;This function module is used to set the default GUI status etc.&lt;/P&gt;&lt;P&gt;B. REUSE_ALV_BLOCK_LIST_APPEND&lt;/P&gt;&lt;P&gt;Export :&lt;/P&gt;&lt;P&gt;a. IS_LAYOUT : layout settings for block&lt;/P&gt;&lt;P&gt;b. IT_FIELDCAT : field catalog&lt;/P&gt;&lt;P&gt;c. I_TABNAME : Internal table name of the output data&lt;/P&gt;&lt;P&gt;d. IT_EVENTS : internal table name with all possible events&lt;/P&gt;&lt;P&gt;Tables : &lt;/P&gt;&lt;P&gt;a. T_OUTTAB : internal table with output data.&lt;/P&gt;&lt;P&gt;This function module adds the data to the block.&lt;/P&gt;&lt;P&gt;INTERNAL TABLES IN SLIS &lt;/P&gt;&lt;P&gt;SLIS_T_FIELDCAT_ALV:&lt;/P&gt;&lt;P&gt;This internal table contains the field attributes. This internal table can be populated automatically by using u2018REUSE_ALV_FIELDCATALOG_MERGEu2019.&lt;/P&gt;&lt;P&gt;Important Attributes:&lt;/P&gt;&lt;P&gt;a. col_pos : position of the column&lt;/P&gt;&lt;P&gt;b. fieldname : internal fieldname&lt;/P&gt;&lt;P&gt;c. tabname : internal table name&lt;/P&gt;&lt;P&gt;d. ref_fieldname : fieldname (dictionary)&lt;/P&gt;&lt;P&gt;e. ref_tabname : table (dictionary)&lt;/P&gt;&lt;P&gt;f. key(1) : column with key-color&lt;/P&gt;&lt;P&gt;g. icon(1) : icon&lt;/P&gt;&lt;P&gt;h. hotspot(1) : hotspot&lt;/P&gt;&lt;P&gt;i. Symbol(1) : symbol&lt;/P&gt;&lt;P&gt;j. Checkbox(1) : checkbox&lt;/P&gt;&lt;P&gt;k. just(1) : (R)ight (L)eft (C)ent&lt;/P&gt;&lt;P&gt;l. do_sum(1) : sum up&lt;/P&gt;&lt;P&gt;m. no_out(1) : (O)blig. (X)no out&lt;/P&gt;&lt;P&gt;n. outputlen : output length&lt;/P&gt;&lt;P&gt;o. seltext-l : long key word&lt;/P&gt;&lt;P&gt;p. seltext_m : middle key word &lt;/P&gt;&lt;P&gt;q. seltext_s : short key word&lt;/P&gt;&lt;P&gt;r. reptext_ddic : heading(ddic)&lt;/P&gt;&lt;P&gt;s. ddictxt(1) : (S)hort (M)iddle (L)ong&lt;/P&gt;&lt;P&gt;t. datatype : datatype&lt;/P&gt;&lt;P&gt;SLIS_T_EVENT:&lt;/P&gt;&lt;P&gt;Internal table for storing all the possible events of the ALV. This can be populated by the function module REUSE_ALV_EVENTS_GET&lt;/P&gt;&lt;P&gt;The columns are: &lt;/P&gt;&lt;P&gt;Name: name of the event&lt;/P&gt;&lt;P&gt;Form: name of the routine&lt;/P&gt;&lt;P&gt;SYNTAXES FOR THE ROUTINES&lt;/P&gt;&lt;P&gt;I_CALLBACK_PF_STATUS_SET &lt;/P&gt;&lt;P&gt;Syntax: &lt;/P&gt;&lt;P&gt;FORM set_pf_status USING rt_extab TYPE slis_t_extab &lt;/P&gt;&lt;P&gt;The table RT_EXTAB contains the function codes which are hidden in the standard interface.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I_CALLBACK_USER_COMMAND &lt;/P&gt;&lt;P&gt;Syntax : &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;The parameter r_ucomm contains the function code.&lt;/P&gt;&lt;P&gt;The structure rs_selfield has the details about the current cursor position.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Shrini&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 23 May 2008 06:37:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842721#M923938</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-23T06:37:18Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842722#M923939</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;To generate the simple ALV Grid display report, follow the steps.&lt;/P&gt;&lt;P&gt;1.Define internal table of dictionary table.&lt;/P&gt;&lt;P&gt;2.Retrieve the data from dictionary table into internal table&lt;/P&gt;&lt;P&gt;3.Call the ALV function module to display the data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ex:-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: itab type table of mara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select * from mara into table itab.&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;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;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;LI level="1" type="ul"&gt;&lt;P&gt;  I_CALLBACK_TOP_OF_PAGE            = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_CALLBACK_HTML_TOP_OF_PAGE       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_CALLBACK_HTML_END_OF_LIST       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   I_STRUCTURE_NAME                  = 'MARA'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_BACKGROUND_ID                   = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_GRID_TITLE                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_GRID_SETTINGS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IS_LAYOUT                         =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_FIELDCAT                       =&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt;  IT_SORT                           =&lt;/P&gt;&lt;/LI&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;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EVENTS                         =&lt;/P&gt;&lt;/LI&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;  I_HTML_HEIGHT_TOP                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  I_HTML_HEIGHT_END                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_ALV_GRAPHICS                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_HYPERLINK                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_ADD_FIELDCAT                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IT_EXCEPT_QINFO                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IR_SALV_FULLSCREEN_ADAPTER        =&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;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;Reward,if useful.&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Chandu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 23 May 2008 08:23:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842722#M923939</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-23T08:23:26Z</dc:date>
    </item>
    <item>
      <title>Re: ALV</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842723#M923940</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi check this..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is a simple alv report with subtotal sign...&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; Report  ZTEST_ALV_PERC_13317&lt;/P&gt;&lt;P&gt;*&amp;amp;&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;&lt;/P&gt;&lt;P&gt;*&amp;amp;&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;&lt;/P&gt;&lt;P&gt;REPORT  ztest_alv_perc_13317.&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis.&lt;/P&gt;&lt;P&gt;DATA: it_fieldcat TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      wa_fieldcat TYPE slis_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      it_events TYPE slis_t_event,&lt;/P&gt;&lt;P&gt;      wa_events TYPE slis_alv_event,&lt;/P&gt;&lt;P&gt;      it_sort TYPE slis_t_sortinfo_alv,&lt;/P&gt;&lt;P&gt;      wa_sort TYPE slis_sortinfo_alv,&lt;/P&gt;&lt;P&gt;      l_layout TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_itab,&lt;/P&gt;&lt;P&gt;        field1(10),&lt;/P&gt;&lt;P&gt;        qty1 TYPE i,&lt;/P&gt;&lt;P&gt;        qty2 TYPE i,&lt;/P&gt;&lt;P&gt;        qty3 TYPE i,&lt;/P&gt;&lt;P&gt;        dummy TYPE c,&lt;/P&gt;&lt;P&gt;      END OF ty_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: itab TYPE STANDARD TABLE OF ty_itab WITH  HEADER LINE,&lt;/P&gt;&lt;P&gt;itab1 TYPE ty_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  itab-field1 = 'FIRST'.&lt;/P&gt;&lt;P&gt;  itab-qty1 = 2.&lt;/P&gt;&lt;P&gt;  itab-qty2 = 1.&lt;/P&gt;&lt;P&gt;  itab-qty3 = 5.&lt;/P&gt;&lt;P&gt;  itab-dummy = 10.&lt;/P&gt;&lt;P&gt;  APPEND itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  itab-field1 = 'FIRST'.&lt;/P&gt;&lt;P&gt;  itab-qty1 = 2.&lt;/P&gt;&lt;P&gt;  itab-qty2 = 1.&lt;/P&gt;&lt;P&gt;  itab-qty3 = 5.&lt;/P&gt;&lt;P&gt;  itab-dummy = 10.&lt;/P&gt;&lt;P&gt;  APPEND itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  itab-field1 = 'FIRST'.&lt;/P&gt;&lt;P&gt;  itab-qty1 = 2.&lt;/P&gt;&lt;P&gt;  itab-qty2 = 1.&lt;/P&gt;&lt;P&gt;  itab-qty3 = 5.&lt;/P&gt;&lt;P&gt;  itab-dummy = 10.&lt;/P&gt;&lt;P&gt;  APPEND itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-col_pos = 1.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'FIELD1'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-col_pos = 2.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'QTY1'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-do_sum = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-col_pos = 3.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'QTY2'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-do_sum = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-col_pos = 4.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'QTY3'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-do_sum = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_fieldcat-col_pos = 5.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-fieldname = 'DUMMY'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-do_sum = 'X'.&lt;/P&gt;&lt;P&gt;  wa_fieldcat-no_out = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND wa_fieldcat TO it_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH it_sort. CLEAR it_sort.&lt;/P&gt;&lt;P&gt;  wa_sort-spos = 1.&lt;/P&gt;&lt;P&gt;  wa_sort-fieldname = 'FIELD1'.&lt;/P&gt;&lt;P&gt;  wa_sort-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  wa_sort-up = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND wa_sort TO it_sort.&lt;/P&gt;&lt;P&gt;  CLEAR wa_sort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  wa_sort-spos = 2.&lt;/P&gt;&lt;P&gt;  wa_sort-fieldname = 'DUMMY'.&lt;/P&gt;&lt;P&gt;  wa_sort-tabname = 'ITAB'.&lt;/P&gt;&lt;P&gt;  wa_sort-up = 'X'.&lt;/P&gt;&lt;P&gt;  wa_sort-subtot = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND wa_sort TO it_sort.&lt;/P&gt;&lt;P&gt;  CLEAR wa_sort.&lt;/P&gt;&lt;P&gt;&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       = it_events&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;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;&lt;/P&gt;&lt;P&gt;  READ TABLE it_events WITH KEY name = slis_ev_subtotal_text INTO wa_events.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    MOVE 'CHANGE_SUBTOTAL_TEXT' TO wa_events-form.&lt;/P&gt;&lt;P&gt;    MODIFY it_events FROM wa_events INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_layout-subtotals_text = 'Subtotal'.&lt;/P&gt;&lt;P&gt;  l_layout-totals_text = 'total text'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;P&gt;     i_callback_program           = sy-repid&lt;/P&gt;&lt;P&gt;     it_fieldcat                    = it_fieldcat&lt;/P&gt;&lt;P&gt;     it_sort                        = it_sort&lt;/P&gt;&lt;P&gt;     it_events                      = it_events&lt;/P&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;            .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&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;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  CHANGE_SUBTOTAL_TEXT&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 change_subtotal_text USING i_listhead STRUCTURE itab1&lt;/P&gt;&lt;P&gt;i_subtotal TYPE slis_subtot_text.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF i_subtotal-criteria = 'DUMMY'.&lt;/P&gt;&lt;P&gt;    i_subtotal-display_text_for_subtotal = 'Sub total'.&lt;/P&gt;&lt;P&gt;    i_listhead-qty3 = ( i_listhead-qty1 - i_listhead-qty2 ) / i_listhead-qty2 .&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    i_listhead-field1 = 'Total'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "CHANGE_SUBTOTAL_TEXT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;venkat&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 23 May 2008 08:27:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv/m-p/3842723#M923940</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-23T08:27:04Z</dc:date>
    </item>
  </channel>
</rss>

