You are on page 1of 3

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

*& Report ZGRASIM_REPORT_34GOODS


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

REPORT zgrasim_report_34goods.
TABLES: mseg,mkpf.
*&---------------------------------------------------------------------*
*& STRUCTURE DECLARATION
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_mseg,
mblnr TYPE mseg-mblnr,
zeile TYPE mseg-zeile,
bwart TYPE mseg-bwart,
matnr TYPE mseg-matnr,
werks TYPE mseg-werks,
menge TYPE mseg-menge,
ebeln TYPE mseg-ebeln,
END OF ty_mseg.

TYPES: BEGIN OF ty_mkpf,


mblnr TYPE mkpf-mblnr,
budat TYPE mkpf-budat,
xblnr TYPE mkpf-xblnr,
END OF ty_mkpf.

TYPES: BEGIN OF ty_ekko,


ebeln TYPE ekko-ebeln,
bedat TYPE ekko-bedat,
END OF ty_ekko.

TYPES: BEGIN OF ty_mvke,


matnr TYPE mvke-matnr,
mvgr5 TYPE mvke-mvgr5,
END OF ty_mvke.

TYPES: BEGIN OF ty_tvm5t,


spras TYPE tvm5t-spras,
mvgr5 TYPE tvm5t-mvgr5,
bezei TYPE tvm5t-bezei,
END OF ty_tvm5t.

TYPES: BEGIN OF ty_likp,


vbeln TYPE likp-vbeln,
vsbed TYPE likp-vsbed,
END OF ty_likp.

*&---------------------------------------------------------------------*
*& INTERNAL TABLE DECLARATION
*&---------------------------------------------------------------------*
DATA: it_mseg TYPE TABLE OF ty_mseg,
it_mkpf TYPE TABLE OF ty_mkpf,
it_ekko TYPE TABLE OF ty_ekko,
it_mvke TYPE TABLE OF ty_mvke,
it_tvm5t TYPE TABLE OF ty_tvm5t,
it_likp TYPE TABLE OF ty_likp.
*&---------------------------------------------------------------------*
*& SELECTION SCREEN
*&---------------------------------------------------------------------*

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


SELECT-OPTIONS:s_office FOR mseg-werks,
s_date FOR mkpf-budat,
s_matnr FOR mseg-matnr.
SELECTION-SCREEN END OF BLOCK b1.

*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*

START-OF-SELECTION.

SELECT mblnr
zeile
bwart
matnr
werks
menge
ebeln FROM mseg INTO TABLE it_mseg
WHERE matnr IN s_matnr
AND werks IN s_office
AND ( bwart = '101' OR bwart = '102' ).
IF sy-subrc EQ 0.
SORT it_mseg BY mblnr zeile.
ENDIF.

* DELETE IT_MSEG WHERE BWART <> '101' AND BWART <> '102'.
IF it_mseg IS NOT INITIAL.
SELECT mblnr
budat
xblnr FROM mkpf INTO TABLE it_mkpf
FOR ALL ENTRIES IN it_mseg
WHERE mblnr = it_mseg-mblnr
AND budat IN s_date.

SELECT ebeln
bedat FROM ekko INTO TABLE it_ekko
FOR ALL ENTRIES IN it_mseg
WHERE ebeln = it_mseg-ebeln.
IF sy-subrc EQ 0.
SORT it_ekko BY ebeln.
DELETE ADJACENT DUPLICATES FROM it_ekko COMPARING ebeln.
ENDIF.

SELECT matnr
mvgr5 FROM mvke INTO TABLE it_mvke
FOR ALL ENTRIES IN it_mseg
WHERE matnr = it_mseg-matnr.
IF sy-subrc EQ 0.
SORT it_mvke BY matnr.
ENDIF.
ENDIF.

IF it_mvke IS NOT INITIAL.


SELECT spras
mvgr5
bezei FROM tvm5t INTO TABLE it_tvm5t
FOR ALL ENTRIES IN it_mvke
WHERE mvgr5 = it_mvke-mvgr5
AND spras = 'EN'.

ENDIF.
IF it_mkpf IS NOT INITIAL.
SELECT vbeln
vsbed FROM likp INTO TABLE it_likp
FOR ALL ENTRIES IN it_mkpf
WHERE vbeln = it_mkpf-mblnr
AND ( vsbed = '01' OR vsbed = '02' OR
vsbed = '03' OR vsbed = '04' ).

ENDIF.
WRITE: 'SUNIL'.

You might also like