Showing posts with label OOPS. Show all posts
Showing posts with label OOPS. Show all posts

Tuesday, 10 April 2012

OOPS-5

REPORT  ZO_CLASS5.

*----------------------------------------------------------------------*
*       CLASS CLASS1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS CLASS1 DEFINITION.

  PUBLIC SECTION.
    DATA: INSTDATA(25) TYPE C VALUE 'Instance Variable'.
    METHODS: INSTMET.

    CLASS-DATA: STATDATA(25) TYPE C VALUE 'Static Variable'.
    CLASS-METHODS: STATMET.

ENDCLASS.                    "CLASS1 DEFINITION

*----------------------------------------------------------------------*
*       CLASS CLASS1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS CLASS1 IMPLEMENTATION.

  METHOD INSTMET.

    WRITE:/ STATDATA, INSTDATA.

  ENDMETHOD.                    "INSTMET

  METHOD STATMET.

    WRITE:/ STATDATA.

  ENDMETHOD.                    "STATMET

ENDCLASS.                    "CLASS1 IMPLEMENTATION

START-OF-SELECTION.

  DATA: OREF TYPE REF TO CLASS1.

  CREATE OBJECT OREF.

  CALL METHOD CLASS1=>STATMET.

  CALL METHOD OREF->INSTMET.

OOPS-4







METHOD GET_MATERIAL.

  DATA: G_MATNR TYPE MARA-MATNR.

  SELECT SINGLE MATNR FROM MARA
               INTO G_MATNR
               WHERE MATNR = P_MATNR.

  IF SY-SUBRC = 0.

    SELECT MATNR
           ERNAM
           MATKL FROM MARA
                 INTO TABLE IT_MARA
                WHERE MATNR = P_MATNR.
  ELSE.

    RAISE MATERIAL_NOTFOUND.

  ENDIF.

ENDMETHOD.

REPORT  ZO_CLASS4.

PARAMETERS: P_MATNR TYPE MARA-MATNR.

TYPES: BEGIN OF T_MARA,
        MATNR LIKE MARA-MATNR,
        ERNAM LIKE MARA-ERNAM,
        MATKL LIKE MARA-MATKL,
       END OF T_MARA.

DATA: IT_MARA TYPE STANDARD TABLE OF T_MARA,
      WA_MARA LIKE LINE OF IT_MARA.

START-OF-SELECTION.

  DATA: OREF TYPE REF TO ZO_CLASS5.

  CREATE OBJECT OREF.

  CALL METHOD OREF->GET_MATERIAL
    EXPORTING
      P_MATNR           = P_MATNR
    IMPORTING
      IT_MARA           = IT_MARA
    EXCEPTIONS
      MATERIAL_NOTFOUND = 1
      OTHERS            = 2.
  IF SY-SUBRC <> 0.
    MESSAGE ID 'ZACLASS' TYPE 'I' NUMBER '000'
               WITH P_MATNR.

  ELSE.

    LOOP AT IT_MARA INTO WA_MARA.

      WRITE:/ WA_MARA-MATNR, WA_MARA-ERNAM, WA_MARA-MATKL.

    ENDLOOP.


  ENDIF.

OOPS-3

OOPS in Function Module






OOPS-2

REPORT  ZO_CLASS2.

*----------------------------------------------------------------------*
*       CLASS CLASS1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS PARENT DEFINITION.

  PUBLIC SECTION.
    DATA: VAR1(30) TYPE C VALUE 'Parent Class Public'.
    METHODS: MET1.

  PROTECTED SECTION.
    DATA: VAR2(330) TYPE C VALUE 'Parent Class Protected'.

  PRIVATE SECTION.
    DATA: VAR3(30) TYPE C VALUE 'Parent Class Private'.

ENDCLASS.                    "CLASS1 DEFINITION

*----------------------------------------------------------------------*
*       CLASS CHILD DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS CHILD DEFINITION INHERITING FROM PARENT.

  PUBLIC SECTION.
    METHODS: MET2.

ENDCLASS.                    "CHILD DEFINITION

*----------------------------------------------------------------------*
*       CLASS CLASS1 IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS PARENT IMPLEMENTATION.

  METHOD MET1.

    WRITE:/ VAR1, VAR2, VAR3.
  ENDMETHOD.                                                "MET1

ENDCLASS.                    "CLASS1 IMPLEMENTATION

*----------------------------------------------------------------------*
*       CLASS CHILD IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS CHILD IMPLEMENTATION.

  METHOD MET2.

    WRITE:/ VAR1, VAR2.

  ENDMETHOD.                                                "MET2

ENDCLASS.                    "CHILD IMPLEMENTATION

START-OF-SELECTION.

  DATA: OREF TYPE REF TO PARENT,
        ORE1 TYPE REF TO CHILD.

  CREATE OBJECT: OREF, ORE1.

  CALL METHOD OREF->MET1.
  CALL METHOD ORE1->MET2.

  WRITE:/ OREF->VAR1.

OOPS-1

REPORT  ZO_CLASS1.

*----------------------------------------------------------------------*
*       CLASS CLASS1 DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS CLASS1 DEFINITION.

  PUBLIC SECTION.
    DATA: VAR1(10) TYPE C VALUE 'Demo Class'.

  PROTECTED SECTION.
    DATA: VAR2(10) TYPE C.

  PRIVATE SECTION.
    DATA: VAR3(10) TYPE C.

ENDCLASS.                    "CLASS1 DEFINITION

START-OF-SELECTION.

  DATA: OREF TYPE REF TO CLASS1.

  CREATE OBJECT OREF.

  WRITE:/ OREF->VAR1.