You are on page 1of 4

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

*& Report ZLP_JOIN_FAE_LIKP_LIPS


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

REPORT zlp_join_fae_likp_lips.

TABLES : likp.

TYPES : BEGIN OF t_likp,


vbeln TYPE vbeln_vl, "Document Number
vkorg TYPE vkorg, "Sales Organisation
lfart TYPE lfart, "Delivery Type
lfdat TYPE lfdat_v, "Delivery Date
kunnr TYPE kunwe, "Shipped to Party
END OF t_likp.

TYPES : BEGIN OF t_lips,


vbeln TYPE vbeln_vl, "Delivery Number
posnr TYPE posnr_vl, "Delivery Item
matnr TYPE matnr, "Material Number
lfimg TYPE lfimg, "Actual Quantity Delivered
meins TYPE meins, "Base Unit of Measure
ntgew TYPE ntgew_15, "Net Weight
arktx TYPE arktx, "short text for sales order item
mtart TYPE mtart, "Material type
END OF t_lips.

TYPES : BEGIN OF t_mara,


matnr TYPE matnr, "Material Number
mbrsh TYPE mbrsh, "Industry Sector
spart TYPE spart, "Division
END OF t_mara.

TYPES : BEGIN OF t_final,


vbeln TYPE vbeln_vl, "Document Number
vkorg TYPE vkorg, "Sales Organisation
lfart TYPE lfart, "Delivery Type
lfdat TYPE lfdat_v, "Delivery Date
kunnr TYPE kunwe, "Shipped to Party

posnr TYPE posnr_vl, "Delivery Item


matnr TYPE matnr, "Material Number
mtart TYPE mtart, "Material type
lfimg TYPE lfimg, "Actual Quantity Delivered
meins TYPE meins, "Base Unit of Measure
ntgew TYPE ntgew_15, "Net Weight
arktx TYPE arktx, "short text for sales order item

mbrsh TYPE mbrsh, "Industry Sector


spart TYPE spart, "Division

END OF t_final.
TYPES : tt_likp TYPE STANDARD TABLE OF t_likp,
tt_lips TYPE STANDARD TABLE OF t_lips,
tt_mara TYPE STANDARD TABLE OF t_mara,
tt_final TYPE STANDARD TABLE OF t_final.

DATA : lw_likp TYPE t_likp,


lt_likp TYPE tt_likp,
lw_lips TYPE t_lips,
lt_lips TYPE tt_lips,
lw_mara TYPE t_mara,
lt_mara TYPE tt_mara,
lw_final TYPE t_final,
lt_final TYPE tt_final.

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


SELECT-OPTIONS : s_vbeln FOR likp-vbeln.
SELECTION-SCREEN END OF BLOCK b1.

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

PARAMETER : rb_join RADIOBUTTON GROUP rg,


rb_fae RADIOBUTTON GROUP rg.

SELECTION-SCREEN END OF BLOCK b2.

* Fetch data and joining three tables.

IF rb_join EQ 'X'.
SELECT
likp~vbeln
vkorg
lfart
lfdat
kunnr
posnr
matnr
mtart
lfimg
meins
lips~ntgew
arktx
INTO TABLE lt_final
FROM likp INNER JOIN lips
ON likp~vbeln = lips~vbeln
WHERE likp~vbeln IN s_vbeln.

SELECT
matnr
mbrsh
spart
INTO TABLE lt_mara
FROM mara
FOR ALL ENTRIES IN lt_final
WHERE matnr = lt_final-matnr.

IF NOT lt_mara IS INITIAL.


LOOP AT lt_final INTO lw_final.
READ TABLE lt_mara INTO lw_mara WITH KEY matnr = lw_final-matnr.
CHECK sy-subrc EQ 0.
MOVE-CORRESPONDING : lw_mara TO lw_final.
MODIFY lt_final FROM lw_final TRANSPORTING mbrsh spart.
CLEAR lw_final.
ENDLOOP.
ENDIF.

ELSE.

SELECT
vbeln
vkorg
lfart
lfdat
kunnr
INTO TABLE lt_likp
FROM likp
WHERE vbeln IN s_vbeln.

SELECT
vbeln
posnr
matnr
lfimg
meins
ntgew
arktx
mtart
FROM lips
INTO TABLE lt_lips
FOR ALL ENTRIES IN lt_likp
WHERE vbeln = lt_likp-vbeln.

SELECT
matnr
mbrsh
spart
FROM mara
INTO TABLE lt_mara
FOR ALL ENTRIES IN lt_lips
WHERE matnr = lt_lips-matnr.

IF NOT lt_likp IS INITIAL.


IF NOT lt_lips IS INITIAL.
IF NOT lt_mara IS INITIAL.
LOOP AT lt_lips INTO lw_lips.
READ TABLE lt_likp INTO lw_likp WITH KEY vbeln = lw_lips-vbeln.
READ TABLE lt_mara INTO lw_mara WITH KEY matnr = lw_lips-matnr.
CHECK sy-subrc EQ 0.
MOVE-CORRESPONDING : lw_likp TO lw_final.
MOVE-CORRESPONDING : lw_lips TO lw_final.
MOVE-CORRESPONDING : lw_mara TO lw_final.
APPEND lw_final TO lt_final.
CLEAR lw_final.
ENDLOOP.
ELSE.
LOOP AT lt_lips INTO lw_lips.
READ TABLE lt_likp INTO lw_likp WITH KEY vbeln = lw_lips-vbeln.
CHECK sy-subrc EQ 0.
MOVE-CORRESPONDING : lw_likp TO lw_final.
MOVE-CORRESPONDING : lw_lips TO lw_final.
APPEND lw_final TO lt_final.
CLEAR lw_final.
ENDLOOP.
ENDIF. "Endif for lt_mara not initial
ELSE.
LOOP AT lt_likp INTO lw_likp.
MOVE-CORRESPONDING : lw_likp TO lw_final.
APPEND lw_final TO lt_final.
CLEAR lw_final.
ENDLOOP.
ENDIF. "Endif for lt_lips not initial
ELSE.
WRITE : / 'No Data Found'.
ENDIF. "Endif for likp not initial.
ENDIF. "end of If statement for Radio button option

* Display Data if any

IF NOT lt_final IS INITIAL.


LOOP AT lt_final INTO lw_final.
WRITE : /
lw_final-vbeln,
lw_final-vkorg,
lw_final-lfart,
lw_final-lfdat,
lw_final-kunnr,
lw_final-posnr,
lw_final-matnr,
lw_final-mtart,
lw_final-lfimg,
lw_final-meins,
lw_final-ntgew,
lw_final-arktx,
lw_final-mbrsh,
lw_final-spart.

CLEAR lw_final.
ENDLOOP.

ENDIF.

You might also like