<?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: OOP's in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609042#M869328</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;ABAP OBJECTS which is an extension of ABAP is object oriented&lt;/P&gt;&lt;P&gt;Objects&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Objects are instances of classes. They contain data and provides services. The data forms the attributes of the object. The services are known as methods (also known as operations or functions). Typically, methods operate on private data (the attributes, or state of the object), which is only visible to the methods of the object. Thus the attributes of an object cannot be changed directly by the user, but only by the methods of the object. This guarantees the internal consistency of the object.&lt;/P&gt;&lt;P&gt;Classes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Classes describe objects. From a technical point of view, objects are runtime instances of a class. In theory, you can create any number of objects based on a single class. Each instance (object) of a class has a unique identity and its own set of values for its attributes. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In object-oriented programming, objects usually have the following properties:&lt;/P&gt;&lt;P&gt;Encapsulation.&lt;/P&gt;&lt;P&gt;Inheritance.&lt;/P&gt;&lt;P&gt;Polymorphisim.&lt;/P&gt;&lt;P&gt;Abstraction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;· Grady Booch, Object Solutions: Managing the Object-Oriented Project, Addison-Wesley Pub Co (1995), ISBN: 0805305947&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns. Elements of Reusable Object-Oriented Software, Addison-Wesley Pub Co (1998), ISBN: 0201634988&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;these are some of the best books which i can suggest for you to learn object oriented concepts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if usefull.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 31 Mar 2008 19:52:24 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-03-31T19:52:24Z</dc:date>
    <item>
      <title>OOP's</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609038#M869324</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear all,&lt;/P&gt;&lt;P&gt;When should one go for object oriented programming...Also i am new in OOPs..how should i start about it?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also can anyone tell me which books to study from ABAP certification...i know there are TAW10 and TAW12...but how to find out which are the latest releases of this books&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Mar 2008 05:57:56 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609038#M869324</guid>
      <dc:creator>rahul2000</dc:creator>
      <dc:date>2008-03-31T05:57:56Z</dc:date>
    </item>
    <item>
      <title>Re: OOP's</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609039#M869325</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;we use oops where we need to specify the data belongs to particular function.here each function will have data belonging to it.but in procedure oriented programming. u can't say which  data belongs to which function. the data is accesed globally by all functions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in oops we have&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;encapsulation: datahiding by using public, private, protected&lt;/P&gt;&lt;P&gt;polymorphism: one name many functions&lt;/P&gt;&lt;P&gt;inheritance: herte sub class gets the propertie of base class. u need not develope everything from scratch.&lt;/P&gt;&lt;P&gt;the base class can be used as reference and u can even enhance the properties of subclass&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ABAP IS PROCEDURE ORIENTED&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ABAP OBJECTS which is an extension of ABAP is object oriented&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;sreelakshmi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Mar 2008 06:09:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609039#M869325</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-31T06:09:15Z</dc:date>
    </item>
    <item>
      <title>Re: OOP's</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609040#M869326</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;What is Object Orientation? &lt;/P&gt;&lt;P&gt;In the past, information systems used to be defined primarily by their functionality: data and functions were kept separate and linked together by means of input and output relations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The object-oriented approach, however, focuses on objects that represent abstract or concrete things of the real world. These objects are first defined by their character and their properties which are represented by their internal structure and their attributes (data). The behaviour of these objects is described by methods (functionality).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Objects form a capsule which combines the character to the respective behaviour. Objects should enable programmers to map a real problem and its proposed software solution on a one-to-one basis. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Typical objects in a business environment are, for example, &amp;#145;Customer&amp;#146;, &amp;#145;Order&amp;#146;, or &amp;#145;Invoice&amp;#146;. From Release 3.1 onwards, the Business Object Repository (BOR) of SAP Web Applicaton Server ABAP has contained examples of such objects. The BOR object model will be integrated into ABAP Objects in the next Release by migrating the BOR object types to the ABAP class library.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A comprehensive introduction to object orientation as a whole would go far beyond the limits of this introduction to ABAP Objects. This documentation introduces a selection of terms that are used universally in object orientation and also occur in ABAP Objects. In subsequent sections, it goes on to discuss in more detail how these terms are used in ABAP Objects. The end of this section contains a list of further reading, with a selection of titles about object orientation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Objects&lt;/P&gt;&lt;P&gt;Objects are instances of classes. They contain data and provides services. The data forms the attributes of the object. The services are known as methods (also known as operations or functions). Typically, methods operate on private data (the attributes, or state of the object), which is only visible to the methods of the object. Thus the attributes of an object cannot be changed directly by the user, but only by the methods of the object. This guarantees the internal consistency of the object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Classes&lt;/P&gt;&lt;P&gt;Classes describe objects. From a technical point of view, objects are runtime instances of a class. In theory, you can create any number of objects based on a single class. Each instance (object) of a class has a unique identity and its own set of values for its attributes. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Object References&lt;/P&gt;&lt;P&gt;In a program, you identify and address objects using unique object references. Object references allow you to access the attributes and methods of an object.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In object-oriented programming, objects usually have the following properties:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Encapsulation&lt;/P&gt;&lt;P&gt;Objects restrict the visibility of their resources (attributes and methods) to other users. Every object has an interface, which determines how other objects can interact with it. The implementation of the object is encapsulated, that is, invisible outside the object itself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Inheritance&lt;/P&gt;&lt;P&gt;You can use an existing class to derive a new class. Derived classes inherit the data and methods of the superclass. However, they can overwrite existing methods, and also add new ones.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Polymorphism&lt;/P&gt;&lt;P&gt;Identical (identically-named) methods behave differently in different classes. In ABAP Objects, polymorphism is implemented by redefining methods during inheritance and by using constructs called interfaces. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Uses of Object Orientation&lt;/P&gt;&lt;P&gt;Below are some of the advantages of object-oriented programming:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Complex software systems become easier to understand, since object-oriented structuring provides a closer representation of reality than other programming techniques.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        In a well-designed object-oriented system, it should be possible to implement changes at class level, without having to make alterations at other points in the system. This reduces the overall amount of maintenance required.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Through polymorphism and inheritance, object-oriented programming allows you to reuse individual components.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        In an object-oriented system, the amount of work involved in revising and maintaining the system is reduced, since many problems can be detected and corrected in the design phase.  &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Achieving these goals requires:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Object-oriented programming languages&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Object-oriented programming techniques do not necessarily depend on object-oriented programming languages. However, the efficiency of object-oriented programming depends directly on how object-oriented language techniques are implemented in the system kernel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Object-oriented tools&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Object-oriented tools allow you to create object-oriented programs in object-oriented languages. They allow you to model and store development objects and the relationships between them. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Object-oriented modeling&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The object-orientation modeling of a software system is the most important, most time-consuming, and most difficult requirement for attaining the above goals. Object-oriented design involves more than just object-oriented programming, and provides logical advantages that are independent of the actual implementation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This section of the ABAP User&amp;#146;s Guide provides an overview of the object-oriented extension of the ABAP language. We have used simple examples to demonstrate how to use the new features. However, these are not intended to be a model for object-oriented design. More detailed information about each of the ABAP Objects statements is contained in the keyword documentation in the ABAP Editor. For a comprehensive introduction to object-oriented software development, you should read one or more of the titles listed below. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Further Reading&lt;/P&gt;&lt;P&gt;There are many books about object orientation, object-oriented programming languages, object-oriented analysis and design, project management for OO projects, patterns and frameworks, and so on. This is a small selection of good books covering the most important topics:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Scott Ambler, The Object Primer, SIGS Books &amp;amp; Multimedia (1996), ISBN: 1884842178&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A very good introduction to object orientation for programmers. It provides comprehensive explanations of all essential OO concepts, and contains a procedure model for learning OO quickly and thoroughly. It is easy to read and practical, but still theoretically-founded. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Grady Booch, Object Solutions: Managing the Object-Oriented Project, Addison-Wesley Pub Co (1995), ISBN: 0805305947&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A good book about all of the non-technical aspects of OO that are equally important for effective object-oriented programming. Easy to read and full of practical tips.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Martin Fowler, UML Distilled: Applying the Standard Object Modeling Language, Addison-Wesley Pub Co (1997), ISBN: 0201325632&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;An excellent book about UML (Unified Modeling Language - the new standardized OO language and notation for modeling). Assumes knowledge and experience of object orientation. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns. Elements of Reusable Object-Oriented Software, Addison-Wesley Pub Co (1998), ISBN: 0201634988&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Provides a pattern, showing how recurring design problems can be solved using objects. This is the first big pattern book, containing many examples of good OO design.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;·        James Rumbaugh, OMT Insights: Perspectives on Modeling from the Journal of Object-Oriented Programming, Prentice Hall (1996), ISBN: 0138469652&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A collection of articles addressing the many questions and problems of OO analysis and design, implementation, dependency management, and so on. Highly recommended. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Notes&lt;/P&gt;&lt;P&gt;If you are new to object-orientation, you should read Scott Ambler&amp;#146;s &amp;#145;The Object Primer&amp;#146; and then acquire some practical experience of your own. You should definitely use the CRC techniques described by Ambler and Fowler for object-oriented analysis and design. After this, you should learn UML, since this is the universal OO analysis and design notation. Finally, you should read at least one book about patterns. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At the beginning of a large OO project, the question immediately arises as to the sequence in which things should be done, which phases should be finished at what time, how to divide up and organize the development work, how to minimize risks, how to assemble a good team, and so on and so forth. Many of the best practices of project management have had to be redefined for the object-oriented world, and the opportunities that this has produced are significant. For further information about how to use OO in project management, see Grady Brooch&amp;#146;s book &amp;#145;Object solutions&amp;#146;, or the chapter entitles &amp;#145;An outline development process&amp;#146; from Martin Fowler&amp;#146;s book. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are, of course, many other good books about object orientation. The above list does not claim either to be complete, or necessarily to recommend the best books available. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&amp;amp;regards,&lt;/P&gt;&lt;P&gt;sravani&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Mar 2008 08:58:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609040#M869326</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-31T08:58:04Z</dc:date>
    </item>
    <item>
      <title>Re: OOP's</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609041#M869327</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hai.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OOPs ABAP uses Classes and Interfaces which uses Methods and events.&lt;/P&gt;&lt;P&gt;If you have Java skills it is advantage for you.&lt;/P&gt;&lt;P&gt;There are Local classes as well as Global Classes.&lt;/P&gt;&lt;P&gt;Local classes we can work in SE38 straight away.&lt;/P&gt;&lt;P&gt;But mostly it is better to use the Global classes.&lt;/P&gt;&lt;P&gt;Global Classes or Interfaces are to be created in SE24.&lt;/P&gt;&lt;P&gt;SAP already given some predefined classes and Interfaces.&lt;/P&gt;&lt;P&gt;This OOPS concepts very useful for writing BADI's also.&lt;/P&gt;&lt;P&gt;So first create a class in SE 24.&lt;/P&gt;&lt;P&gt;Define attributes, Methods for that class.&lt;/P&gt;&lt;P&gt;Define parameters for that Method.&lt;/P&gt;&lt;P&gt;You can define event handlers also to handle the messages.&lt;/P&gt;&lt;P&gt;After creation in each method write the code.&lt;/P&gt;&lt;P&gt;Methods are similar to ABAP PERFORM -FORM statements.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After the creation of CLass and methods come to SE38 and create the program.&lt;/P&gt;&lt;P&gt;In the program create a object type ref to that class and with the help of that Object call the methods of that Class and display the data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Example:&lt;/P&gt;&lt;P&gt;REPORT sapmz_hf_alv_grid .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Type pool for icons - used in the toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPE-POOLS: icon.&lt;/P&gt;&lt;P&gt;TABLES: zsflight.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To allow the declaration of o_event_receiver before the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;lcl_event_receiver class is defined, decale it as deferred in the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;start of the program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLASS lcl_event_receiver DEFINITION DEFERRED.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;G L O B A L I N T E R N A L T A B L E S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*DATA: gi_sflight TYPE STANDARD TABLE OF sflight.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To include a traffic light and/or color a line the structure of the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table must include fields for the traffic light and/or the color&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF st_sflight.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE zsflight.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Field for traffic light&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: traffic_light TYPE c.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Field for line color&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;types: line_color(4) type c.&lt;/P&gt;&lt;P&gt;TYPES: END OF st_sflight.&lt;/P&gt;&lt;P&gt;TYPES: tt_sflight TYPE STANDARD TABLE OF st_sflight.&lt;/P&gt;&lt;P&gt;DATA: gi_sflight TYPE tt_sflight.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;G L O B A L D A T A&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;DATA: ok_code LIKE sy-ucomm,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Work area for internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;g_wa_sflight TYPE st_sflight,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV control: Layout structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;gs_layout TYPE lvc_s_layo.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Declare reference variables to the ALV grid and the container&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;go_grid TYPE REF TO cl_gui_alv_grid,&lt;/P&gt;&lt;P&gt;go_custom_container TYPE REF TO cl_gui_custom_container,&lt;/P&gt;&lt;P&gt;o_event_receiver TYPE REF TO lcl_event_receiver.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Work area for screen 200&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;g_screen200 LIKE zsflight.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data for storing information about selected rows in the grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;gi_index_rows TYPE lvc_t_row,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Information about 1 row&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;g_selected_row LIKE lvc_s_row.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;C L A S S E S&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;CLASS lcl_event_receiver DEFINITION.&lt;/P&gt;&lt;P&gt;PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;METHODS:&lt;/P&gt;&lt;P&gt;handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;e_object e_interactive,&lt;/P&gt;&lt;P&gt;handle_user_command FOR EVENT user_command OF cl_gui_alv_grid&lt;/P&gt;&lt;P&gt;IMPORTING e_ucomm.&lt;/P&gt;&lt;P&gt;ENDCLASS.&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_event_receiver 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 lcl_event_receiver IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;METHOD handle_toolbar.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Event handler method for event toolbar.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONSTANTS:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants for button type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;c_button_normal TYPE i VALUE 0,&lt;/P&gt;&lt;P&gt;c_menu_and_default_button TYPE i VALUE 1,&lt;/P&gt;&lt;P&gt;c_menu TYPE i VALUE 2,&lt;/P&gt;&lt;P&gt;c_separator TYPE i VALUE 3,&lt;/P&gt;&lt;P&gt;c_radio_button TYPE i VALUE 4,&lt;/P&gt;&lt;P&gt;c_checkbox TYPE i VALUE 5,&lt;/P&gt;&lt;P&gt;c_menu_entry TYPE i VALUE 6.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;ls_toolbar TYPE stb_button.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Append seperator to the normal toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;MOVE c_separator TO ls_toolbar-butn_type..&lt;/P&gt;&lt;P&gt;APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Append a new button that to the toolbar. Use E_OBJECT of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;event toolbar. E_OBJECT is of type CL_ALV_EVENT_TOOLBAR_SET.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This class has one attribute MT_TOOLBAR which is of table type&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TTB_BUTTON. The structure is STB_BUTTON&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR ls_toolbar.&lt;/P&gt;&lt;P&gt;MOVE 'CHANGE' TO ls_toolbar-function.&lt;/P&gt;&lt;P&gt;MOVE icon_change TO ls_toolbar-icon.&lt;/P&gt;&lt;P&gt;MOVE 'Change flight' TO ls_toolbar-quickinfo.&lt;/P&gt;&lt;P&gt;MOVE 'Change' TO ls_toolbar-text.&lt;/P&gt;&lt;P&gt;MOVE ' ' TO ls_toolbar-disabled.&lt;/P&gt;&lt;P&gt;APPEND ls_toolbar TO e_object-&amp;gt;mt_toolbar.&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD handle_user_command.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Handle own functions defined in the toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CASE e_ucomm.&lt;/P&gt;&lt;P&gt;WHEN 'CHANGE'.&lt;/P&gt;&lt;P&gt;PERFORM change_flight.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LEAVE TO SCREEN 0.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;ENDCLASS.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;S T A R T - O F - S E L E C T I O N.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;SET SCREEN '100'.&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 USER_COMMAND_0100 INPUT&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 user_command_0100 INPUT.&lt;/P&gt;&lt;P&gt;CASE ok_code.&lt;/P&gt;&lt;P&gt;WHEN 'EXIT'.&lt;/P&gt;&lt;P&gt;LEAVE TO SCREEN 0.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE. " USER_COMMAND_0100 INPUT&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;P&gt;MODULE status_0100 OUTPUT.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For parameter IS_VARIANT that is sued to set up options for storing&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the grid layout as a variant in method set_table_for_first_display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;l_layout TYPE disvariant,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Utillity field&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;l_lines TYPE i.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;After returning from screen 200 the line that was selected before&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;going to screen 200, should be selected again. The table gi_index_rows&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;was the output table from the GET_SELECTED_ROWS method in form&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CHANGE_FLIGHT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DESCRIBE TABLE gi_index_rows LINES l_lines.&lt;/P&gt;&lt;P&gt;IF l_lines &amp;gt; 0.&lt;/P&gt;&lt;P&gt;CALL METHOD go_grid-&amp;gt;set_selected_rows&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;it_index_rows = gi_index_rows.&lt;/P&gt;&lt;P&gt;CALL METHOD cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;REFRESH gi_index_rows.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read data and create objects&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IF go_custom_container IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read data from datbase table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM get_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create objects for container and ALV grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CREATE OBJECT go_custom_container&lt;/P&gt;&lt;P&gt;EXPORTING container_name = 'ALV_CONTAINER'.&lt;/P&gt;&lt;P&gt;CREATE OBJECT go_grid&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_parent = go_custom_container.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create object for event_receiver class&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and set handlers&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CREATE OBJECT o_event_receiver.&lt;/P&gt;&lt;P&gt;SET HANDLER o_event_receiver-&amp;gt;handle_user_command FOR go_grid.&lt;/P&gt;&lt;P&gt;SET HANDLER o_event_receiver-&amp;gt;handle_toolbar FOR go_grid.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Layout (Variant) for ALV grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;l_layout-report = sy-repid. "Layout fo report&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Setup the grid layout using a variable of structure lvc_s_layo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set grid title&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;gs_layout-grid_title = 'Flights'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selection mode - Single row without buttons&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(This is the default mode&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;gs_layout-sel_mode = 'B'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Name of the exception field (Traffic light field) and the color&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;field + set the exception and color field of the table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;gs_layout-excp_fname = 'TRAFFIC_LIGHT'.&lt;/P&gt;&lt;P&gt;gs_layout-info_fname = 'LINE_COLOR'.&lt;/P&gt;&lt;P&gt;LOOP AT gi_sflight INTO g_wa_sflight.&lt;/P&gt;&lt;P&gt;IF g_wa_sflight-paymentsum &amp;lt; 100000.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Value of traffic light field&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;g_wa_sflight-traffic_light = '1'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Value of color field:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;C = Color, 6=Color 1=Intesified on, 0: Inverse display off&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;g_wa_sflight-line_color = 'C610'.&lt;/P&gt;&lt;P&gt;ELSEIF g_wa_sflight-paymentsum =&amp;gt; 100000 AND&lt;/P&gt;&lt;P&gt;g_wa_sflight-paymentsum &amp;lt; 1000000.&lt;/P&gt;&lt;P&gt;g_wa_sflight-traffic_light = '2'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;g_wa_sflight-traffic_light = '3'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;MODIFY gi_sflight FROM g_wa_sflight.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Grid setup for first display&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD go_grid-&amp;gt;set_table_for_first_display&lt;/P&gt;&lt;P&gt;EXPORTING i_structure_name = 'SFLIGHT'&lt;/P&gt;&lt;P&gt;is_variant = l_layout&lt;/P&gt;&lt;P&gt;i_save = 'A'&lt;/P&gt;&lt;P&gt;is_layout = gs_layout&lt;/P&gt;&lt;P&gt;CHANGING it_outtab = gi_sflight.&lt;/P&gt;&lt;P&gt;*-- End of grid setup -&lt;/P&gt;&lt;HR originaltext="------------------------------------------" /&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Raise event toolbar to show the modified toolbar&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD go_grid-&amp;gt;set_toolbar_interactive.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set focus to the grid. This is not necessary in this&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;example as there is only one control on the screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD cl_gui_control=&amp;gt;set_focus EXPORTING control = go_grid.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDMODULE. " 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;P&gt;*&amp;amp; Module USER_COMMAND_0200 INPUT&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 user_command_0200 INPUT.&lt;/P&gt;&lt;P&gt;CASE ok_code.&lt;/P&gt;&lt;P&gt;WHEN 'EXIT200'.&lt;/P&gt;&lt;P&gt;LEAVE TO SCREEN 100.&lt;/P&gt;&lt;P&gt;WHEN'SAVE'.&lt;/P&gt;&lt;P&gt;PERFORM save_changes.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;ENDMODULE. " USER_COMMAND_0200 INPUT&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 get_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read data from table SFLIGHT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECT *&lt;/P&gt;&lt;P&gt;FROM zsflight&lt;/P&gt;&lt;P&gt;INTO TABLE gi_sflight.&lt;/P&gt;&lt;P&gt;ENDFORM. " load_data_into_grid&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_flight&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;Reads the contents of the selected row in the grid, ans transfers&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the data to screen 200, where it can be changed and saved.&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_flight.&lt;/P&gt;&lt;P&gt;DATA:l_lines TYPE i.&lt;/P&gt;&lt;P&gt;REFRESH gi_index_rows.&lt;/P&gt;&lt;P&gt;CLEAR g_selected_row.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read index of selected rows&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD go_grid-&amp;gt;get_selected_rows&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;et_index_rows = gi_index_rows.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if any row are selected at all. If not&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table gi_index_rows will be empty&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DESCRIBE TABLE gi_index_rows LINES l_lines.&lt;/P&gt;&lt;P&gt;IF l_lines = 0.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;textline1 = 'You must choose a line'.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read indexes of selected rows. In this example only one&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;row can be selected as we are using gs_layout-sel_mode = 'B',&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;so it is only ncessary to read the first entry in&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;table gi_index_rows&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT gi_index_rows INTO g_selected_row.&lt;/P&gt;&lt;P&gt;IF sy-tabix = 1.&lt;/P&gt;&lt;P&gt;READ TABLE gi_sflight INDEX g_selected_row-index INTO g_wa_sflight.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Transfer data from the selected row to screenm 200 and show&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;screen 200&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR g_screen200.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING g_wa_sflight TO g_screen200.&lt;/P&gt;&lt;P&gt;LEAVE TO SCREEN '200'.&lt;/P&gt;&lt;P&gt;ENDFORM. " change_flight&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 save_changes&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;Changes made in screen 200 are written to the datbase table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;zsflight, and to the grid table gi_sflight, and the grid is&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;updated with method refresh_table_display to display the changes&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 save_changes.&lt;/P&gt;&lt;P&gt;DATA: l_traffic_light TYPE c.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Update traffic light field&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Update database table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MODIFY zsflight FROM g_screen200.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Update grid table , traffic light field and color field.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Note that it is necessary to use structure g_wa_sflight&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for the update, as the screen structure does not have a&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;traffic light field&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MOVE-CORRESPONDING g_screen200 TO g_wa_sflight.&lt;/P&gt;&lt;P&gt;IF g_wa_sflight-paymentsum &amp;lt; 100000.&lt;/P&gt;&lt;P&gt;g_wa_sflight-traffic_light = '1'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;C = Color, 6=Color 1=Intesified on, 0: Inverse display off&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;g_wa_sflight-line_color = 'C610'.&lt;/P&gt;&lt;P&gt;ELSEIF g_wa_sflight-paymentsum =&amp;gt; 100000 AND&lt;/P&gt;&lt;P&gt;g_wa_sflight-paymentsum &amp;lt; 1000000.&lt;/P&gt;&lt;P&gt;g_wa_sflight-traffic_light = '2'.&lt;/P&gt;&lt;P&gt;clear g_wa_sflight-line_color.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;g_wa_sflight-traffic_light = '3'.&lt;/P&gt;&lt;P&gt;clear g_wa_sflight-line_color.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;MODIFY gi_sflight INDEX g_selected_row-index FROM g_wa_sflight.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Refresh grid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL METHOD go_grid-&amp;gt;refresh_table_display.&lt;/P&gt;&lt;P&gt;CALL METHOD cl_gui_cfw=&amp;gt;flush.&lt;/P&gt;&lt;P&gt;LEAVE TO SCREEN '100'.&lt;/P&gt;&lt;P&gt;ENDFORM. " save_changes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;chk this blog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/people/vijaybabu.dudla/blog/2006/07/21/topofpage-in-alv-using-clguialvgrid &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards.&lt;/P&gt;&lt;P&gt;sowjanya.b&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Mar 2008 09:23:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609041#M869327</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-31T09:23:04Z</dc:date>
    </item>
    <item>
      <title>Re: OOP's</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609042#M869328</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;ABAP OBJECTS which is an extension of ABAP is object oriented&lt;/P&gt;&lt;P&gt;Objects&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Objects are instances of classes. They contain data and provides services. The data forms the attributes of the object. The services are known as methods (also known as operations or functions). Typically, methods operate on private data (the attributes, or state of the object), which is only visible to the methods of the object. Thus the attributes of an object cannot be changed directly by the user, but only by the methods of the object. This guarantees the internal consistency of the object.&lt;/P&gt;&lt;P&gt;Classes&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Classes describe objects. From a technical point of view, objects are runtime instances of a class. In theory, you can create any number of objects based on a single class. Each instance (object) of a class has a unique identity and its own set of values for its attributes. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In object-oriented programming, objects usually have the following properties:&lt;/P&gt;&lt;P&gt;Encapsulation.&lt;/P&gt;&lt;P&gt;Inheritance.&lt;/P&gt;&lt;P&gt;Polymorphisim.&lt;/P&gt;&lt;P&gt;Abstraction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;· Grady Booch, Object Solutions: Managing the Object-Oriented Project, Addison-Wesley Pub Co (1995), ISBN: 0805305947&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides, Design Patterns. Elements of Reusable Object-Oriented Software, Addison-Wesley Pub Co (1998), ISBN: 0201634988&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;these are some of the best books which i can suggest for you to learn object oriented concepts.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if usefull.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Mar 2008 19:52:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609042#M869328</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-31T19:52:24Z</dc:date>
    </item>
    <item>
      <title>Re: OOP's</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609043#M869329</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;TAW-10-----ABAP Workbench Fundamentals &lt;/P&gt;&lt;P&gt;TAW12 ABAP Workbench Concept&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF u r a new 1, then u start from taw10 and go 2 taw12....... r if u r familier with abap programming then u can directly study taw12........ taw 10 consiset 2 books taw10 1/2 and 2/2 ........taw 12 consist 3 books taw12 1/3,2/3,3/3............ but this books is useful in certification aspect only.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward if it is useful.....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Apr 2008 06:30:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/oop-s/m-p/3609043#M869329</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-02T06:30:45Z</dc:date>
    </item>
  </channel>
</rss>

