<?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: alv oops in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2851997#M668384</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Refer some std progs for help on it...&lt;/P&gt;&lt;P&gt;BCALVGRID* and press F4.&lt;/P&gt;&lt;P&gt;u ll get various progs as per need with comments for explanation&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 27 Sep 2007 05:14:43 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-27T05:14:43Z</dc:date>
    <item>
      <title>alv oops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2851993#M668380</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi friends, &lt;/P&gt;&lt;P&gt;          i want to develop a report with oops can any one give me the basic programming concepts and method if possible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance,&lt;/P&gt;&lt;P&gt;Sasi.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Sep 2007 04:26:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2851993#M668380</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-27T04:26:01Z</dc:date>
    </item>
    <item>
      <title>Re: alv oops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2851994#M668381</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi sasi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following example shows the object-oriented aspect of function groups in the simple case of a counter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Suppose we have a function group called COUNTER:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION-POOL COUNTER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA COUNT TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION SET_COUNTER.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Local Interface IMPORTING VALUE(SET_VALUE)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  COUNT = SET_VALUE.&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION INCREMENT_COUNTER.&lt;/P&gt;&lt;P&gt;  ADD 1 TO COUNT.&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION GET_COUNTER.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Local Interface: EXPORTING VALUE(GET_VALUE)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  GET_VALUE = COUNT.&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The function group has a global integer field COUNT, and three function modules, SET_COUNTER, INCREMENT_COUNTER, and GET_COUNTER, that work with the field. Two of the function modules have input and output parameters. These form the data interface of the function group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any ABAP program can then work with this function group. For example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA NUMBER TYPE I VALUE 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'SET_COUNTER' EXPORTING SET_VALUE = NUMBER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DO 3 TIMES.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'INCREMENT_COUNTER'.&lt;/P&gt;&lt;P&gt;ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GET_COUNTER' IMPORTING GET_VALUE = NUMBER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After this section of the program has been processed, the program variable NUMBER will have the value 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The program itself cannot access the COUNT field in the function group. Operations on this field are fully encapsulated in the function module. The program can only communicate with the function group by calling its function modules.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS C_COUNTER DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    METHODS: SET_COUNTER IMPORTING VALUE(SET_VALUE) TYPE I,&lt;/P&gt;&lt;P&gt;             INCREMENT_COUNTER,&lt;/P&gt;&lt;P&gt;             GET_COUNTER EXPORTING VALUE(GET_VALUE) TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;    DATA COUNT TYPE I.&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;CLASS C_COUNTER IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD SET_COUNTER.&lt;/P&gt;&lt;P&gt;    COUNT = SET_VALUE.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD INCREMENT_COUNTER.&lt;/P&gt;&lt;P&gt;    ADD 1 TO COUNT.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD GET_COUNTER.&lt;/P&gt;&lt;P&gt;    GET_VALUE = COUNT.&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;The class C_COUNTER contains three public methods - SET_COUNTER, INCREMENT_COUNTER, and GET_COUNTER. Each of these works with the private integer field COUNT. Two of the methods have input and output parameters. These form the data interface of the class. The field COUNT is not outwardly visible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The example in the section Working with Objects shows how you can create instances of the class C_COUNTER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Inheritance: Introductory Example &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following simple example shows the principle of inheritance within ABAP Objects. It is based on the Simple Introduction to Classes. A new class counter_ten inherits from the existing class counter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT demo_inheritance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS counter DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    METHODS: set IMPORTING value(set_value) TYPE i,&lt;/P&gt;&lt;P&gt;             increment,&lt;/P&gt;&lt;P&gt;             get EXPORTING value(get_value) TYPE i.&lt;/P&gt;&lt;P&gt;   PROTECTED SECTION . &lt;/P&gt;&lt;P&gt;    DATA count TYPE i.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS counter IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD set.&lt;/P&gt;&lt;P&gt;    count = set_value.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD increment.&lt;/P&gt;&lt;P&gt;    ADD 1 TO count.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD get.&lt;/P&gt;&lt;P&gt;    get_value = count.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS counter_ten DEFINITION INHERITING FROM counter. &lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    METHODS increment REDEFINITION . &lt;/P&gt;&lt;P&gt;    DATA count_ten.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS counter_ten IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD increment.&lt;/P&gt;&lt;P&gt;    DATA modulo TYPE I.&lt;/P&gt;&lt;P&gt;     CALL METHOD super-&amp;gt;increment . &lt;/P&gt;&lt;P&gt;    write / count.&lt;/P&gt;&lt;P&gt;    modulo = count mod 10.&lt;/P&gt;&lt;P&gt;    IF modulo = 0.&lt;/P&gt;&lt;P&gt;      count_ten = count_ten + 1.&lt;/P&gt;&lt;P&gt;      write count_ten.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: count TYPE REF TO counter,&lt;/P&gt;&lt;P&gt;      number TYPE i VALUE 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   CREATE OBJECT count TYPE counter_ten .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD count-&amp;gt;set EXPORTING set_value = number.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO 20 TIMES.&lt;/P&gt;&lt;P&gt;    CALL METHOD count-&amp;gt;increment.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The class COUNTER_TEN is derived from COUNTER. It redefines the method INCREMENT. To do this, you must change the visibility of the COUNT attribute from PRIVATE to PROTECTED. The redefined method calls the obscured method of the superclass using the pseudoreference SUPER-&amp;gt;. The redefined method is a specialization of the inherited method. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The example instantiates the subclass. The reference variable pointing to it has the type of the superclass. When the INCREMENT method is called using the superclass reference, the system executes the redefined method from the subclass. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;Interfaces - Introductory Example  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following simple example shows how you can use an interface to implement two counters that are different, but can be addressed in the same way. See also the example in the Classes section. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INTERFACE I_COUNTER.&lt;/P&gt;&lt;P&gt;  METHODS: SET_COUNTER IMPORTING VALUE(SET_VALUE) TYPE I,&lt;/P&gt;&lt;P&gt;           INCREMENT_COUNTER,&lt;/P&gt;&lt;P&gt;           GET_COUNTER EXPORTING VALUE(GET_VALUE) TYPE I.&lt;/P&gt;&lt;P&gt;ENDINTERFACE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS C_COUNTER1 DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    INTERFACES I_COUNTER.&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;    DATA COUNT TYPE I.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS C_COUNTER1 IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD I_COUNTER~SET_COUNTER.&lt;/P&gt;&lt;P&gt;    COUNT = SET_VALUE.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD I_COUNTER~INCREMENT_COUNTER.&lt;/P&gt;&lt;P&gt;    ADD 1 TO COUNT.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD I_COUNTER~GET_COUNTER.&lt;/P&gt;&lt;P&gt;    GET_VALUE = COUNT.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS C_COUNTER2 DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    INTERFACES I_COUNTER.&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;    DATA COUNT TYPE I.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS C_COUNTER2 IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD I_COUNTER~SET_COUNTER.&lt;/P&gt;&lt;P&gt;    COUNT = ( SET_VALUE / 10) * 10.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD I_COUNTER~INCREMENT_COUNTER.&lt;/P&gt;&lt;P&gt;    IF COUNT GE 100.&lt;/P&gt;&lt;P&gt;      MESSAGE I042(00).&lt;/P&gt;&lt;P&gt;      COUNT = 0.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      ADD 10 TO COUNT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;  METHOD I_COUNTER~GET_COUNTER.&lt;/P&gt;&lt;P&gt;    GET_VALUE = COUNT.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The interface I_COUNTER contains three methods SET_COUNTER, INCREMENT_COUNTER, and GET_COUNTER. The classes C_COUNTER1 and C_COUNTER2 implement the interface in the public section. Both classes must implement the three interface methods in their implementation part. C_COUNTER1 is a class for counters that can have any starting value and are then increased by one. C_COUNTER2 is a class for counters that can only be increased in steps of 10. Both classes have an identical outward face. It is fully defined by the interface in both cases.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following sections explain how a user can use an interface reference to address the objects of both classes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Events: Introductory Example &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following simple example shows the principle of events within ABAP Objects. It is based on the Simple Introduction to Classes. An event critical_value is declared and triggered in class counter. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT demo_class_counter_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS counter DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    METHODS increment_counter.&lt;/P&gt;&lt;P&gt;    EVENTS  critical_value EXPORTING value(excess) TYPE i.&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;    DATA: count     TYPE i,&lt;/P&gt;&lt;P&gt;          threshold TYPE i VALUE 10.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS counter IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD increment_counter.&lt;/P&gt;&lt;P&gt;    DATA diff TYPE i.&lt;/P&gt;&lt;P&gt;    ADD 1 TO count.&lt;/P&gt;&lt;P&gt;    IF count &amp;gt; threshold.&lt;/P&gt;&lt;P&gt;      diff = count - threshold.&lt;/P&gt;&lt;P&gt;      RAISE EVENT critical_value EXPORTING excess = diff.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS handler DEFINITION.&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;    METHODS handle_excess &lt;/P&gt;&lt;P&gt;            FOR EVENT critical_value OF counter&lt;/P&gt;&lt;P&gt;            IMPORTING excess.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS handler IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;  METHOD handle_excess.&lt;/P&gt;&lt;P&gt;    WRITE: / 'Excess is', excess.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: r1 TYPE REF TO counter,&lt;/P&gt;&lt;P&gt;      h1 TYPE REF TO handler.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT: r1, h1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET HANDLER h1-&amp;gt;handle_excess FOR ALL INSTANCES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO 20 TIMES.&lt;/P&gt;&lt;P&gt;    CALL METHOD r1-&amp;gt;increment_counter.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The class COUNTER implements a counter. It triggers the event CRITICAL_VALUE when a threshold value is exceeded, and displays the difference. HANDLER can handle the exception in COUNTER. At runtime, the handler is registered for all reference variables that point to the object. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Events in ABAP Objects - Example &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following example shows how to declare, call, and handle events in ABAP Objects.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Overview&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This object works with the interactive list displayed below. Each user interaction triggers an event in ABAP Objects. The list and its data is created in the class C_LIST. There is a class STATUS for processing user actions. It triggers an event BUTTON_CLICKED in the AT USER-COMMAND event. The event is handled in the class C_LIST. It contains an object of the class C_SHIP or C_TRUCK for each line of the list. Both of these classes implement the interface I_VEHICLE. Whenever the speed of one of these objects changes, the event SPEED_CHANGE is triggered. The class C_LIST reacts to this and updates the list. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Constraints&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The ABAP statements used for list processing are not yet fully available in ABAP Objects. However, to produce a simple test output, you can use the following statements:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE [AT] /&amp;lt;offset&amp;gt;(&amp;lt;length&amp;gt;) &amp;lt;f&amp;gt; &lt;/P&gt;&lt;P&gt;ULINE &lt;/P&gt;&lt;P&gt;SKIP &lt;/P&gt;&lt;P&gt;NEW-LINE&lt;/P&gt;&lt;P&gt;Note: The behavior of formatting and interactive list functions in their current state are not guaranteed. Incompatible changes could occur in a future release.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Declarations&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This example is implemented using local interfaces and classes. Below are the declarations of the interfaces and classes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*****************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Interface and Class declarations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*****************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INTERFACE I_VEHICLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA     MAX_SPEED TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  EVENTS SPEED_CHANGE EXPORTING VALUE(NEW_SPEED) TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHODS: DRIVE,&lt;/P&gt;&lt;P&gt;           STOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDINTERFACE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS C_SHIP DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHODS CONSTRUCTOR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  INTERFACES I_VEHICLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ALIASES MAX FOR I_VEHICLE~MAX_SPEED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA SHIP_SPEED TYPE I.&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;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS C_TRUCK DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHODS CONSTRUCTOR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  INTERFACES I_VEHICLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ALIASES MAX FOR I_VEHICLE~MAX_SPEED.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA TRUCK_SPEED TYPE I.&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;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS STATUS DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   CLASS-EVENTS BUTTON_CLICKED EXPORTING VALUE(FCODE) LIKE SY-UCOMM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLASS-METHODS: CLASS_CONSTRUCTOR,&lt;/P&gt;&lt;P&gt;                USER_ACTION.&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;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS C_LIST DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHODS: FCODE_HANDLER FOR EVENT BUTTON_CLICKED OF STATUS &lt;/P&gt;&lt;P&gt;                             IMPORTING FCODE,&lt;/P&gt;&lt;P&gt;           LIST_CHANGE   FOR EVENT SPEED_CHANGE OF I_VEHICLE&lt;/P&gt;&lt;P&gt;                             IMPORTING NEW_SPEED,&lt;/P&gt;&lt;P&gt;           LIST_OUTPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ID TYPE I,&lt;/P&gt;&lt;P&gt;        REF_SHIP  TYPE REF TO C_SHIP,&lt;/P&gt;&lt;P&gt;        REF_TRUCK TYPE REF TO C_TRUCK,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        BEGIN OF LINE,&lt;/P&gt;&lt;P&gt;          ID TYPE I,&lt;/P&gt;&lt;P&gt;          FLAG,&lt;/P&gt;&lt;P&gt;          IREF  TYPE REF TO I_VEHICLE,&lt;/P&gt;&lt;P&gt;          SPEED TYPE I,&lt;/P&gt;&lt;P&gt;        END OF LINE,&lt;/P&gt;&lt;P&gt;        LIST LIKE SORTED TABLE OF LINE WITH UNIQUE KEY ID.&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;*****************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following events are declared in the example: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The instance event SPEED_CHANGE in the interface I_VEHICLE &lt;/P&gt;&lt;P&gt;The static event BUTTON_CLICKED in the class STATUS.&lt;/P&gt;&lt;P&gt;The class C_LIST contains event handler methods for both events. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that the class STATUS does not have any attributes, and therefore only works with static methods and events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Implementations&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Below are the implementations of the methods of the above classes: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*****************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Implementations&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*****************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS C_SHIP IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD CONSTRUCTOR.&lt;/P&gt;&lt;P&gt;    MAX = 30.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD I_VEHICLE~DRIVE.&lt;/P&gt;&lt;P&gt;    CHECK SHIP_SPEED &amp;lt; MAX.&lt;/P&gt;&lt;P&gt;    SHIP_SPEED = SHIP_SPEED + 10.&lt;/P&gt;&lt;P&gt;    RAISE EVENT I_VEHICLE~SPEED_CHANGE &lt;/P&gt;&lt;P&gt;                EXPORTING NEW_SPEED = SHIP_SPEED.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD I_VEHICLE~STOP.&lt;/P&gt;&lt;P&gt;    CHECK SHIP_SPEED &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    SHIP_SPEED = 0.&lt;/P&gt;&lt;P&gt;    RAISE EVENT I_VEHICLE~SPEED_CHANGE &lt;/P&gt;&lt;P&gt;                EXPORTING NEW_SPEED = SHIP_SPEED.&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;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS C_TRUCK IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD CONSTRUCTOR.&lt;/P&gt;&lt;P&gt;    MAX = 150.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD I_VEHICLE~DRIVE.&lt;/P&gt;&lt;P&gt;    CHECK TRUCK_SPEED &amp;lt; MAX.&lt;/P&gt;&lt;P&gt;    TRUCK_SPEED = TRUCK_SPEED + 50.&lt;/P&gt;&lt;P&gt;    RAISE EVENT I_VEHICLE~SPEED_CHANGE &lt;/P&gt;&lt;P&gt;                EXPORTING NEW_SPEED = TRUCK_SPEED.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD I_VEHICLE~STOP.&lt;/P&gt;&lt;P&gt;    CHECK TRUCK_SPEED &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    TRUCK_SPEED = 0.&lt;/P&gt;&lt;P&gt;    RAISE EVENT I_VEHICLE~SPEED_CHANGE &lt;/P&gt;&lt;P&gt;                EXPORTING NEW_SPEED = TRUCK_SPEED.&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;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS STATUS IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD CLASS_CONSTRUCTOR.&lt;/P&gt;&lt;P&gt;    SET PF-STATUS 'VEHICLE'.&lt;/P&gt;&lt;P&gt;    WRITE 'Click a button!'.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD USER_ACTION.&lt;/P&gt;&lt;P&gt;    RAISE EVENT BUTTON_CLICKED EXPORTING FCODE = SY-UCOMM. &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;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS C_LIST IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD FCODE_HANDLER . &lt;/P&gt;&lt;P&gt;    CLEAR LINE.&lt;/P&gt;&lt;P&gt;    CASE FCODE.&lt;/P&gt;&lt;P&gt;      WHEN 'CREA_SHIP'.&lt;/P&gt;&lt;P&gt;        ID = ID + 1.&lt;/P&gt;&lt;P&gt;        CREATE OBJECT REF_SHIP.&lt;/P&gt;&lt;P&gt;        LINE-ID = ID.&lt;/P&gt;&lt;P&gt;        LINE-FLAG = 'C'.&lt;/P&gt;&lt;P&gt;        LINE-IREF = REF_SHIP.&lt;/P&gt;&lt;P&gt;        APPEND LINE TO LIST.&lt;/P&gt;&lt;P&gt;      WHEN 'CREA_TRUCK'.&lt;/P&gt;&lt;P&gt;        ID = ID + 1.&lt;/P&gt;&lt;P&gt;        CREATE OBJECT REF_TRUCK.&lt;/P&gt;&lt;P&gt;        LINE-ID = ID.&lt;/P&gt;&lt;P&gt;        LINE-FLAG = 'T'.&lt;/P&gt;&lt;P&gt;        LINE-IREF = REF_TRUCK.&lt;/P&gt;&lt;P&gt;        APPEND LINE TO LIST.&lt;/P&gt;&lt;P&gt;      WHEN 'DRIVE'.&lt;/P&gt;&lt;P&gt;        CHECK SY-LILLI &amp;gt; 0.&lt;/P&gt;&lt;P&gt;        READ TABLE LIST INDEX SY-LILLI INTO LINE.&lt;/P&gt;&lt;P&gt;        CALL METHOD LINE-IREF-&amp;gt;DRIVE.&lt;/P&gt;&lt;P&gt;      WHEN 'STOP'.&lt;/P&gt;&lt;P&gt;        LOOP AT LIST INTO LINE.&lt;/P&gt;&lt;P&gt;          CALL METHOD LINE-IREF-&amp;gt;STOP.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;      WHEN 'CANCEL'.&lt;/P&gt;&lt;P&gt;        LEAVE PROGRAM.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;    CALL METHOD LIST_OUTPUT.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD LIST_CHANGE . &lt;/P&gt;&lt;P&gt;    LINE-SPEED = NEW_SPEED.&lt;/P&gt;&lt;P&gt;    MODIFY TABLE LIST FROM LINE.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD LIST_OUTPUT.&lt;/P&gt;&lt;P&gt;    SY-LSIND = 0.&lt;/P&gt;&lt;P&gt;    SET TITLEBAR 'TIT'.&lt;/P&gt;&lt;P&gt;    LOOP AT LIST INTO LINE.&lt;/P&gt;&lt;P&gt;      IF LINE-FLAG = 'C'.&lt;/P&gt;&lt;P&gt;        WRITE / ICON_WS_SHIP AS ICON.&lt;/P&gt;&lt;P&gt;      ELSEIF LINE-FLAG = 'T'.&lt;/P&gt;&lt;P&gt;        WRITE / ICON_WS_TRUCK AS ICON.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      WRITE: 'Speed = ', LINE-SPEED.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&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;*****************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The static method USER_ACTION of the class STATUS triggers the static event BUTTON_CLICKED. The instance methods I_VEHICLE&lt;SUB&gt;DRIVE and I_VEHICLE&lt;/SUB&gt;STOP trigger the instance event I_VEHICLE~SPEED_CHANGE in the classes C_SHIP and C_TRUCK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Using the Classes in a Program&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following program uses the above classes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT OO_EVENTS_DEMO NO STANDARD PAGE HEADING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*****************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Global data of program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*****************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA LIST TYPE REF TO C_LIST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*****************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Program events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*****************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT LIST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SET HANDLER: LIST-&amp;gt;FCODE_HANDLER,&lt;/P&gt;&lt;P&gt;              LIST-&amp;gt;LIST_CHANGE FOR ALL INSTANCES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT USER-COMMAND.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD STATUS=&amp;gt;USER_ACTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*****************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The program creates an object of the class C_LIST and registers the event handler method FCODE_HANDLER of the object for the class event BUTTON_CLICKED, and the event handler method LIST_CHANGE for the event SPEED_CHANGE of all instances that implement the interface I_VEHICLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; Gimme ur mail id. i will send more....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt; Pls reward if helpful.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Sep 2007 04:29:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2851994#M668381</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-27T04:29:49Z</dc:date>
    </item>
    <item>
      <title>Re: alv oops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2851995#M668382</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 this code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:t_mara TYPE TABLE OF mara.&lt;/P&gt;&lt;P&gt;DATA:FCAT TYPE LVC_T_FCAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:G_CONTAINER TYPE SCRFNAME VALUE 'TABC',"TABC is *container in screen 101&lt;/P&gt;&lt;P&gt;     GRID  TYPE REF TO CL_GUI_ALV_GRID,&lt;/P&gt;&lt;P&gt;     G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;set screen 101.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MODULE STATUS_0101 output.&lt;/P&gt;&lt;P&gt;  IF G_CUSTOM_CONTAINER IS INITIAL.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT G_CUSTOM_CONTAINER   "CREATING OBJECT FOR CUSTOM CONTAINER&lt;/P&gt;&lt;P&gt;           EXPORTING CONTAINER_NAME = G_CONTAINER.&lt;/P&gt;&lt;P&gt;    CREATE OBJECT GRID    "CREATING GRID IN WRKBNCH SCREEN&lt;/P&gt;&lt;P&gt;           EXPORTING I_PARENT = G_CUSTOM_CONTAINER.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        I_STRUCTURE_NAME = 'MARA'&lt;/P&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;        CT_FIELDCAT      = FCAT[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT * from mara into table t_mara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD GRID-&amp;gt;SET_TABLE_FOR_FIRST_DISPLAY&lt;/P&gt;&lt;P&gt;      CHANGING&lt;/P&gt;&lt;P&gt;        IT_FIELDCATALOG = FCAT[]&lt;/P&gt;&lt;P&gt;        IT_OUTTAB       = t_MARA.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;flow logic of screen 101:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROCESS BEFORE OUTPUT.&lt;/P&gt;&lt;P&gt; MODULE STATUS_0101.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PROCESS AFTER INPUT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;rgds,&lt;/P&gt;&lt;P&gt;bharat.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Sep 2007 04:31:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2851995#M668382</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-27T04:31:18Z</dc:date>
    </item>
    <item>
      <title>Re: alv oops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2851996#M668383</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;good&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the example codes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.erpgenie.com/abap/controls/alvgrid.htm" target="test_blank"&gt;http://www.erpgenie.com/abap/controls/alvgrid.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="3826571"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="https://www.sdn.sap.com/irj/sdn/wiki?path=/pages/viewpage.action&amp;amp;pageid=37566" target="test_blank"&gt;https://www.sdn.sap.com/irj/sdn/wiki?path=/pages/viewpage.action&amp;amp;pageid=37566&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;mrutyun^&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Sep 2007 04:52:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2851996#M668383</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-27T04:52:56Z</dc:date>
    </item>
    <item>
      <title>Re: alv oops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2851997#M668384</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Refer some std progs for help on it...&lt;/P&gt;&lt;P&gt;BCALVGRID* and press F4.&lt;/P&gt;&lt;P&gt;u ll get various progs as per need with comments for explanation&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 27 Sep 2007 05:14:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/alv-oops/m-p/2851997#M668384</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-27T05:14:43Z</dc:date>
    </item>
  </channel>
</rss>

