Sap Technology‎ > ‎ABAP DEVELOPMENT‎ > ‎

ABAP Sample Code : Overview of Stock Issue and Receive vs Billed Quatity by Storage Location

posted Apr 17, 2011, 7:19 PM by Sap Team   [ updated Apr 17, 2011, 7:21 PM ]
REPORT Z_SUM_01 LINE-SIZE 160 LINE-COUNT 44 NO STANDARD PAGE HEADING .
INCLUDE Z_SUM_TOP.
SET MARGIN 5.
DATA  BEGIN OF wa_zm01,
           WERKS TYPE ZM01-WERKS,
           LGORT TYPE ZM01-LGORT,
           MATNR TYPE ZM01-MATNR,
           MBLNR TYPE ZM01-MBLNR,
           ZEILE TYPE ZM01-ZEILE,
           BUDAT TYPE ZM01-BUDAT,
           LGNUM TYPE ZM01-LGNUM,
           CHARG TYPE ZM01-CHARG,
           SHKZG TYPE ZM01-SHKZG,
           MENGE TYPE ZM01-MENGE,
        END OF wa_zm01.
DATA  itab_zm01 LIKE SORTED TABLE OF wa_zm01 WITH UNIQUE KEY TABLE LINE."  WITH UNIQUE KEY LGORT MBLNR ZEILE.

DATA  begin of itab1 occurs ,
          WERKS LIKE MSEG-WERKS,  "Plant
          LGORT LIKE MSEG-LGORT,  "Storage
          MATNR LIKE MSEG-MATNR , "Material
          v_input LIKE MSEG-MENGE , " Return 602
          v_output LIKE MSEG-MENGE , " Issue 601
          v_total LIKE MSEG-MENGE  , "Net Lot
        end of itab1  .

*DATA  : tab1 LIKE STANDARD TABLE OF itab1 INITIAL SIZE 33.

SELECTION-SCREEN BEGIN OF BLOCK block1.
PARAMETERS:  pPlant LIKE MSEG-WERKS obligatory VALUE CHECK,
             FROMDATE LIKE BSIS-BUDAT obligatory,
             TODATE LIKE BSIS-BUDAT.

SELECTION-SCREEN END OF BLOCK block1.
PERFORM WriteHeader.
PERFORM Initialize .
*Select LGORT MATNR MBLNR ZEILE MENGE From ZM01 INTO CORRESPONDING FIELDS OF TABLE itab_zm01
Select From ZM01 INTO CORRESPONDING FIELDS OF TABLE itab_zm01
  Where WERKS = pPlant AND ( BUDAT GE FROMDATE ) and ( BUDAT LE TODATE ).
DATA :  t_input LIKE MSEG-MENGE , " Return 602
        t_output LIKE MSEG-MENGE . " Issue 601

 Loop at itab_zm01 into wa_zm01.
    AT NEW LGORT.
      WRITE: / 'Plan:', wa_zm01-LGORT.
      ULINE.
    ENDAT.
        AT NEW MATNR.
          WRITE: / 'Material:', wa_zm01-MATNR.
        ENDAT.
        AT END OF MATNR.
          itab1-LGORT = wa_zm01-LGORT.
          itab1-MATNR = wa_zm01-MATNR.
          t_input  = t_input + itab1-v_input.
          t_output = t_output + itab1-v_output.
          append itab1.
          clear itab1.
        ENDAT.
    AT END OF LGORT.
          itab1-LGORT = wa_zm01-LGORT.
          itab1-MATNR = '********'.
          itab1-v_output = t_output.
          itab1-v_input = t_input.
          append itab1.
          clear itab1.
          clear t_input.
          clear t_output.
    ENDAT.

    IF ( wa_zm01-SHKZG = 'H' ).
        itab1-v_output = itab1-v_output + wa_zm01-MENGE .
    ELSE.
        itab1-v_input = itab1-v_input + wa_zm01-MENGE .
    ENDIF.

    "WRITE : / wa_zm01-LGORT , wa_zm01-MATNR ,wa_zm01-MBLNR ,wa_zm01-ZEILE,wa_zm01-MENGE.

 Endloop.

 Loop at itab1.
    Write : / itab1-LGORT , itab1-MATNR , itab1-v_input ,itab1-v_output.
 Endloop.

*SELECT * FROM MSEG INTO wa_mseg
*   WHERE WERKS EQ pPlant ." and ( BUDAT GE FROMDATE ) and ( BUDAT LE TODATE ).
*
*ENDSELECT.

*PERFORM UpdateReport .

*PERFORM WriteReport.
PERFORM TEST.


FORM INITIALIZE .
  Clear itab_zm01.
  Clear itab1.
ENDFORM.                    " INITIALIZE
*&---------------------------------------------------------------------*
*&      Form  TEST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM TEST .
 Loop at itab_zm01 into wa_zm01.

 Endloop.
ENDFORM.                    " TEST
*&---------------------------------------------------------------------*
*&      Form  UPDATEREPORT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM UPDATEREPORT .
"Lưu chuyển tiền thuần từ hoạt động kinh doanh

ENDFORM.                    " UPDATEREPORT
*&---------------------------------------------------------------------*
*&      Form  WRITEHEADER
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM WRITEHEADER .
  "FORMAT INTENSIFIED COLOR = 2.
  WRITE : /5(100) 'SUMMARY OF STOCK AND MONEY' COLOR COL_HEADING INTENSIFIED OFF INVERSE.
  ULINE.


ENDFORM.                    " WRITEHEADER

FORM WRITEREPORT.

*  FORMAT INTENSIFIED COLOR = 1.
  WRITE : /5(85) '' ,90(10) '(70)' , 100(30) ''  LEFT-JUSTIFIED , 130(30) LEFT-JUSTIFIED.

ENDFORM.                    " WRITEREPORT
Comments