Local multiple inheritance using parameters.

 1. Goto SE38.

2. Give program name and click on create.

3. Give description and select type executable program.

4. Write code.

REPORT zab_rp_mi_local.

DATAlv_erzet TYPE erzet,
      lv_erdat TYPE erdat,
      lv_vbtyp TYPE vbtyp,
      lv_ernam TYPE ernam.
PARAMETERSp_vbeln TYPE vbeln.
PARAMETERSp_r1 TYPE RADIOBUTTON GROUP g1,
            p_r2 TYPE RADIOBUTTON GROUP g1.

INTERFACE if_sale.

  METHODS sale
    IMPORTING pvbeln TYPE vbeln
    EXPORTING perzet TYPE erzet
              perdat TYPE erdat
              pvbtyp TYPE vbtyp
              pernam TYPE ernam.
ENDINTERFACE.

INTERFACE
 if_delivery.

  METHODS delivery
    IMPORTING pvbeln TYPE vbeln
    EXPORTING perzet TYPE erzet
              perdat TYPE erdat
              pvbtyp TYPE vbtyp
              pernam TYPE ernam.
ENDINTERFACE.

CLASS
 sale_del DEFINITION.
  PUBLIC SECTION.
    INTERFACES if_sale.
    INTERFACES if_delivery.
ENDCLASS.
CLASS
 sale_del IMPLEMENTATION.
  METHOD if_sale~sale.
    SELECT SINGLE erzet
            erdat
            vbtyp
            ernam
            FROM vbak
            INTO perzet,perdatpvbtyppernam )
            WHERE vbeln EQ p_vbeln.
  ENDMETHOD.

  METHOD if_delivery~delivery.
    SELECT SINGLE erzet
            erdat
            vbtyp
            ernam
            FROM likp
            INTO perzet,perdatpvbtyppernam )
            WHERE vbeln EQ p_vbeln.
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  DATAobj TYPE REF TO sale_del.
  CREATE OBJECT obj.
  IF p_r1 'X'.

    obj->if_sale~sale(
      EXPORTING
        pvbeln p_vbeln
      IMPORTING
        perzet lv_erzet
        perdat lv_erdat
        pvbtyp lv_vbtyp
        pernam lv_ernam
    ).
    WRITE'Sale order details'/ p_vbeln ,
                                / lv_erzet,
                                / lv_erdat,
                                / lv_vbtyp,
                                / lv_ernam.
  ELSEIF p_r2 'X'.

    obj->if_delivery~delivery(
      EXPORTING
        pvbeln p_vbeln
      IMPORTING
        perzet lv_erzet
        perdat lv_erdat
        pvbtyp lv_vbtyp
        pernam lv_ernam
    ).
    WRITE'Delivery order details'/ p_vbeln ,
                                / lv_erzet,
                                / lv_erdat,
                                / lv_vbtyp,
                                / lv_ernam.

  ENDIF.

Case1- Sale

    * Input

    * Output



Case2- Delivery

    * Input

   * Output



****************************Thank you ****************************

Comments

Popular posts from this blog

New syntax for append- VALUE (new syntax 7.4+) in ABAP

Read statement new syntax in ABAP. (7.4+).

Concatenation new syntax( 7.4+ ).