Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Can anyone guide me for *Object Oriented programming in ABAP*

Former Member
0 Likes
1,128

Hi Guru's,

I am new to Object oriented programming. I need to work on OOP's using ALV anyone provide me the guidence and also the material.

Thanks in Advance.

Hi Guru's,

I am new to Object oriented programming. I need to work on OOP's using ALV anyone provide me the guidence and also the material.

Thanks in Advance.

8 REPLIES 8
Read only

Former Member
0 Likes
1,092

Hi!

Check the wiki section of SDN. You'll get lots of material on ABAP OBJECTS, ALVs.

You can check my sample code. Here I have created an ALV using ABAP OBJECT concept. Before executing this program create a screen


REPORT  z_alv1.

DATA:
  w_carrid TYPE sflight-carrid,
  w_connid TYPE sflight-connid.

DATA:
  r_cont TYPE REF TO cl_gui_custom_container,
  r_grid TYPE REF TO cl_gui_alv_grid.

DATA:
  t_fieldcat TYPE lvc_t_fcat,
  fs_fieldcat LIKE LINE OF t_fieldcat.

TYPES:
  BEGIN OF types_flight,
    carrid   TYPE sflight-carrid,
    connid   TYPE sflight-connid,
    fldate   TYPE sflight-fldate,
    price    TYPE sflight-price,
    currency TYPE sflight-currency,
  END OF types_flight.

DATA:
  fs_flight TYPE types_flight,
  t_flight LIKE
     TABLE OF
           fs_flight.

SELECT-OPTIONS:
  s_carrid FOR w_carrid,
  s_connid FOR w_connid.


START-OF-SELECTION.

  PERFORM get_data.
  CALL SCREEN '0100'.

*&---------------------------------------------------------------------
*
*&      Form  get_data
*&---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------
*
FORM get_data .
  SELECT carrid
         connid
         fldate
         price
         currency
    FROM sflight
    INTO TABLE t_flight
   WHERE carrid IN s_carrid
     AND connid IN s_connid.


ENDFORM.                    " get_data
*&---------------------------------------------------------------------
*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS1'.
  SET TITLEBAR 'TITLE1'.
ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------
*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
MODULE user_command_0100 INPUT.

  CASE sy-ucomm.
    WHEN 'BACK'.
      LEAVE TO SCREEN '0'.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------
*
*&      Module  alv_grid  OUTPUT
*&---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
MODULE alv_grid OUTPUT.
  CREATE OBJECT r_cont
    EXPORTING

      container_name              = 'CONTAINER_1'
    EXCEPTIONS
      OTHERS                      = 6
      .
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  CREATE OBJECT r_grid
    EXPORTING
      i_parent          = r_cont
    EXCEPTIONS
      OTHERS            = 5
      .
  IF sy-subrc NE 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

  PERFORM build_fieldcat.

  CALL METHOD r_grid->set_table_for_first_display
    CHANGING
      it_outtab                     = t_flight
      it_fieldcatalog               = t_fieldcat
*      IT_SORT                       =
*      IT_FILTER                     =
    EXCEPTIONS
      OTHERS                        = 4
          .
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDMODULE.                 " alv_grid  OUTPUT
*&---------------------------------------------------------------------
*
*&      Form  build_fieldcat
*&---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------
*
FORM build_fieldcat .
  fs_fieldcat-fieldname = 'CARRID'.
  fs_fieldcat-tabname   = 'T_FLIGHT'.
  fs_fieldcat-scrtext_m = 'Airline Carrier ID'.
  APPEND fs_fieldcat TO t_fieldcat.

  CLEAR fs_fieldcat.
  fs_fieldcat-fieldname = 'CONNID'.
  fs_fieldcat-tabname   = 'T_FLIGHT'.
  fs_fieldcat-lzero     = ''.
  fs_fieldcat-scrtext_m = 'Flight Conn ID'.
  APPEND fs_fieldcat TO t_fieldcat.

  CLEAR fs_fieldcat.
  fs_fieldcat-fieldname = 'FLDATE'.
  fs_fieldcat-tabname   = 'T_FLIGHT'.
  fs_fieldcat-scrtext_m = 'Flight Date'.
  APPEND fs_fieldcat TO t_fieldcat.

  CLEAR fs_fieldcat.
  fs_fieldcat-fieldname = 'PRICE'.
  fs_fieldcat-tabname   = 'T_FLIGHT'.
  fs_fieldcat-scrtext_m = 'Price'.
  APPEND fs_fieldcat TO t_fieldcat.

  CLEAR fs_fieldcat.
  fs_fieldcat-fieldname = 'CURRENCY'.
  fs_fieldcat-tabname   = 'T_FLIGHT'.
  fs_fieldcat-scrtext_m = 'Currency'.
  APPEND fs_fieldcat TO t_fieldcat.

ENDFORM.                    " build_fieldcat

Regards

Abhijeet

Read only

Former Member
0 Likes
1,092
Read only

Former Member
0 Likes
1,092

Hi,

The main advantages of OOABAP is :

1. Ensapulation - data hiding .

2. Polymorphism - changing the method process in different classes.

3. Inheritance - adding the functionality of one class(super Class) to another. (subclass).

REPORT ZCLASS_FIRST.

----


  • CLASS c_counter DEFINITION

----


*

----


CLASS C_COUNTER DEFINITION.

PUBLIC SECTION.

*instance method declaration

METHODS: SET_COUNTER IMPORTING VALUE(SET_VALUE) TYPE I,

GET_COUNTER EXPORTING VALUE(GET_VALUE) TYPE I.

*static method declaration

CLASS-METHODS : INCREMENT_COUNTER.

PRIVATE SECTION.

*static variable declaration

CLASS-DATA COUNT TYPE I.

ENDCLASS. "c_counter DEFINITION

----


  • CLASS c_counter IMPLEMENTATION

----


*

----


CLASS C_COUNTER IMPLEMENTATION.

*instance method implement

METHOD SET_COUNTER.

COUNT = SET_VALUE.

ENDMETHOD. "set_counter

*static method implement

METHOD INCREMENT_COUNTER.

ADD 1 TO COUNT.

ENDMETHOD. "increment_counter

*instance method implement

METHOD GET_COUNTER.

GET_VALUE = COUNT .

ENDMETHOD. "get_counter

ENDCLASS. "c_counter IMPLEMENTATION

*actual program start

START-OF-SELECTION.

  • creating an referance variable

DATA : C_COUNT_REF TYPE REF TO C_COUNTER.

  • creating an object based on referance variable.

CREATE OBJECT C_COUNT_REF.

*data declaration

DATA : TEMP1 TYPE I VALUE 100,

TEMP2 TYPE I .

*instance method calling

CALL METHOD C_COUNT_REF->SET_COUNTER

EXPORTING

SET_VALUE = TEMP1.

WRITE : TEMP1.

*static method calling

DO 10 TIMES.

CALL METHOD c_counter=>INCREMENT_COUNTER.

ENDDO.

*instance method calling

CALL METHOD C_COUNT_REF->GET_COUNTER

IMPORTING

GET_VALUE = TEMP2.

WRITE 😕 'Total value is:',TEMP2.

Goo through this Example U can get some basic idea of OOABAP...

I hope help full

Raghunath.S

Read only

Former Member
0 Likes
1,092

refer to the link below for Object Oriented ALV:

http://sap.niraj.tripod.com/id64.html

With luck,

Pritam.

Read only

Former Member
0 Likes
1,092

Praveen,

Just refer:

[Please|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b6cae890-0201-0010-ef8b-f970a9c41d47]

[Try to use|https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1606] [original link is broken] [original link is broken] [original link is broken];

[SDN search option|;

Read only

pokrakam
Active Contributor
0 Likes
1,092

That'll be enough link farms. Thread locked.