Professional Documents
Culture Documents
*&---------------------------------------------------------------------
*
*& Report ZCS_01
*&
*&---------------------------------------------------------------------
*
*&
*&
*&---------------------------------------------------------------------
*
*----------------------------------------------------------------------
*
REPORT zcs_01 NO STANDARD PAGE HEADING .
*----------------------------------------------------------------------
*
INITIALIZATION.
INCLUDE zdata_declar_d01. " Include for data declaration
INCLUDE zselect_options_s01. " Include for select options
INCLUDE zcs_01_zdata_process_01f01. " Include for forms
*----------------------------------------------------------------------
*TOP-OF-PAGE.
PERFORM zdata_process_01.
*----------------------------------------------------------------------
*
START-OF-SELECTION.
PERFORM zselect_01.
*----------------------------------------------------------------------
*
END-OF-SELECTION.
PERFORM zmovedata_01.
*----------------------------------------------------------------------
*
*&---------------------------------------------------------------------
*
*& Include ZDATA_DECLAR_D01
*&---------------------------------------------------------------------
*
*----------------------------------------------------------------------
*
" TYPES DECLARATION "
*----------------------------------------------------------------------
*
TYPES: BEGIN OF ty_mard,
matnr TYPE matnr, "MATERIAL NUMBER
werks TYPE werks_d, "PLANT
lgort TYPE lgort_d, "STORAGE LOCATION
lvorm TYPE lvolg, "Flag Material for Deletion
labst TYPE labst, "UNRESTRICTED VALUE
insme TYPE insme, "STOCK IN QUALITY
einme TYPE einme, "TOTAL STOCK
speme TYPE speme, "BLOCKED STOCK
diskz TYPE diskz, "STORAGE LOCATION MRP
END OF ty_mard,
BEGIN OF ty_mara,
matnr TYPE matnr, "MATERIAL NUMBER
meins TYPE meins, "BASE UNIT
END OF ty_mara,
BEGIN OF ty_finaltab,
matnr TYPE matnr, "MATERIAL NUMBER
lgort TYPE lgort_d, "STORAGE LOCATION
werks TYPE werks_d, "PLANT
labst TYPE labst, "UNRESTRICTED VALUE
meins TYPE meins, "BASE UNIT
END OF ty_finaltab.
*----------------------------------------------------------------------
*
" DATA DECLARATION "
*----------------------------------------------------------------------
*
DATA:
d_werks TYPE marc-werks.
*----------------------------------------------------------------------
*
" INTERNAL TABLES DECLARATION "
*----------------------------------------------------------------------
*
DATA: i_mara TYPE STANDARD TABLE OF ty_mara,
i_mard TYPE STANDARD TABLE OF ty_mard ,
i_finaltab TYPE STANDARD TABLE OF ty_finaltab.
*----------------------------------------------------------------------
*
" INTERNAL TABLES DECLARATION "
*----------------------------------------------------------------------
*
DATA: wa_mard TYPE ty_mard,
wa_mara TYPE ty_mara,
wa_finaltab TYPE ty_finaltab.
*----------------------------------------------------------------------
*&---------------------------------------------------------------------
*
*& Include ZSELECT_OPTIONS_S01
*&---------------------------------------------------------------------
*
********** SELECT OPTION PARAMETER DECLARATION ***********
SELECT-OPTIONS: s_plant FOR d_werks.
DATA : l_werks TYPE werks.
AT SELECTION-SCREEN.
SELECT SINGLE werks
FROM T001W
INTO l_werks
WHERE werks IN s_plant.
IF sy-subrc <> 0.
MESSAGE id 'ZER_MSG' TYPE 'E' NUMBER 035.
ENDIF.
*----------------------------------------------------------------------
*
***INCLUDE ZCS_01_ZDATA_PROCESS_01F01 .
*----------------------------------------------------------------------
*
*&---------------------------------------------------------------------
*
*& Form ZDATA_PROCESS_01
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------
*
FORM zdata_process_01 .
WRITE: / text-001,sy-datum.
WRITE: / text-002,sy-uzeit.
WRITE: / text-003,sy-uname.
WRITE: / sy-uline(105).
WRITE: / text-004,25'|',
26 text-005,45 '|',
46 text-006,60'|',
61 text-007,75'|',
76 text-008,105'|'.
WRITE: / sy-uline(105).
ENDFORM. " ZDATA_PROCESS_01
*&---------------------------------------------------------------------
*
*& Form ZSELECT_01
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------
*
FORM zselect_01 .
SELECT matnr werks lgort lvorm labst insme einme speme diskz
FROM mard
INTO TABLE i_mard
WHERE werks IN s_plant AND lvorm = space.
IF sy-subrc = 0.
SORT i_mard BY matnr werks.
ELSE.
MESSAGE ID 'ZER_MSG' TYPE 'I' NUMBER 036.
LEAVE LIST-PROCESSING.
ENDIF.
*----------------------------------------------------------------------
*
" RETREIVING DATA FROM MARA "
*----------------------------------------------------------------------
*
IF i_mard[] IS NOT INITIAL.
SELECT matnr meins
FROM mara
INTO TABLE i_mara
FOR ALL ENTRIES IN i_mard
WHERE matnr = i_mard-matnr.
IF sy-subrc = 0.
SORT i_mara BY matnr.
ELSE.
MESSAGE ID 'ZER_MSG' TYPE 'I' NUMBER 036.
LEAVE LIST-PROCESSING.
ENDIF.
ENDIF.
ENDFORM. " ZSELECT_01
*&---------------------------------------------------------------------
*
*& Form ZMOVEDATA_01
*&---------------------------------------------------------------------
*
* text
*----------------------------------------------------------------------
*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------
*
FORM zmovedata_01 .
*----------------------------------------------------------------------
*
" MOVING DATA TO THE FINAL TABLE "
*----------------------------------------------------------------------
*
LOOP AT i_mard INTO wa_mard.
wa_finaltab-matnr = wa_mard-matnr.
wa_finaltab-lgort = wa_mard-lgort.
wa_finaltab-werks = wa_mard-werks.
wa_finaltab-labst = wa_mard-labst.
READ TABLE i_mara INTO wa_mara WITH KEY matnr = wa_mard-matnr
BINARY SEARCH.
IF sy-subrc = 0.
wa_finaltab-meins = wa_mara-meins.
ENDIF.
APPEND wa_finaltab TO i_finaltab.
CLEAR: wa_finaltab.
ENDLOOP.
LOOP AT i_finaltab INTO wa_finaltab.
WRITE: / wa_finaltab-lgort,25'|',
26 wa_finaltab-matnr,45'|',
46 wa_finaltab-meins,60'|',
61 wa_finaltab-werks,75'|',
76 wa_finaltab-labst UNIT wa_mara-meins,105'|'.
ENDLOOP.
WRITE: sy-uline(105).
ENDFORM. " ZMOVEDATA_01