Académique Documents
Professionnel Documents
Culture Documents
Class : A Class is a user defined data type with attributes methods types and events for a particular entity or business scenario or business application Class creation is of 2 steps: CLASS CL_CLASSNAME DEFINITION.
ENDCLASS.
CLASS CL_CLASSNAME IMPLEMENTATION. ENDCLASS.
OBJECTS Objects are instances of classes. Each object has a unique identity i.e. memory and its own attributes.
Components of a Class
Components of a Class : Attributes:- Any data variables), constants declared within a class are called as attributes of the class.
Methods:- Methods contain a block of code, providing some functionality for a class.
These are similar to function modules in ABAP.
Events:Events are like actions performed by the user. Each event must be linked to a method for writing the corresponding business logic for the action/event raised by the user . Interfaces:-
exist separately for each instance (object) of the class are called as instance components, that means for each object, instance components will be available separately. These are referred using the symbol .
Visibility of Components
Each class component has a visibility. In ABAP Objects, the whole class definition is separated into three visibility sections: PUBLIC PROTECTED PRIVATE.
Public section: Data declared in public section can be accessed by the class itself, by its subclasses as well as by other users outside the class. Protected section: Data declared in the protected section can be accessed by the class itself, and also by its subclasses but not by external users outside the class. Private Section: Data declared in the private section can be accessed by the class only, but not by its subclasses and by external users outside the class.
Global Class and Local Class: Classes in ABAP Objects can be declared either globally or locally. Global Class: Global classes and interfaces are defined in the Class Builder (Transaction SE24) in the ABAP Workbench. All of the ABAP programs in an R/3 System can access the global classes
Local Class: Local classes are define in an ABAP program (Transaction SE38) and can only be used in the program in which they are defined.
Ex on Class
Steps to create a class:Go to SE24 Give the class name ZCL_sample. Click on create Provide short description. Click on save button Go to attributes tab, define an attribute as below V_name instancepublictypechar25. Save and activate.
Creating Objects
Creating instance or objects for the class:. Creation of objects is of 2 steps. 1. First declare a variable for an object or instance. Syntax :-<objname> Type ref to <class name>. Eg1:- OBJ1 type ref to ZCL_sample. Eg2:-OBJ2 type ref to ZCL_sample. 2. Next, instantiate/create copy for the object. Syntax: create object <object name> Eg1:- create object obj1
Accessing or calling class components:To call any class component with the instance, use the below Syntax. Syntax: <Objname> <class-component name>
Static variables
Steps: Go to se24 Give the class name as ZCL_SAMPLE. Click on change button. Click on attributes tab Declare a static variable as below.
Write the program as below. Data : obj1 type ref to zcl_sample . Data : obj2 type ref to zcl_sample . Create object obj1 . Create object obj2 . *Set a value using obj1 . Obj1 v_name2 = `IBM INDIA HYD . *Now, Print a value using obj1&obj2 . Write : / obj1 v_name2 .
*Set a value using obj2 . Obj2 v_name2 = `TCS HYD . *Print a value using obj1&obj2 . Write : / obj1 v_name2 . Write : / obj1 v_name2 . Second way of using static members ZCL_SAMPLE => V_NAME2 = IBM INDIA . Write : / ZCL_SAMPLE => V_NAME2 .
Note All the static variables will have a global memory . If we change the static variable using object1, it will be reflect remaining objects also because all the objects will be referring to the same memory. It is always preferred to call the v using the class name.
Steps: Go to se24 Give the class name as ZCL_SAMPLE. Click on create Declare the variables/Attributes as below
Write the code as below. Create object obj1. OBJ1 Pu_name = ARJUN No error Bcoz Pu_name is variable. OBJ1 Pr_name = ARJUN Error Bcoz Pr_name is a private Variable OBJ1 Po_name = ARJUNError Bcoz Po_name is a protected variable.
Creating Methods
STEPS: Go to se24. Give the class name as ZCL_sample. Click on the methods tab. Give the method name as GET_CUST_DET GET_CUST_DETINSTANCEPUBLIC Click on the parameters button and & specify the parameters as below. IM_KUNNR IMPORTING TYPE KNA1-KUNNR. EX_KNA1 EXPORTING TYPE KNA1.
(or)
Testing the Method :Click on execute button. Click on create Instance button. All the instance members will be visible now. Click on the execute button for the method GET_CUST_DET. The output will be displayed.
The below code will be displayed automatically. Call method OBJ1 GET_CUST_DET.
EXPORTING
IM_KUNNR = P_KUNNR. IMPORTING EX_KNA1 = WA_KNA1. WRITE : / WA_KNA1-KUNNR , WA_KNA1-NAME1. SaveActivateTest it.
TABLES PARAMETER:
In the methods, we dont have any option for specifying internal tables directly.
Whereas in function modules, we have an option by name TABLE where we can specify the internal tables directly. Tables are absolute in OO-ABAP. Thats why this option is not available. If we want to use tables parameters, then we need to create a table type in data dictionary.
Go to se11.
Give the data type as zkna1_t. Click on the button create. Select table type Give short description. Give the line type as kna1 Save & activate. The table type is created
Go to se24.
Give the class name. Click on methods tab. Define a method as below. GET_CUST_LIST Instance Public Click on the parameters button. Define the parameters as below. IM_LAND1 IMPORTING TYPE KNA1-LAND1. EX_KNA1 EXPORTING TYPE ZKNA1_T.
USING USER-DEFINED TYPES IN THE CLASSES: Open the Class ZCL_Sample. Click on the TYPES Tab. Define type TY_KNA1 as below
Method GET_CUST_DETAILS
Select single * from KNA1 into corresponding fields of EX_KNA1 where KUNNR = IM_KUNNR. End Method. Save, Activate and Test it.
USING THE METHOD IN THE PROGRAM: DATA: WA_KNA1 TYPE ZCL_SAMPLE =>TY_KNA1 Bcoz TY_KNA1 is a static member. DATA: OBJ1 TYPE REF TO ZCL_SAMPLE Create object OBJ1. Parameters: P_KUNNR TYPE KNA1 KUNNR CALL METHOD OBJ1 GET_CUST_DETAILS Exporting IM _KUNNR = P_KUNNR Importing
EX_KNA1 = WA_KNA1.
WRITE:/ WA_KNA1 KUNNR, WA_KNA1 LAND1, WA_KNA1 NAME1. Save, Activate & Test it .
EVENTS IN OO ABAP
Event: Events are like actions performed by the user. Each event must be linked to a method for writing the corresponding business logic for the action/event raised by the user . 5 STEPS TO BE FOLLOWED WHEN WORKING WITH THE EVENTS: Define an event . Define a method for writing business logic for the action/event raised by the user . Link event and method and convert the method into event-handler method. Raise the event in any method implementation. Use set handler and register event handler method to a particular instance in the program.
SET HANDLER: It is the keyword which is used to register event handler method to a particular instance of class where the event is raised. For All Instances Sometimes we want to execute event handler methods not to a particular instance of class, but for all the instances of the class, then we use FOR ALL INSTANCES.
TYPES OF EVENTS
Standard Events : Events which are defined and raised by SAP are called
Standard Events Ex : Double_Click, Right_Click For these events we are suppose to create event handler methods and write the corresponding logic.
Custom Events : Events which are defined, raised and also handled by
creating event handler methods are called Custom Events . Events contain only exporting parameters which are imported by event handler methods.
Ex On Events
Click on save.
Step2: STEPS TO DEFINE A METHOD:Click on methods tab Give the method name as below . EVT_HDLER_METH instancepublic. Write the below code in the method. Write:/please enter customer number. Click on save.
Select the checkbox event handler &provide the class name and event name
Event handler for class/interface : ZCL-SAMPLE. Event : NO-KUNNR.
Click on the change button, which will convert the method into event handler method.
Endmethod.
Step5: Use set handler and register event handler method to a particular instance where the event is raised..
SYNTAX FOR SET HANDLER: SET HANDLER <event-handler method> FOR <instance> Ex:- Set handler OBJ1XYZ FOR OBJ1
Ex: Go to the program and call the method without giving any customer no.
Data: wa_kna1 type kna1. Data:obj1-type ref to zcl-sample. Create object OBJ1. Parameters: P_kunnr type kna1-kunnr. Set handler OBJ1EVT-HDLER-METH for obj1.
Call method OBJ1-GET_CUST_DET. EXPORTING Im_kunnr = P_kunnr IMPORTING Ex_kna1 = wa_kna1. Write:/wa_kna1 kunnr,wa_kna1-name1.
CONSTRUCTORS
Constructors are special type of methods. constructor methods are executed automatically whenever a object is created or Whenever a class is loaded. These methods are mainly used to set default values in a class. i.e. Used to default values to attributes. (Ex V_Werks = 0001) These are declared only in public section These methods cannot be called explicitly
Types of CONSTRUCTORS
INSTANCE CONSTRUCTORS:
These are special type of methods. constructor method is executed automatically whenever a object is created or instantiated. These methods are mainly used to set default values in a class.
EXAMPLE ON CONSTRUCTORS:
Open the class zcl_sample. Click on button constructor available at the top right corner.
Click on the parameters button & define the importing parameters . Im_kunnr---->type--kna1-kunnr. Double click on the constructor & write the code. Save and activate.
We never call the constructor method bcoz they are executed automatically whenever an object is created.
STEPS TO CREATE OBJECT:
Click on the pattern button. Select abap object patterns. Select create object & provide instance name & class name. Instance : obj1 Class : zcl_sample.
Note:
Constructor method is called for each instance created i.E.., Create 5 instances ,the constructor method is called 5 times.
STATIC CONSTRUCTORS
STATIC CONSTRUCTORS:
STATIC CONSTRUCTORS:
It is a type of constructor method. This method is executed automatically whenever a first call to the class is made. The first call can be through instance or class name. Ex: obj1--get_cust_det. Zcl_sample--v_name2. Static constructor are used to set the default values globally .i.e.,Irrespective of instances. The static constructors will not have any importing / exporting parameters . These are executed only once. The name of the static constructor is CLASS_ CONSTRUCTOR.
STEPS TO DEFINE STATIC CONSTRUCTORS: Open the class ZCL_SAMPLE. Click on the button CLASS_CONSTRUCTOR available at the top right corner. A method by name CLASS_CONSTRUCTOR will be created. Write the below code in the method. Method class_constructor Write : / endmethod. Save it & activate and Execute the abap program.
1.
Interface
Interface Interfaces are independent structure which are used in a class to extend the functionality of a class.
All the interface methods will be automatically copied to the classes in a particular class without effecting the other classes.
In all the classes,the methods names are same but the implementation will be different from one class to another class thereby achieving the concept called POLYMORPHSM. Polymorphism is implemented in the from of interface.
1.
Polymorphism
Polymorphism It is a concept by which the same method names will behave differently in different classes i.e each method will have its own implementation in different different classes but with the same name.
1.
creating an interface
Steps to create an interface: Go to SE24. Give the interface name as ZV_IF. Click on create. Select the interface radio button. Click on the method tab. Declare 2 methods as below.
Go to SE24. Give the class name as ZCL_sample. Go to the interface tab. Give the interface name as ZV_IE and Press enter. Click on the methods tab . The interface methods will be copied automatically as below ZV_IF~get _mara. ZV_IF~ get_KNA1.
Method ZV_IFN get_mara. Select single * from mara. Into corresponding fieldsof EX_mara Where mara =IM_mara. End method. Save ,active &test it. Similarly write the code for method ZV_IF~get_KNA1.
EXPORTING
IM_LAND1 = P_MATNR IMPORTING EX_MARA = WA_MARA. WRITE : / WA_MARA-MATNR, WA_MARA-MEINS.
Inheritance
Inheritance Inheritance is the concept of passing the properties of one class to another class. The class which passes the properties is called SUPER class or Parent class. The class which receives the properties is called SUB class or Child class. You can use an existing class to derive a new class. Derived class inherits the data and methods of a super class. Derived class can overwrite the existing methods also add new code.
REDIFINATION is the keyword which is used to overwrite the parent class methods with new definition.
NOTE: In oo_ABAP, we have only single inheritance. There is no multiple inheritance, But we have Multilevel inheritance
1.
Polymorphism
Polymorphism It is a concept by which the same method names will behave differently in different classes i.e each method will have its own implementation in different different classes but with the same name. Polymorphism behavior is implemented in the form of Interface Methods
Method overloading
Method Overriding.
Interface Methods : The Interface Methods can be implemented in multiple classes with same name but with diff implementation which is called as polymorphism. Method overloading : Methods with same name but different signatures i.e. imp/exp parameters is called method overloading It is not supported in OO-Abap. Method Overriding : A child class inherits the super class methods And overwrites them with extra functionality is called Method Overriding. Redefinition is the keyword which is used to overwrite the super class method.
Ex on Inheritance
STEP1: create a super class with a method. Create a class by name ZCL_SUPER. Remove the checkbox final because we want to inherit the class in a child class
Define a method by name Get_material_data with in_matnr and ex_mara as parameters. Write the belowcode in the method. Method get_material_data. Select single * from mara into corresponding fields of ex_mara Where matnr = im_matnr
End method.
Save,active the class.
Step2: Create child class Go to SE24. Give the class name as ZCL_CHILD.
Click on save. The method Get_material_Data will be copied automatically as it is a super class method.
Using Child Class In the Program DATA : OBJ type Ref to ZCL_CHLD. DATA : Wa_mara type mara. DATA : Wa_makt type makt. PARAMETERS : P_matnr type mara_matnr. Create object OBJ. Call method OBJGet material_Data. Exporting. Im_matnr = P_matnr.
Importing
Ex_mara = wa_mara.
*Display material master data Write: / wa_mara-matnr, Wa_mara-mtart, Wa_mara-meins . *Display description Data Write : / OBJwa_makt_matnr, OBJwa_makt_spras, OBJwa_makt_maktx
Abstract class
Abstract class It is a class which contains methods with implementation as well as methods without implementation .
(or)
Abstract class is a class which contains at least one abstract method Abstract method :-
steps to define an Abstract class :Goto SE24 Give class by name ZCL_ ABSTRACT . Click on Create Remove the checkbox final as below.
Define the method by name Get_mara_data with Im_mara as importing parameter and Ex_mara as exporting parameter. Double click on the method and write the code.
Create another method by name Get_kna1_data with Im_kunnr as importing parameter and Ex_kna1 as parameters . Put the cursor on the method Get_kna1_data , Click on the detail view button as below
Steps: Go to SE24 Give class by name ZCL_ ABSTRACT_CHILD . Click on Create Click on create Inheritance button Give the super class name as ZCL_ ABSTRACT. The super class methods will be automatically copied . Select the abstract method Get_kna1_data and click on the Redefine button and write the abap code.
Select single *from kna1 Into wa_kna1 where kunnr = im_kunnr. Using abstract classes in programs :Note :- create an object to the child class as we cannot create the objects to the abstract class .
LOCAL CLASS
LOCAL CLASS : Defining a class inside a program is called local class Class creation is of 2 steps: CLASS CL_CLASSNAME DEFINITION. ENDCLASS. CLASS CL_CLASSNAME IMPLEMENTATION. ENDCLASS.
USING PUBLIC,PROTECTED,PRIVATE VISIBILITY: Syntax : CLASS CL_CLASSNAME DEFINITION. Public-section . DATA : CLASS-DATA METHODS: CLASS-METHODS EVENTS CLASS-EVENTS Protected-section . DATA : CLASS-DATA METHODS: CLASS-METHODS EVENTS CLASS-EVENTS
USING EVENTS IN LOCAL CLASSES: 1.Syntax to Define an Event CLASS lcl_sample DEFINITION. PUBLIC SECTION. EVENTS : <EVENTNAME>. END CLASS.
Example:
2.Syntax to Define event handler method CLASS lcl_sample DEFINITION. METHODS : <EVENT HANDLER METH> FOR EVENT <EVENTNAME> OF <CLASSNAME> END CLASS
USING INHERITANCE IN LOCAL CLASS CLASS <superclassname> DEFINITION. METHODS : <Methodname> END CLASS.
CLASS <childclassname> DEFINITION INHERITING ROM <SUPERCLASS>. METHODS : <Methodname> REDIFINATION END CLASS.
DEFINATION DEFERRED : It is the keyword which indicates the class definition is delayed or postponed or Defined at some place in program. Syntax : CLASS <Classname> DEFINITION DEFERED.
CONSTRUCTORS
Introduction: The ALV grid data is displayed on an UI element called as custom container.
Advantages of OO ALV : We have n no of events available in the classes when compared to ALV with function modules which gives flexibility for the programmer to develop ALVS for various scenarios. We can display more than one ALV grid data on a single screen. The ALV grid data is displayed in the form of custom container with which we can control the size of ALV grid Whereas we cannot control the size of the ALV with function Modules. We can also place different UI elements like checkbox, Radiobutton on the same screen in addition ALV grid data.
Most commonly used classes are : CL_GUI_ALV_Grid CL_GUI_CUSTOM_CONTAINER CL_dd_document CL_GUI_ALV_tree_simple CL_GUI_container CL_GUI_splitter_container.
The most commonly used method to display ALV grid data is, SET_TABLE_FOR_FIRST_DISPLAY.
1.
STEP2 : Create screen 100. START-OF-SELECTION . CALL SCREEN 100.Double click on 100 and create a screen
STEP3:Goto screen layout and drag and drop a custom container. Give the name as ALV_CONT. STEP4:Click on flow-logic and create the PBO Module and write the below code .
MODULE STATUS_0100 OUTPUT. PERFORM CREATE_OBJECTS. PERFORM GET_DATA. PERFORM DISPLAY_ALV . ENDMODULE. STEP5 : Define each subroutine as below: FORM CREATE_OBJECTS . CREATE OBJECT ALV_CONT EXPORTING CONTAINER_NAME = 'ALV_CONT'. CREATE OBJECT ALV_GRID EXPORTING
I_PARENT = ALV_CONT.
Endform.
FORM GET_DATA . SELECT * FROM MARA INTO TABLE I_MARA UP TO 100 ROWS
ENDFORM.
FORM DISPLAY_ALV . CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY EXPORTING I_STRUCTURE_NAME = 'MARA' CHANGING IT_OUTTAB = I_MARA.
ENDFORM.
Save->activate->test it.
1.
Same steps as previous program with additional changes as below. STEP1: Create data declarations for ALV/custom container. TYPES : BEGIN OF ty_mara, matnr TYPE mara-matnr, mtart TYPE mara-mtart, mbrsh TYPE mara-mbrsh, meins TYPE mara-meins, END OF ty_mara. DATA : i_mara TYPE TABLE OF ty_mara . DATA : wa_mara TYPE ty_mara . DATA : alv_cont TYPE REF TO cl_gui_custom_container.
STEP2 : Create screen 100. STEP3: Design screen with custom container STEP4:Click on flow-logic and create the PBO Module and write below code
MODULE STATUS_0100 OUTPUT.
PERFORM CREATE_OBJECTS.
PERFORM GET_DATA.
PERFORM create_fcat . PERFORM DISPLAY_ALV .
ENDMODULE.
STEP5 : Define each subroutine as previous program . Define field catalog subroutine as below: FORM create_fcat . CLEAR wa_fcat . wa_fcat-col_pos = '1' . wa_fcat-fieldname = 'MATNR' . wa_fcat-tabname = 'I_MARA' . wa_fcat-SCRTEXT_M = 'Material No' .
Finally display ALV with fieldcatelog instead of structure. FORM display_alv . CALL METHOD alv_grid->set_table_for_first_display CHANGING it_outtab = i_mara
INTERACTIVE ALV
Introduction :
For Interactive ALVS, We have the event DOUBLE_CLICK in class CL_GUI_ALV_GRID. For this event, we need to define a event handler method. So, to define a event handler method, we need to define a LOCAL CLASS as below.
The E_ROW contains the importing parameters. E_ROW-INDEX gives the index or row no where double click event is raised. Using this we can write our own logic
*SECONADARY LIST
DATA : alv_cont2 TYPE REF TO cl_gui_custom_container. DATA : alv_grid2 TYPE REF TO cl_gui_alv_grid . DATA : i_fcat2 TYPE lvc_t_fcat . DATA : wa_fcat2 LIKE LINE OF i_fcat . DATA : obj TYPE REF TO lcl_event_handler .
STEP2 : Define a local class and its implementation. STEP3: Define and implement EVENT HANDLER method. CLASS lcl_event_handler DEFINITION . PUBLIC SECTION . METHODS : handle_double_click FOR EVENT double_click OF cl_gui_alv_grid IMPORTING e_row. ENDCLASS . CLASS lcl_event_handler IMPLEMENTATION. METHOD handle_double_click . ENDMTHOD. ENDCLASS.
STEP4 : Create screen 100. STEP3: Design screen with custom container STEP4:Click on flow-logic and create the PBO Module and write below code
MODULE STATUS_0100 OUTPUT.
PERFORM CREATE_OBJECTS. PERFORM GET_DATA. PERFORM create_fcat . PERFORM DISPLAY_ALV . CREATE OBJECT OBJ. create object for local class SET HANDLER obj->handle_double_click FOR alv_grid . use set handler
ENDMODULE.
Screen 200. Create screen 200. Place a custom container by name ALV_CONT2. Write the below code in PBO of screen 200.
Perform create_object2.
Perform create_Fcat2 Perform Display_ALV2
FORM create_objects2 .
IF alv_cont2 is initial .
CREATE OBJECT alv_cont2 EXPORTING container_name = 'ALV_CONT2. CREATE OBJECT alv_grid2 EXPORTING i_parent = alv_cont2. Endif. ENDFORM.
FORM create_fcat2 .
If
I_FCAT IS INTIAL .
CLEAR wa_fcat2 . wa_fcat2-col_pos = '1' . wa_fcat2-fieldname = 'MATNR' . wa_fcat2-tabname = 'I_MAKT' . wa_fcat2-scrtext_m = 'Material No' . APPEND wa_fcat2 TO i_fcat2 . ENDIF. ENDFORM
FORM display_alv2 .
CALL METHOD alv_grid2->set_table_for_first_display CHANGING it_outtab = i_makt
STEP1: Create data declarations for ALV/custom container, also define object or local class. STEP2 : Define a local class and its implementation. STEP3: Define and implement EVENT HANDLER method. STEP4 : Create screen 100. STEP5: Design screen with 2 custom containers by name ALV_CONT1 & ALV_CONT2. STEP6: Click on flow-logic and create the PBO Module and write below code
IF ALV_CONT1 IS INITIAL. PERFORM CREATE_OBJECTS. PERFORM GET_DATA. PERFORM CREATE_CAT1 . PERFORM DISPLAY_ALV1 . CREATE OBJECT OBJ. create object for local class SET HANDLER obj->handle_double_click FOR alv_grid . use set handler ELSE. PERFORM CREATE_OBJECTS2. PERFORM CREATE_FCAT2. PERFORM DISPLAY_ALV2. ENDIF.
CL-DD-DOCUMENT : It is the class used to display logo & top-of-page. Below are the commonly used methods : Add - picture New line Add gap Add text Display document Steps : STEP1 :Upload logo into SAP document server using OAER Tcode. STEP2: Create data declaration STEP3 : Create a screen 0100 STEP4: Place to custom containers by names LOGO & ALV_CONT
STEP5: Write the bellow code in pbo PERFORM CREATE_OBJECTS. PERFORM GET_DATA. PERFORM CREATE_FCAT . PERFORM DISP_LOGO. PERFORM DISPLAY_ALV1 .
FORM DISP_LOGO . DATA : HEADING TYPE SDYDO_ATTRIBUTE . CALL METHOD DD->ADD_PICTURE EXPORTING PICTURE_ID = 'ARJU' .
HEADING = CL_DD_DOCUMENT=>HEADING . CALL METHOD DD->ADD_TEXT EXPORTING TEXT = 'MATERIAL MASTER REPORT' = HEADING .
SAP_STYLE
FINAL:It is a keyword which specifies weather inheritance is possible or not. If FINAL option is selected, we cannot create inheritance (or) the class cannot be inherited. If FINAL option is not selected, we can create inheritance.
FRIENDS:By default , the child class cannot access the private variables of a SUPER class.
It can access only PUBLIC&PROTECTED variables. FRIEND is a concept which is used to access the PRIVATE variables of a SUPER class. So, To access the PRIVATE variables of a super class, the SUPER class has to treat the child as a friend. To do this, go to the super class Go to FRIENDS tab Enter child class name press Enter. From now onwards the child class can access the PRIVATE variables of a SUPER class.
Steps for using FRIEND concept:Go to Super class ZCL_SUPER. Create a private variable. PR_NAMEINSTANCEPRIVATETYPECHAR20. Go to FRIENDS Tab. Give child class name as ZCL_CHILD. Save & activate. Go to child class ZCL_CHILD. Create a method by name Friend_Method. Write the below code. DATA: obj type REF TO ZCL_SUPER. CREATE OBJECT obj. ObjPR_NAME = IBM INDIA. WRITE :/ objPR_NAME. Save , activate & test it.
Create a ABAP program & write the below code. DATA: obj type REF TO ZCL_CHILD. CRATE OBJECT obj. Call method obj Friend_Method. Save ,activate & test it. ALIASES:It is used to provide the alternative name for the interface methods.
Interview Questions
Interview questions:
What is a class?how do u create What is an object? how do u create What do u mean by attributes and methods?Any real time ex? What is the diff b/w instance and static comp?how do u access them?Explain?
Interview questions:
What is an event handler method?explain syntax? What is set handler? please explain syntax? How do u raise an event? Explain the concept of events?any real time ex? What is a constructor and types? Why do we use construcors? Ay real time ex? What is the diff b/w instance and static construcor? Can we define importing and exp parameters for constructors? Which constructor I s executed first? What is an Inteface?any real time ex?
Interview questions:
What is polymorphism? How do we use interfaces in classes? What is aliases? What is inheritance?explain syntax? What is super? What is redifination? Do w have multiple inheritance and mulit level inheritance? What is an abstract class? Can we create an object to abstract class? If no,then how? What is FINAL?
Interview questions:
Can we access private variables of super class? If yes how?? Did you work on OOPS ALV? If yes explain? What are the advantages of OO ALVS? What are the classes in OO ALVS? What are the methods? What is custom container? What is a fieldcatelog? Did u work on interactive ALV? I f yes explain the procedure? Also explain the procedure of interactive ALV using FMS? Can we display 2 grids on a single screen, If yes how? How did u display logo/top of page in OOALV and normal ALV?
SPLITTER CONTAINER
STEP1: Create data declarations for CL_GUI_CUSTOM_CONTAINER. CL_GUI_SPLITTER_CONTAINER. CL_GUI_CONTAINER. CL_GUI_ALV_GRID. STEP2 : Create screen 100. STEP3: Design screen with custom container by name MAIN_CONT MODULE STATUS_0100 OUTPUT. STEP4:Click on flow-logic and create the PBO Module and write below code PERFORM CREATE_OBJECTS. PERFORM SPLIT_MAIN_CONT. PERFORM DISP_ALV1 . PERFORM DISP_ALV2. ENDMODULE.
STEP1 : DATA : O_CC TYPE REF TO cl_gui_custom_container . DATA : O_PART1 TYPE REF TO CL_GUI_CONTAINER. DATA : O_PART2 TYPE REF TO CL_GUI_CONTAINER. DATA : O_SC TYPE REF TO CL_GUI_SPLITTER_CONTAINER. DATA : O_GRID1 TYPE REF TO CL_GUI_ALV_GRID . DATA : O_GRID2 TYPE REF TO CL_GUI_ALV_GRID . DATA : I_MARA TYPE TABLE OF MARA . DATA : I_MAKT TYPE TABLE OF MAKT . STEP2 : START-OF-SELECTION . CALL SCREEN 0300.
STEP3:
Design screen with custom container by name MAIN_CONT
STEP4: Click on flow-logic and create the PBO Module and write below code module STATUS_0300 output. * SET PF-STATUS 'xxxxxxxx'. * SET TITLEBAR 'xxx'. PERFORM CREATE_OBJECTS. PERFORM SPLIT_MAIN_CONT. PERFORM DISP_ALV1. PERFORM DISP_ALV2. endmodule. form CREATE_OBJECTS . CREATE OBJECT o_cc EXPORTING container_name = 'MAIN_CONT'. endform.
form SPLIT_MAIN_CONT . CREATE OBJECT o_sc EXPORTING parent = O_CC rows = 2 columns = 1 CALL METHOD o_sc->get_container EXPORTING row =1 column = 1 RECEIVING container = O_PART1 CALL METHOD o_sc->get_container EXPORTING row =2 column = 1 RECEIVING container = O_PART2 endform.
form DISP_ALV1 . CREATE OBJECT o_grid1 EXPORTING i_parent = O_PART1 . SELECT * FROM MARA INTO TABLE I_MARA UP TO 100 ROWS . CALL METHOD o_grid1->set_table_for_first_display EXPORTING i_structure_name = 'MARA' CHANGING it_outtab = I_MARA . endform.
form DISP_ALV2 . CREATE OBJECT o_grid2 EXPORTING i_parent = O_PART2 . SELECT * FROM MAKT INTO TABLE I_MAKT UP TO 100 ROWS .
STEP1: data : o_tree type ref to cl_gui_alv_tree_simple . data : o_cc type ref to cl_gui_custom_container . data : i_fcat type lvc_t_fcat . data : wa_fcat like line of i_fcat . data : i_sort type lvc_t_sort . data : wa_sort like line of i_sort . data : i_bseg type table of bseg . data : wa_bseg type bseg . STEP2: Create screen 100. start-of-selection . call screen 100.
STEP3: Design screen with custom container with name as TREE STEP4: Click on flow-logic and create the PBO Module and write below code MODULE status_0100 OUTPUT. * SET PF-STATUS 'xxxxxxxx'. * SET TITLEBAR 'xxx'. PERFORM create_objects . PERFORM get_data. PERFORM create_fcat . PERFORM calc_subtotals . PERFORM display_tree . ENDMODULE.
FORM create_objects . CREATE OBJECT o_cc EXPORTING container_name = 'TREE' . CREATE OBJECT o_tree EXPORTING i_parent = o_cc . ENDFORM.
FORM get_data . SELECT * FROM bseg INTO TABLE i_bseg UP TO 100 ROWS . ENDFORM.
FORM create_fcat . CALL FUNCTION 'LVC_FIELDCATALOG_MERGE' EXPORTING i_structure_name = 'BSEG' CHANGING ct_fieldcat = i_fcat. LOOP AT i_fcat INTO wa_fcat . CASE wa_fcat-fieldname . WHEN 'DMBTR' . wa_fcat-do_sum = 'X' . ENDCASE . MODIFY i_fcat FROM wa_fcat INDEX sy-tabix . ENDLOOP . ENDFORM.
FORM calc_subtotals . wa_sort-spos = '1' . wa_sort-fieldname = 'BUKRS' . wa_sort-up = 'X' . wa_sort-subtot = 'X' . APPEND wa_sort TO i_sort . wa_sort-spos = '2' . wa_sort-fieldname = 'BELNR' . wa_sort-up = 'X' . wa_sort-subtot = 'X' . APPEND wa_sort TO i_sort . wa_sort-spos = '3' . wa_sort-fieldname = 'GJAHR' . wa_sort-up = 'X' . APPEND wa_sort TO i_sort . ENDFORM.
FORM display_tree . CALL METHOD o_tree->set_table_for_first_display CHANGING it_outtab = i_bseg it_fieldcatalog = i_fcat it_sort = i_sort. CALL METHOD o_tree->expand_tree EXPORTING i_level = '1'. ENDFORM.
.THANK YOU