inheritance example
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