You are on page 1of 6

CLASSICAL STORAGE REPORT

*&---------------------------------------------------------------------
*
*& 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

You might also like