inheritance example

Upload: debesh-swain

Post on 03-Apr-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/28/2019 Inheritance Example

    1/3

    Code Snippet for Inheritance

    By Debesh Page 1

    *&---------------------------------------------------------------------*

    *& Report YTEST_OOP_INHERITANCE_DEMO

    *& Example on Inheritance

    *&---------------------------------------------------------------------*

    *& By Debesh

    *& Date 29/05/2013*&---------------------------------------------------------------------*

    REPORT ytest_oop_inheritance_demo.

    TABLES: vbak.

    SELECT-OPTIONS :s_vbeln FOR vbak-vbeln.

    *----------------------------------------------------------------------*

    * CLASS lcl_sales DEFINITION

    *----------------------------------------------------------------------*

    *

    *----------------------------------------------------------------------*CLASS lcl_sales DEFINITION.

    PUBLIC SECTION.

    CLASS-METHODS: class_constructor .

    PROTECTED SECTION.

    TYPES : BEGIN OF ty_header,

    vbeln TYPE vbeln_va,

    netwr TYPE netwr_ak,

    waerk TYPE waerk,

    vtweg TYPE vtweg,

    spart TYPE spart,END OF ty_header,

    BEGIN OF ty_item,

    vbeln TYPE vbeln_va,

    posnr TYPE posnr_va,

    matnr TYPE matnr,

    netwr TYPE netwr_ap,

    ntgew TYPE ntgew_ap,

    END OF ty_item.

    CLASS-DATA : gt_sales_header TYPE TABLE OF ty_header,

    gt_sales_item TYPE TABLE OF ty_item.

    ENDCLASS. "lcl_sales DEFINITION

    *----------------------------------------------------------------------*

    * CLASS lcl_delivery DEFINITION

    *----------------------------------------------------------------------*

    *

    *----------------------------------------------------------------------*

    CLASS lcl_delivery DEFINITION INHERITING FROM lcl_sales.

  • 7/28/2019 Inheritance Example

    2/3

    Code Snippet for Inheritance

    By Debesh Page 2

    PUBLIC SECTION.

    METHODS : met_delivery,

    met_display.

    PRIVATE SECTION.

    TYPES : BEGIN OF ty_delivery,

    vbeln TYPE vbeln_vl,posnr TYPE posnr_vl,

    matnr TYPE matnr,

    werks TYPE werks_d,

    lgort TYPE lgort_d,

    ntgew TYPE ntgew_15,

    vgpos TYPE vgpos,

    vgbel TYPE vgbel,

    END OF ty_delivery.

    DATA : gt_delivery TYPE STANDARD TABLE OF ty_delivery,

    gs_delivery TYPE ty_delivery.

    ENDCLASS. "lcl_delivery DEFINITION*----------------------------------------------------------------------*

    * CLASS lcl_sales IMPLEMENTATION

    *----------------------------------------------------------------------*

    *

    *----------------------------------------------------------------------*

    CLASS lcl_sales IMPLEMENTATION.

    METHOD class_constructor.

    SELECT * FROM vbak INTO CORRESPONDING FIELDS OF TABLE gt_sales_header

    WHERE vbeln IN s_vbeln.

    IF sy-subrc IS INITIAL.

    SELECT * FROM vbap INTO CORRESPONDING FIELDS OF TABLE gt_sales_itemFOR ALL ENTRIES IN gt_sales_header

    WHERE vbeln = gt_sales_header-vbeln.

    ENDIF.

    ENDMETHOD. "class_constructor

    ENDCLASS. "lcl_sales IMPLEMENTATION

    *----------------------------------------------------------------------*

    * CLASS lcl_delivery IMPLEMENTATION

    *----------------------------------------------------------------------*

    *

    *----------------------------------------------------------------------*

    CLASS lcl_delivery IMPLEMENTATION.

    METHOD met_delivery.

    SELECT * FROM lips INTO CORRESPONDING FIELDS OF TABLE gt_delivery

    FOR ALL ENTRIES IN lcl_sales=>gt_sales_item

    WHERE vgbel = lcl_sales=>gt_sales_item-vbeln

    AND vgpos = lcl_sales=>gt_sales_item-posnr.

    ENDMETHOD. "met_delivery

    METHOD met_display.

  • 7/28/2019 Inheritance Example

    3/3

    Code Snippet for Inheritance

    By Debesh Page 3

    WRITE : 2 'Doc No', 12 'Item No', 22 'Plant' , 32 'Material' , 42 'Storage', 57 'weight'.

    NEW-LINE.

    ULINE 2(69).

    LOOP AT gt_delivery INTO gs_delivery.

    NEW-LINE.

    WRITE : 2 gs_delivery-vbeln, 12 gs_delivery-posnr, 22 gs_delivery-werks,32 gs_delivery-matnr,42 gs_delivery-lgort,45 gs_delivery-ntgew.

    ENDLOOP.

    ENDMETHOD. "met_display

    ENDCLASS. "lcl_delivery IMPLEMENTATION

    DATA : lo_delivery TYPE REF TO lcl_delivery.

    START-OF-SELECTION.

    CREATE OBJECT lo_delivery.

    CALL METHOD lo_delivery->met_delivery.

    CALL METHOD lo_delivery->met_display.

    OUTPUT