<?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 Re: Object oriented ALV grid reports? in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606321#M868708</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;Here are a few classes used in ALV, just read through their documentation or look at how they've been implemented in your system and you'll get a good idea on how to use them:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CL_ALV_EVENT_DATA (Changing Data Container for Events) &lt;/P&gt;&lt;P&gt;CL_ALV_EVENT_TOOLBAR_SET (ALV Context menu)&lt;/P&gt;&lt;P&gt;CL_ALV_TABLE_CREATE (Dynamic Creation of ALV Data Table) &lt;/P&gt;&lt;P&gt;CL_ALV_TREE_BASE (Basis Class ALV Tree Control)&lt;/P&gt;&lt;P&gt;CL_CK_ALVTREE_NKEY_2_OBJECT (Converter Node Key Object) &lt;/P&gt;&lt;P&gt;CL_COST_COSTINGVERSION_ALV (Display Costing Versions)&lt;/P&gt;&lt;P&gt;CL_GUI_ALV_GRID (List Viewer)&lt;/P&gt;&lt;P&gt;CL_GUI_ALV_GRID_BASE (Basis Class for ALV grid)&lt;/P&gt;&lt;P&gt;CL_GUI_ALV_TREE (ALV Tree Control) &lt;/P&gt;&lt;P&gt;CL_GUI_ALV_TREE_SIMPLE (Simple ALV Tree)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sample:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
DATA: lcl_alv TYPE REF TO cl_gui_alv_grid,
      t_flights TYPE STANDARD TABLE OF FLIGHTS.
 
SELECT * FROM flights INTO TABLE t_flights.
 
CREATE OBJECT lcl_alv
    EXPORTING I_PARENT = cl_gui_container=&amp;gt;screen0.
 
CALL METHOD lcl_alv-&amp;gt;set_table_for_first_display
    EXPORTING
       I_STRUCTURE_NAME = 'FLIGHTS'
    CHANGING
       IT_OUTTAB = t_flights.
 
CALL SCREEN 100.
 &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if useful....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;AK&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 02 Apr 2008 12:09:55 GMT</pubDate>
    <dc:creator>ak_upadhyay</dc:creator>
    <dc:date>2008-04-02T12:09:55Z</dc:date>
    <item>
      <title>Object oriented ALV grid reports?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606318#M868705</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can you guide me to write Object oriented ALV grid reports&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks In advance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 12:03:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606318#M868705</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-02T12:03:38Z</dc:date>
    </item>
    <item>
      <title>Re: Object oriented ALV grid reports?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606319#M868706</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;see this link &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdev.co.uk/reporting/alv/alvtree/alvtree_basic.htm" target="test_blank"&gt;http://www.sapdev.co.uk/reporting/alv/alvtree/alvtree_basic.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT Z_ALV_GRID_CONTROLS_DRAG_DROP .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;======================================================&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This program is an example of two ALV Grid controls&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;with Drag and Drop effects between them&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;======================================================&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FOR THIS EXAMPLE A CUSTOMER DEFINED TABLE HAS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BEEN BUILT IN TRANSACTION SE11,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NAMED ZTRANSACTIONS WITH THE FOLLOWING STRUCTURE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FIELD NAME  |  DATA ELEMENT  |  KEY&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MANDT       |  MANDT         |  yes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;KUNNR       |  KUNNR         |  yes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BELNR       |  MBLNR         |  yes&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BLDAT       |  BLDAT         |&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DMBTR       |  DMBTR         |&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WAERS       |  WAERS         |&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DAta   : i_ztransactions  type table of zstud&lt;/P&gt;&lt;P&gt;                               WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DAta   : i_ztransactions2 type table of zstud&lt;/P&gt;&lt;P&gt;                               WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA   : OK_CODE LIKE SY-UCOMM .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : MCONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER .&lt;/P&gt;&lt;P&gt;DATA : MCONTLEFT  TYPE REF TO CL_GUI_CONTAINER .&lt;/P&gt;&lt;P&gt;DATA : MCONTRIGHT TYPE REF TO CL_GUI_CONTAINER .&lt;/P&gt;&lt;P&gt;DATA : MSPLITCONT TYPE REF TO&lt;/P&gt;&lt;P&gt;                        CL_GUI_EASY_SPLITTER_CONTAINER .&lt;/P&gt;&lt;P&gt;DATA : MALV_LEFT  TYPE REF TO CL_GUI_ALV_GRID .&lt;/P&gt;&lt;P&gt;DATA : MALV_RIGHT TYPE REF TO CL_GUI_ALV_GRID .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : MROW TYPE LVC_S_ROW .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Data:   gs_layout type lvc_s_layo ,&lt;/P&gt;&lt;P&gt;        g_behaviour_alv TYPE REF TO CL_DRAGDROP .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : MLINES TYPE I .&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_dragdropobj DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This is the Class of Drag Drop Object .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This Object is used as a temporary storage means&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;of the information extracted with drag&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;CLASS lcl_dragdropobj DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    DATA: I_ZTRANSACTIONS  TYPE zstud ,&lt;/P&gt;&lt;P&gt;          index TYPE i ,&lt;/P&gt;&lt;P&gt;          ORIGINAL_TABLE(5) TYPE C ,&lt;/P&gt;&lt;P&gt;          PROCEED_TRANS(1) TYPE C .&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : MDATA TYPE REF TO LCL_DRAGDROPOBJ .&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS DND_TOOLS DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This class contains the methods responding to the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;events ONDRAG , ONDROP , ONDROPCOMPLETE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;of the ALV Grid Controls&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;CLASS DND_TOOLS DEFINITION .&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION .&lt;/P&gt;&lt;P&gt;    METHODS : HANDLE_DRAG_FROM_LEFT&lt;/P&gt;&lt;P&gt;                          FOR EVENT ONDRAG OF&lt;/P&gt;&lt;P&gt;                          CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                          IMPORTING&lt;/P&gt;&lt;P&gt;                          E_ROW&lt;/P&gt;&lt;P&gt;                          E_DRAGDROPOBJ .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS : HANDLE_DROPCOMPLETE_FROM_LEFT&lt;/P&gt;&lt;P&gt;                          FOR EVENT ONDROPCOMPLETE  OF&lt;/P&gt;&lt;P&gt;                          CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                          IMPORTING&lt;/P&gt;&lt;P&gt;                          E_ROW&lt;/P&gt;&lt;P&gt;                          E_DRAGDROPOBJ .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS : HANDLE_DRAG_FROM_RIGHT&lt;/P&gt;&lt;P&gt;                          FOR EVENT ONDRAG OF&lt;/P&gt;&lt;P&gt;                          CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                          IMPORTING&lt;/P&gt;&lt;P&gt;                          E_ROW&lt;/P&gt;&lt;P&gt;                          E_DRAGDROPOBJ .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS : HANDLE_DROPCOMPLETE_FROM_RIGHT&lt;/P&gt;&lt;P&gt;                          FOR EVENT ONDROPCOMPLETE  OF&lt;/P&gt;&lt;P&gt;                          CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                          IMPORTING&lt;/P&gt;&lt;P&gt;                          E_ROW&lt;/P&gt;&lt;P&gt;                          E_DRAGDROPOBJ .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS : HANDLE_DROP_TO_LEFT&lt;/P&gt;&lt;P&gt;                          FOR EVENT ONDROP OF&lt;/P&gt;&lt;P&gt;                          CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                          IMPORTING&lt;/P&gt;&lt;P&gt;                           E_DRAGDROPOBJ .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS : HANDLE_DROP_TO_RIGHT&lt;/P&gt;&lt;P&gt;                          FOR EVENT ONDROP OF&lt;/P&gt;&lt;P&gt;                          CL_GUI_ALV_GRID&lt;/P&gt;&lt;P&gt;                          IMPORTING&lt;/P&gt;&lt;P&gt;                          E_DRAGDROPOBJ .&lt;/P&gt;&lt;P&gt;ENDCLASS .&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS DND_TOOLS IMPLEMENTATION&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;CLASS DND_TOOLS IMPLEMENTATION .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  METHOD HANDLE_DRAG_FROM_LEFT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MROW = E_ROW-INDEX .&lt;/P&gt;&lt;P&gt;    READ TABLE I_ZTRANSACTIONS INDEX MROW INTO&lt;/P&gt;&lt;P&gt;               I_ZTRANSACTIONS .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CREATE OBJECT MDATA .&lt;/P&gt;&lt;P&gt;    MOVE I_ZTRANSACTIONS TO MDATA-&amp;gt;I_ZTRANSACTIONS .&lt;/P&gt;&lt;P&gt;    MOVE MROW TO MDATA-&amp;gt;INDEX .&lt;/P&gt;&lt;P&gt;    MOVE 'LEFT' TO MDATA-&amp;gt;ORIGINAL_TABLE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    E_DRAGDROPOBJ-&amp;gt;OBJECT = MDATA .&lt;/P&gt;&lt;P&gt;  ENDMETHOD .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  METHOD HANDLE_DROPCOMPLETE_FROM_LEFT .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NB : the following data object MDATA is local to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  the method and contains the information from the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  import parameter of the method E_DRAGDROPOBJ&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DATA : MDATA TYPE REF TO LCL_DRAGDROPOBJ .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MDATA  ?= E_DRAGDROPOBJ-&amp;gt;OBJECT .&lt;/P&gt;&lt;P&gt;    CHECK MDATA-&amp;gt;PROCEED_TRANS = 'X' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MROW = mdata-&amp;gt;INDEX .&lt;/P&gt;&lt;P&gt;    DELETE I_ZTRANSACTIONS INDEX MROW .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND MDATA-&amp;gt;I_ZTRANSACTIONS TO I_ZTRANSACTIONS2 .&lt;/P&gt;&lt;P&gt;    SORT I_ZTRANSACTIONS2 BY ROLLNO.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   delete i_ztransactions2 where kunnr is initial .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE i_ztransactions LINES MLINES .&lt;/P&gt;&lt;P&gt;    IF MLINES EQ 0 .&lt;/P&gt;&lt;P&gt;      CLEAR  i_ztransactions .&lt;/P&gt;&lt;P&gt;      APPEND i_ztransactions TO i_ztransactions .&lt;/P&gt;&lt;P&gt;    ENDIF .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD Malv_LEFT-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;    CALL METHOD Malv_RIGHT-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  METHOD HANDLE_DRAG_FROM_RIGHT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MROW = E_ROW-INDEX .&lt;/P&gt;&lt;P&gt;    READ TABLE I_ZTRANSACTIONS2 INDEX MROW INTO&lt;/P&gt;&lt;P&gt;               I_ZTRANSACTIONS2 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CREATE OBJECT MDATA .&lt;/P&gt;&lt;P&gt;    MOVE I_ZTRANSACTIONS2 TO MDATA-&amp;gt;I_ZTRANSACTIONS .&lt;/P&gt;&lt;P&gt;    MOVE MROW TO MDATA-&amp;gt;INDEX .&lt;/P&gt;&lt;P&gt;    MOVE 'RIGHT' TO MDATA-&amp;gt;ORIGINAL_TABLE .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    E_DRAGDROPOBJ-&amp;gt;OBJECT = MDATA .&lt;/P&gt;&lt;P&gt;  ENDMETHOD .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  METHOD HANDLE_DROPCOMPLETE_FROM_RIGHT .&lt;/P&gt;&lt;P&gt;    DATA : MDATA TYPE REF TO LCL_DRAGDROPOBJ .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MDATA  ?= E_DRAGDROPOBJ-&amp;gt;OBJECT .&lt;/P&gt;&lt;P&gt;    CHECK MDATA-&amp;gt;PROCEED_TRANS = 'X' .&lt;/P&gt;&lt;P&gt;    MROW = mdata-&amp;gt;INDEX .&lt;/P&gt;&lt;P&gt;    DELETE I_ZTRANSACTIONS2 INDEX MROW .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND MDATA-&amp;gt;I_ZTRANSACTIONS TO I_ZTRANSACTIONS .&lt;/P&gt;&lt;P&gt;    SORT I_ZTRANSACTIONS BY ROLLNO.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   delete i_ztransactions where kunnr is initial .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DESCRIBE TABLE i_ztransactions2 LINES MLINES .&lt;/P&gt;&lt;P&gt;    IF MLINES EQ 0 .&lt;/P&gt;&lt;P&gt;      CLEAR  i_ztransactions2 .&lt;/P&gt;&lt;P&gt;      APPEND i_ztransactions2 TO i_ztransactions2 .&lt;/P&gt;&lt;P&gt;    ENDIF .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD Malv_LEFT-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;    CALL METHOD Malv_RIGHT-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  METHOD HANDLE_DROP_TO_LEFT .&lt;/P&gt;&lt;P&gt;    DATA : MDATA TYPE REF TO LCL_DRAGDROPOBJ .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MDATA  ?= E_DRAGDROPOBJ-&amp;gt;OBJECT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF MDATA-&amp;gt;ORIGINAL_TABLE = 'RIGHT' .&lt;/P&gt;&lt;P&gt;      MDATA-&amp;gt;PROCEED_TRANS = 'X' .&lt;/P&gt;&lt;P&gt;    ELSE .&lt;/P&gt;&lt;P&gt;      MDATA-&amp;gt;PROCEED_TRANS = ' ' .&lt;/P&gt;&lt;P&gt;    ENDIF .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    E_DRAGDROPOBJ-&amp;gt;OBJECT = MDATA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  METHOD HANDLE_DROP_TO_RIGHT .&lt;/P&gt;&lt;P&gt;    DATA : MDATA TYPE REF TO LCL_DRAGDROPOBJ .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MDATA  ?= E_DRAGDROPOBJ-&amp;gt;OBJECT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF MDATA-&amp;gt;ORIGINAL_TABLE = 'LEFT' .&lt;/P&gt;&lt;P&gt;      MDATA-&amp;gt;PROCEED_TRANS = 'X' .&lt;/P&gt;&lt;P&gt;    ELSE .&lt;/P&gt;&lt;P&gt;      MDATA-&amp;gt;PROCEED_TRANS = ' ' .&lt;/P&gt;&lt;P&gt;    ENDIF .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    E_DRAGDROPOBJ-&amp;gt;OBJECT = MDATA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : mlistener type ref to dnd_tools .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;======================================================&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;START OF SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;======================================================&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;START-OF-SELECTION .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM GET_DATA .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL SCREEN 100 .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The screen 100 has the custom control MCONTAINER and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;on the flow logic has the following modules :&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;PROCESS BEFORE OUTPUT.&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;  MODULE STATUS_0100.&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;  MODULE PREPARE_SCREEN .&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;PROCESS AFTER INPUT.&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;  MODULE USER_COMMAND_0100.&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;----------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(Off course not commented out in the real flow logic)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM GET_DATA                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FOR THIS EXAMPLE THE DATA SELECTION IS HARD CODED&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;----------------------------------------------------*&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM GET_DATA .&lt;/P&gt;&lt;P&gt;   SELECT * FROM ZSTUD&lt;/P&gt;&lt;P&gt;     INTO TABLE I_ZTRANSACTIONS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR : i_ztransactions2,&lt;/P&gt;&lt;P&gt;          i_ztransactions2[] .&lt;/P&gt;&lt;P&gt;  APPEND  i_ztransactions2 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM .&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;      Module  STATUS_0100  OUTPUT&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;-----------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The PF STATUS STATUS100 called from the module below,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;has on the Standard toolbar the buttons&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BACK , EXIT and CANCEL .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;These buttons are provided with function code = 'EXIT'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-----------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MODULE STATUS_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;  set titlebar 'TITLEDRAGDROP' WITH SY-REPID 'BY' SY-UNAME.&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'STATUS100'.&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " STATUS_0100  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-----------------------------------------------------*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     Module  USER_COMMAND_0100  INPUT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-----------------------------------------------------*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The following module checks the User Command and ends&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the program&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;------------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MODULE USER_COMMAND_0100 INPUT.&lt;/P&gt;&lt;P&gt;  IF OK_CODE = 'EXIT' .&lt;/P&gt;&lt;P&gt;    CLEAR : MCONTAINER ,&lt;/P&gt;&lt;P&gt;           MCONTLEFT  ,&lt;/P&gt;&lt;P&gt;           MCONTRIGHT ,&lt;/P&gt;&lt;P&gt;           MSPLITCONT ,&lt;/P&gt;&lt;P&gt;           MALV_LEFT  ,&lt;/P&gt;&lt;P&gt;           MALV_RIGHT .&lt;/P&gt;&lt;P&gt;    LEAVE TO SCREEN 0  .&lt;/P&gt;&lt;P&gt;  ENDIF .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " USER_COMMAND_0100  INPUT&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;      Module  PREPARE_SCREEN  OUTPUT&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;MODULE PREPARE_SCREEN OUTPUT.&lt;/P&gt;&lt;P&gt;  IF MCONTAINER IS INITIAL .&lt;/P&gt;&lt;P&gt;    CREATE OBJECT MCONTAINER&lt;/P&gt;&lt;P&gt;                  EXPORTING&lt;/P&gt;&lt;P&gt;                  CONTAINER_NAME = 'MCONTAINER' .&lt;/P&gt;&lt;P&gt;    CREATE OBJECT MSPLITCONT&lt;/P&gt;&lt;P&gt;                  EXPORTING&lt;/P&gt;&lt;P&gt;                  PARENT = MCONTAINER&lt;/P&gt;&lt;P&gt;                  ORIENTATION = 1 .&lt;/P&gt;&lt;P&gt;    MCONTLEFT = MSPLITCONT-&amp;gt;TOP_LEFT_CONTAINER .&lt;/P&gt;&lt;P&gt;    MCONTRIGHT = MSPLITCONT-&amp;gt;BOTTOM_RIGHT_CONTAINER .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CREATE OBJECT MALV_LEFT&lt;/P&gt;&lt;P&gt;                  EXPORTING I_PARENT = MCONTLEFT .&lt;/P&gt;&lt;P&gt;    CREATE OBJECT MALV_RIGHT&lt;/P&gt;&lt;P&gt;                  EXPORTING I_PARENT = MCONTRIGHT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    perform set_layout_capable_of_drag_dro&lt;/P&gt;&lt;P&gt;                  USING 'X' 'X' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD MALV_LEFT-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;/P&gt;&lt;P&gt;               EXPORTING&lt;/P&gt;&lt;P&gt;               I_STRUCTURE_NAME = 'ZSTUD'&lt;/P&gt;&lt;P&gt;               IS_LAYOUT = gS_LAYOUT&lt;/P&gt;&lt;P&gt;               CHANGING&lt;/P&gt;&lt;P&gt;               IT_OUTTAB = I_ZTRANSACTIONS[] .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD MALV_RIGHT-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;/P&gt;&lt;P&gt;               EXPORTING&lt;/P&gt;&lt;P&gt;               I_STRUCTURE_NAME = 'ZSTUD'&lt;/P&gt;&lt;P&gt;               IS_LAYOUT = gs_layout&lt;/P&gt;&lt;P&gt;               CHANGING&lt;/P&gt;&lt;P&gt;               IT_OUTTAB = I_ZTRANSACTIONS2[] .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    create object mlistener .&lt;/P&gt;&lt;P&gt;    SET HANDLER mlistener-&amp;gt;HANDLE_DRAG_FROM_LEFT&lt;/P&gt;&lt;P&gt;                FOR MALV_LEFT .&lt;/P&gt;&lt;P&gt;    SET HANDLER mlistener-&amp;gt;HANDLE_dROPcomplete_FROM_LEFT&lt;/P&gt;&lt;P&gt;                FOR MALV_LEFT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SET HANDLER mlistener-&amp;gt;HANDLE_DRAG_FROM_RIGHT&lt;/P&gt;&lt;P&gt;                FOR MALV_RIGHT.&lt;/P&gt;&lt;P&gt;   SET HANDLER mlistener-&amp;gt;HANDLE_dROPcomplete_FROM_RIGHT&lt;/P&gt;&lt;P&gt;                 FOR MALV_RIGHT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SET HANDLER mlistener-&amp;gt;HANDLE_DROP_TO_RIGHT&lt;/P&gt;&lt;P&gt;                 FOR MALV_RIGHT .&lt;/P&gt;&lt;P&gt;    SET HANDLER mlistener-&amp;gt;HANDLE_DROP_TO_LEFT&lt;/P&gt;&lt;P&gt;                 FOR MALV_LEFT  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF .&lt;/P&gt;&lt;P&gt;ENDMODULE.                 " PREPARE_SCREEN  OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-----------------------------------------------------*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Form  SET_LAYOUT_CAPABLE_OF_DRAG_DRO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;-----------------------------------------------------*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Definition of a Drag &amp;amp; Drop behaviour for the ALV&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; grid&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;------------------------------------------------------&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;FORM SET_LAYOUT_CAPABLE_OF_DRAG_DRO  USING DRAG DROP.&lt;/P&gt;&lt;P&gt;  data : effect type i ,&lt;/P&gt;&lt;P&gt;         handle_alv TYPE i .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT g_behaviour_alv.&lt;/P&gt;&lt;P&gt;  effect = cl_dragdrop=&amp;gt;move + cl_dragdrop=&amp;gt;copy .&lt;/P&gt;&lt;P&gt;  CALL METHOD g_behaviour_alv-&amp;gt;add&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      flavor =  'Line'&lt;/P&gt;&lt;P&gt;      dragsrc =     DRAG&lt;/P&gt;&lt;P&gt;      droptarget =  DROP&lt;/P&gt;&lt;P&gt;      effect = effect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD g_behaviour_alv-&amp;gt;get_handle&lt;/P&gt;&lt;P&gt;                    IMPORTING&lt;/P&gt;&lt;P&gt;                       handle = handle_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gs_layout-s_dragdrop-row_ddid = handle_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.              " SET_LAYOUT_CAPABLE_OF_DRAG_DRO&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 12:07:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606319#M868706</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-02T12:07:30Z</dc:date>
    </item>
    <item>
      <title>Re: Object oriented ALV grid reports?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606320#M868707</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;Check the following link:&lt;/P&gt;&lt;P&gt;&lt;A href="http://sapdev.co.uk/index.htm" target="test_blank"&gt;http://sapdev.co.uk/index.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Bhaskar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 12:09:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606320#M868707</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-02T12:09:10Z</dc:date>
    </item>
    <item>
      <title>Re: Object oriented ALV grid reports?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606321#M868708</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;Here are a few classes used in ALV, just read through their documentation or look at how they've been implemented in your system and you'll get a good idea on how to use them:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CL_ALV_EVENT_DATA (Changing Data Container for Events) &lt;/P&gt;&lt;P&gt;CL_ALV_EVENT_TOOLBAR_SET (ALV Context menu)&lt;/P&gt;&lt;P&gt;CL_ALV_TABLE_CREATE (Dynamic Creation of ALV Data Table) &lt;/P&gt;&lt;P&gt;CL_ALV_TREE_BASE (Basis Class ALV Tree Control)&lt;/P&gt;&lt;P&gt;CL_CK_ALVTREE_NKEY_2_OBJECT (Converter Node Key Object) &lt;/P&gt;&lt;P&gt;CL_COST_COSTINGVERSION_ALV (Display Costing Versions)&lt;/P&gt;&lt;P&gt;CL_GUI_ALV_GRID (List Viewer)&lt;/P&gt;&lt;P&gt;CL_GUI_ALV_GRID_BASE (Basis Class for ALV grid)&lt;/P&gt;&lt;P&gt;CL_GUI_ALV_TREE (ALV Tree Control) &lt;/P&gt;&lt;P&gt;CL_GUI_ALV_TREE_SIMPLE (Simple ALV Tree)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sample:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
DATA: lcl_alv TYPE REF TO cl_gui_alv_grid,
      t_flights TYPE STANDARD TABLE OF FLIGHTS.
 
SELECT * FROM flights INTO TABLE t_flights.
 
CREATE OBJECT lcl_alv
    EXPORTING I_PARENT = cl_gui_container=&amp;gt;screen0.
 
CALL METHOD lcl_alv-&amp;gt;set_table_for_first_display
    EXPORTING
       I_STRUCTURE_NAME = 'FLIGHTS'
    CHANGING
       IT_OUTTAB = t_flights.
 
CALL SCREEN 100.
 &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if useful....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;AK&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 12:09:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606321#M868708</guid>
      <dc:creator>ak_upadhyay</dc:creator>
      <dc:date>2008-04-02T12:09:55Z</dc:date>
    </item>
    <item>
      <title>Re: Object oriented ALV grid reports?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606322#M868709</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;In se38 there are standard oalv reports which starts with Bcalv*.&lt;/P&gt;&lt;P&gt;Try with these reports,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sindhu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 12:12:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606322#M868709</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-02T12:12:22Z</dc:date>
    </item>
    <item>
      <title>Re: Object oriented ALV grid reports?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606323#M868710</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Using two classes you can do it.&lt;/P&gt;&lt;P&gt;first create a custom container on which you will place your grid.&lt;/P&gt;&lt;P&gt;This source code will help you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: r_container type ref to cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;          r_alv_grid   type ref to cl_gui_alv_grid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;then create object of the container class&lt;/P&gt;&lt;P&gt;CREATE OBJECT r_container&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_parent = r_container&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;**Handle them&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call the method&lt;/P&gt;&lt;P&gt;CALL METHOD r_alv_grid-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_structure_name = ' Mention the name of the structure&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;it_outtab    = ' final internal table u want to pass to grid&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;you can also create a filedcatalogue using&lt;/P&gt;&lt;P&gt;DATA: it_fieldcat type lvc_t_fcat,&lt;/P&gt;&lt;P&gt;          wa_fieldcat like line of it_fieldcat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;then mention all the fields of the struture like this&lt;/P&gt;&lt;P&gt;wa_fieldcat-fieldname = 'PHONE'&lt;/P&gt;&lt;P&gt;wa_fieldcat-ref_field = 'TELEPHONE'.&lt;/P&gt;&lt;P&gt;wa_fieldcat-ref_table = 'SCUSTOM'.&lt;/P&gt;&lt;P&gt;wa_fieldcat-col_pos = 4.&lt;/P&gt;&lt;P&gt;append wa_fieldcat to it_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and pass this in the parameter of table set_table_for_first_table&lt;/P&gt;&lt;P&gt;it_fieldcatalogue = it_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Just try this.&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Khushboo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 12:14:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606323#M868710</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-02T12:14:44Z</dc:date>
    </item>
    <item>
      <title>Re: Object oriented ALV grid reports?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606324#M868711</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;Please refer to the SAP standard demo programs BCALV*.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sriram Ponna.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 12:22:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606324#M868711</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-02T12:22:43Z</dc:date>
    </item>
    <item>
      <title>Re: Object oriented ALV grid reports?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606325#M868712</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;Go to SE38 in the menu bar go to Environment-&amp;gt;examples-&amp;gt;control examples.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In SE38 try BCALV*&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;Suman&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 12:27:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/object-oriented-alv-grid-reports/m-p/3606325#M868712</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-02T12:27:21Z</dc:date>
    </item>
  </channel>
</rss>

