You are on page 1of 3

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

*& Report ZLP_JOIN_FAE_EKKO_EKPO


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

REPORT zlp_join_fae_ekko_ekpo.

*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

* TABLES
*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

TABLES : ekko.

*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

* SELECTION SCREEN
*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETER : p_rb1 RADIOBUTTON GROUP rg,


p_rb2 RADIOBUTTON GROUP rg.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.


SELECT-OPTIONS : s_ebeln FOR ekko-ebeln.
SELECTION-SCREEN END OF BLOCK b2.

*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

* INTERNAL TABLES
*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

TYPES : BEGIN OF t_purdoc,

ebeln TYPE ebeln,


bukrs TYPE bukrs,
ekorg TYPE ekorg,
lifnr TYPE elifn,

ebelp TYPE ebelp,


matnr TYPE matnr,
menge TYPE bstmg,

END OF t_purdoc.

TYPES : BEGIN OF t_ekko,


ebeln TYPE ebeln,
bukrs TYPE bukrs,
ekorg TYPE ekorg,
lifnr TYPE elifn,
END OF t_ekko.

TYPES : BEGIN OF t_ekpo,


ebeln TYPE ebeln,
ebelp TYPE ebelp,
matnr TYPE matnr,
menge TYPE bstmg,
END OF t_ekpo.

TYPES : tt_purdoc TYPE STANDARD TABLE OF t_purdoc,


tt_ekko TYPE STANDARD TABLE OF t_ekko,
tt_ekpo TYPE STANDARD TABLE OF t_ekpo.

*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

* DATA TYPES DECLARATION


*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

DATA : lw_purdoc TYPE t_purdoc,


lt_purdoc TYPE tt_purdoc,
lw_ekko TYPE t_ekko,
lt_ekko TYPE tt_ekko,
lw_ekpo TYPE t_ekpo,
lt_ekpo TYPE tt_ekpo.

IF p_rb1 EQ 'X' .
*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

* INNER JOIN
*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

SELECT ekko~ebeln
ekko~bukrs
ekko~ekorg
ekko~lifnr

ekpo~ebelp
ekpo~matnr
ekpo~menge
INTO TABLE lt_purdoc
FROM ekko INNER JOIN ekpo
ON ekko~ebeln = ekpo~ebeln
WHERE ekko~ebeln IN s_ebeln.

ELSE.

*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

* JOINING TABLES USING FOR ALL ENTRIES


*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

SELECT
ebeln
bukrs
ekorg
lifnr
FROM ekko
INTO TABLE lt_ekko
WHERE ebeln IN s_ebeln.

IF NOT lt_ekko IS INITIAL.


SELECT
ebeln
ebelp
matnr
menge
FROM ekpo
INTO TABLE lt_ekpo
FOR ALL ENTRIES IN lt_purdoc
WHERE ebeln = lt_purdoc-ebeln.

IF NOT lt_ekpo IS INITIAL.


LOOP AT lt_ekpo INTO lw_ekpo.
READ TABLE lt_ekko INTO lw_ekko WITH KEY ebeln = lw_ekpo-ebeln.
CHECK sy-subrc EQ 0.
lw_purdoc-ebeln = lw_ekko-ebeln.
lw_purdoc-bukrs = lw_ekko-bukrs.
lw_purdoc-ekorg = lw_ekko-ekorg.
lw_purdoc-lifnr = lw_ekko-lifnr.

lw_purdoc-ebelp = lw_ekpo-ebelp.
lw_purdoc-matnr = lw_ekpo-matnr.
lw_purdoc-menge = lw_ekpo-menge.

APPEND lw_purdoc TO lt_purdoc.


CLEAR lw_purdoc.
ENDLOOP.
ENDIF.
ENDIF.

ENDIF. "Endif for Radio Button Option

*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

* DISPLAYING DATA IF ANY


*_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

IF NOT lt_purdoc IS INITIAL.


LOOP AT lt_purdoc INTO lw_purdoc.
WRITE : / lw_purdoc-ebeln, lw_purdoc-bukrs, lw_purdoc-ekorg, lw_purdoc-lifnr,
lw_purdoc-ebelp, lw_purdoc-matnr, lw_purdoc-menge.

CLEAR lw_purdoc.
ENDLOOP.
ELSE.
WRITE : / ' No Data found'.
ENDIF.

You might also like