Reciept & consumption report

hi expert ,
              I create the receipt & consumption report but my output comes not correct as per requirement so please help me to resolve this problem..
i post my code
FORM GET_DATA .
SELECT
  A~MATNR
  A~MBLNR
  A~ERFMG
  A~BWART
  A~MENGE
  A~WERKS
  B~BUDAT
  FROM MSEG AS A
  INNER JOIN
  MKPF AS B
  ON  A~MBLNR = B~MBLNR
  AND A~MJAHR = B~MJAHR
  INTO CORRESPONDING FIELDS OF TABLE IT_MAIN
  WHERE A~MATNR IN S_MATNR
  AND  A~BWART IN ('101' ,'102','ZI1' ,'ZI2','ZC1' ,'ZC2','261' ,'262') .
  IF  SY-SUBRC = 0.
    SELECT
    MATNR
    MAKTX
    FROM MAKT
    INTO TABLE IT_MAKT
    FOR ALL ENTRIES IN IT_MAIN
    WHERE MATNR = IT_MAIN-MATNR .
    SORT IT_MAIN BY MATNR BUDAT BWART.
    LOOP AT IT_MAIN WHERE BWART = '101'
                      OR BWART = 'ZI1'
                      OR BWART = 'ZC1'.
      V_TABIX = SY-TABIX - 1.
      AT FIRST.
        IT_MAIN-QTY1 = IT_MAIN-MENGE.
        IT_MAIN-DATE1 = IT_MAIN-BUDAT.
        IT_MAIN-FLAG = 'X'.
        MODIFY IT_MAIN TRANSPORTING QTY1 DATE1 FLAG.
      ENDAT.
      ON CHANGE OF IT_MAIN-MATNR.
      IF SY-TABIX <> 1.
        IT_MAIN-QTY2 = QTY2.
        IT_MAIN-DATE2 = DATE2.
        IT_MAIN-FLAG = 'X'.
        MODIFY IT_MAIN INDEX V_TABIX TRANSPORTING QTY2 DATE2 FLAG.
        CLEAR QTY2.
        CLEAR DATE2.
        IT_MAIN-QTY1 = IT_MAIN-MENGE.
        IT_MAIN-DATE1 = IT_MAIN-BUDAT.
        IT_MAIN-FLAG = 'X'.
        MODIFY IT_MAIN TRANSPORTING QTY1 DATE1 FLAG.
      ENDIF.
      ENDON.
      AT LAST.
        IT_MAIN-QTY2 = IT_MAIN-MENGE.
        IT_MAIN-DATE2 = IT_MAIN-BUDAT.
        IT_MAIN-FLAG = 'X'.
        MODIFY IT_MAIN INDEX V_TABIX TRANSPORTING QTY2 DATE2 FLAG.
      ENDAT.
      QTY2 = IT_MAIN-MENGE.
      DATE2 = IT_MAIN-BUDAT.
    ENDLOOP.
    DELETE IT_MAIN WHERE FLAG <> 'X'.        " 1ST & LAST RECIEPT ........
************** ON CUNSUMPTION FIELD LOOP  *****************
    LOOP AT IT_MAIN WHERE BWART = '261' .
      V_TABIX = SY-TABIX - 1.
      AT FIRST.
        IT_MAIN-CMPQTY1 = IT_MAIN-MENGE.
        IT_MAIN-CMPDATE1 = IT_MAIN-BUDAT.
        IT_MAIN-FLAG = 'X'.
        MODIFY IT_MAIN TRANSPORTING CMPQTY1 CMPDATE1 FLAG.
      ENDAT.
      ON CHANGE OF IT_MAIN-MATNR.
      IF SY-TABIX <> 1.
        IT_MAIN-CMPQTY2 = CMPQTY2.
        IT_MAIN-CMPDATE2 = CMPDATE2.
        IT_MAIN-FLAG = 'X'.
        MODIFY IT_MAIN INDEX V_TABIX TRANSPORTING CMPQTY2 CMPDATE2 FLAG.
        CLEAR CMPQTY2.
        CLEAR CMPDATE2.
        IT_MAIN-CMPQTY1 = IT_MAIN-MENGE.
        IT_MAIN-CMPDATE1 = IT_MAIN-BUDAT.
        IT_MAIN-FLAG = 'X'.
        MODIFY IT_MAIN TRANSPORTING CMPQTY1 CMPDATE1 FLAG.
      ENDIF.
      ENDON.
      AT LAST.
        IT_MAIN-CMPQTY2 = IT_MAIN-MENGE.
        IT_MAIN-CMPDATE2 = IT_MAIN-BUDAT.
        IT_MAIN-FLAG = 'X'.
        MODIFY IT_MAIN INDEX V_TABIX TRANSPORTING CMPQTY2 CMPDATE2 FLAG.
      ENDAT.
      CMPQTY2 = IT_MAIN-MENGE.
      CMPDATE2 = IT_MAIN-BUDAT.
    ENDLOOP.
    DELETE IT_MAIN WHERE FLAG <> 'X'.      " 1ST & LAST CONSUMPTION  ........
  ENDIF.
**************  END OF LOOP ON CONSUMPTION FIELDS ************************
ENDFORM.

REPORT  ZSTORE_MAT NO STANDARD PAGE HEADING LINE-SIZE 200 LINE-COUNT 65  .
**** TABLE USED ***
TABLES : MSEG , MKPF , MAKT .
******* DATA DECLARATION *******
DATA : BEGIN OF IT_MAIN OCCURS 0 ,
             MATNR TYPE MSEG-MATNR,    "Material No.
             MAKTX TYPE MAKT-MAKTX,    "Material Describtion.
             BWART TYPE MSEG-BWART,    "Movement Type
             BUDAT TYPE MKPF-BUDAT,    "DATE ..
             MENGE TYPE MSEG-MENGE,    "Quantity
             DATE1 TYPE MKPF-BUDAT,    "1st rec date.
             QTY1  TYPE MSEG-MENGE,   "1st rec QTY.
             DATE2 TYPE MKPF-BUDAT,   "Last rec date.
             QTY2  TYPE MSEG-MENGE,   "LAST rec QTY.
             CMPDATE1 TYPE MKPF-BUDAT,    "1st consumption date.
             CMPQTY1  TYPE MSEG-MENGE,   "1st consumption QTY.
             CMPDATE2 TYPE MKPF-BUDAT,    "Last consumption date.
             CMPQTY2  TYPE MSEG-MENGE,   "Last consumption QTY.
             FLAG(1) TYPE C,
*             ERFME TYPE MSEG-ERFME,    "Unit
        END OF IT_MAIN.
DATA:        QTY1 TYPE MSEG-MENGE,   "1st rec QTY.
             DATE2 TYPE MKPF-BUDAT,   "Last rec date.
             QTY2  TYPE MSEG-MENGE,   "LAST rec QTY.
             CMPDATE1 TYPE MKPF-BUDAT,    "1st consumption date.
             CMPQTY1  TYPE MSEG-MENGE,   "1st consumption QTY.
             CMPDATE2 TYPE MKPF-BUDAT,    "Last consumption date.
             CMPQTY2  TYPE MSEG-MENGE.   "Last consumption QTY.
DATA : BEGIN OF IT_MSEG OCCURS 0 ,
          MATNR TYPE MSEG-MATNR, "Material No.
          MBLNR TYPE MSEG-MBLNR, "Material Document No.
          ERFMG TYPE MSEG-ERFMG, " CONS. QTY .
          BWART TYPE MSEG-BWART, "MVT TYP..
          MENGE TYPE MSEG-MENGE, " QTY ..
          WERKS TYPE MSEG-WERKS,
       END OF IT_MSEG .
*       IT_MSEG LIKE STANDARD TABLE OF WA_MSEG .
DATA : BEGIN OF IT_MAKT OCCURS 0 ,
          MATNR TYPE MAKT-MATNR,
          MAKTX TYPE MAKT-MAKTX,
END OF IT_MAKT .
DATA : BEGIN OF IT_MKPF OCCURS 0,
          MBLNR TYPE MKPF-MBLNR,    "Material Document No.
          BUDAT TYPE MKPF-BUDAT, " DATE  ...
       END OF IT_MKPF .
DATA: V_TABIX TYPE SY-TABIX.
*       IT_MKPF LIKE STANDARD TABLE OF WA_MKPF .
*** Selection screen ***
SELECTION-SCREEN BEGIN OF BLOCK BLOCK WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_MATNR FOR MSEG-MATNR   .
SELECTION-SCREEN END OF BLOCK BLOCK.
*AT SELECTION-SCREEN.
*SELECT SINGLE * FROM MSEG WHERE MATNR IN MATNR .
START-OF-SELECTION .
PERFORM GET_DATA.
END-OF-SELECTION .
PERFORM WRITE_DATA.
TOP-OF-PAGE .
   PERFORM TOP_OF_PAGE .
END-OF-PAGE.
*   PERFORM END_OF_PAGE .
FORM TOP_OF_PAGE.
  WRITE:/ 'Material', 20  'Description', 50 'frstrecdat', 70 'frstQty', 90 'Lastrecdat', 110 'lastQty',
          130 'FstCanspdate', 150'FstCnspqty',170 'Lstcanspdate',190 'Lstqty' .
ENDFORM.
FORM GET_DATA.
  SELECT
  A~MATNR
  A~MBLNR
  A~ERFMG
  A~BWART
  A~MENGE
  A~WERKS
  B~BUDAT
  FROM MSEG AS A
  INNER JOIN
  MKPF AS B
  ON A~MBLNR = B~MBLNR
  AND A~MJAHR = B~MJAHR
  INTO CORRESPONDING FIELDS OF TABLE IT_MAIN
  WHERE A~MATNR IN S_MATNR
  AND A~BWART IN ('101' ,'102','ZI1' ,'ZI2','ZC1' ,'ZC2','261' ,'262') .
  IF SY-SUBRC = 0.
   SELECT
   MATNR
   MAKTX
   FROM MAKT
   INTO TABLE IT_MAKT
   FOR ALL ENTRIES IN IT_MAIN
   WHERE MATNR = IT_MAIN-MATNR .
   SORT IT_MAIN BY MATNR BUDAT BWART.
   LOOP AT IT_MAIN WHERE BWART = '101'
                      OR BWART = 'ZI1'
                      OR BWART = 'ZC1'.
     V_TABIX = SY-TABIX - 1.
     AT FIRST.
       IT_MAIN-QTY1 = IT_MAIN-MENGE.
       IT_MAIN-DATE1 = IT_MAIN-BUDAT.
       IT_MAIN-FLAG = 'X'.
       MODIFY IT_MAIN TRANSPORTING QTY1 DATE1 FLAG.
     ENDAT.
     ON CHANGE OF IT_MAIN-MATNR.
     IF SY-TABIX <> 1.
       IT_MAIN-QTY2 = QTY2.
       IT_MAIN-DATE2 = DATE2.
       IT_MAIN-FLAG = 'X'.
       MODIFY IT_MAIN INDEX V_TABIX TRANSPORTING QTY2 DATE2 FLAG.
       CLEAR QTY2.
       CLEAR DATE2.
       IT_MAIN-QTY1 = IT_MAIN-MENGE.
       IT_MAIN-DATE1 = IT_MAIN-BUDAT.
       IT_MAIN-FLAG = 'X'.
       MODIFY IT_MAIN TRANSPORTING QTY1 DATE1 FLAG.
     ENDIF.
     ENDON.
     AT LAST.
       IT_MAIN-QTY2 = IT_MAIN-MENGE.
       IT_MAIN-DATE2 = IT_MAIN-BUDAT.
       IT_MAIN-FLAG = 'X'.
       MODIFY IT_MAIN INDEX V_TABIX TRANSPORTING QTY2 DATE2 FLAG.
     ENDAT.
     QTY2 = IT_MAIN-MENGE.
     DATE2 = IT_MAIN-BUDAT.
ENDLOOP.
   DELETE IT_MAIN WHERE FLAG <> 'X'.        " 1ST & LAST RECIEPT ........
************** ON CUNSUMPTION FIELD LOOP  *****************
    LOOP AT IT_MAIN WHERE BWART = '261' .
     V_TABIX = SY-TABIX - 1.
     AT FIRST.
IT_MAIN-CMPQTY1 = IT_MAIN-MENGE.
       IT_MAIN-CMPDATE1 = IT_MAIN-BUDAT.
       IT_MAIN-FLAG = 'X'.
       MODIFY IT_MAIN TRANSPORTING CMPQTY1 CMPDATE1 FLAG.
     ENDAT.
     ON CHANGE OF IT_MAIN-MATNR.
     IF SY-TABIX <> 1.
       IT_MAIN-CMPQTY2 = CMPQTY2.
       IT_MAIN-CMPDATE2 = CMPDATE2.
       IT_MAIN-FLAG = 'X'.
       MODIFY IT_MAIN INDEX V_TABIX TRANSPORTING CMPQTY2 CMPDATE2 FLAG.
       CLEAR CMPQTY2.
       CLEAR CMPDATE2.
       IT_MAIN-CMPQTY1 = IT_MAIN-MENGE.
IT_MAIN-CMPDATE1 = IT_MAIN-BUDAT.
       IT_MAIN-FLAG = 'X'.
       MODIFY IT_MAIN TRANSPORTING CMPQTY1 CMPDATE1 FLAG.
     ENDIF.
     ENDON.
     AT LAST.
       IT_MAIN-CMPQTY2 = IT_MAIN-MENGE.
       IT_MAIN-CMPDATE2 = IT_MAIN-BUDAT.
       IT_MAIN-FLAG = 'X'.
       MODIFY IT_MAIN INDEX V_TABIX TRANSPORTING CMPQTY2 CMPDATE2 FLAG.
     ENDAT.
     CMPQTY2 = IT_MAIN-MENGE.
     CMPDATE2 = IT_MAIN-BUDAT.
   ENDLOOP.
   DELETE IT_MAIN WHERE FLAG <> 'X'.       " 1ST & LAST CONSUMPTION  ........
  ENDIF.
**************  END OF LOOP ON CONSUMPTION FIELDS ************************
ENDFORM.
*&      Form WRITE_DATA
*       text
FORM write_data .
   LOOP AT it_main  .
     WRITE :/ it_main-matnr UNDER 'Material' , it_main-maktx UNDER 'Description' ,
              it_main-DATE1 UNDER 'frstrecdat'  , it_main-QTY1 UNDER 'frstQty',
              it_main-DATE2 UNDER 'Lastrecdat', it_main-QTY2 UNDER 'lastQty',
              it_main-CMPDATE1 UNDER 'FstCanspdate', it_main-CMPQTY1 UNDER 'FstCnspqty',
              it_main-CMPDATE2 UNDER 'Lstcanspdate', it_main-CMPQTY2 UNDER 'Lstqty'.
   ENDLOOP.
  ENDFORM .                    "WRITE_DATA

Similar Messages

  • Excess Material Consumption Report - For a Particular Period

    Hi,
    For a particular Time Period, say 30 days, I require excess material consumption report. This report is for the materials ( say ROH, or HALB) that are confirmed through co11n. Taking MTS into consideration with Strategy Group 40, please suggest a standard report (if there is any).
    Regards,
    Pavan

    The T code for viewing the standard report for
    Material Analysis - MCP5.
    Production Order - MCP3.
    Material Usage Analysis - MCRE.
    Please try it.
    Regards
    R.Brahmankar

  • Item Wise Consumption Report

    Hello Friends,
    i want to get the consumption report item wise.
    IN GL Line item display i am not getting the same and through MB51 by using Movement Type 201 and 261 is not fruitfull.
    Actly while preparing of Balance Sheet i need to give the Consumption Detail Item Wise.
    Could any one please help me out on this issue.
    Thanks
    Nitin Jindal

    Hi Nitin,
    You can develop SAP query T code SQ01 by joining Material and GL Account table to get consumption report output.
    Regards,
    Santosh

  • Material consumption report for sales made artcle wise - help urgent

    Hi Folks,
    My client need a report which consist of
    The raw material consumption report
    1. Article wise (material group)
    2. QTY
    3. Value
    4. or all sales made for foreign customers
    5. Business area
    Please help me
    Thanks
    Narasim

    Hi,
    Check COOIS report.
    It will show the consumption order wise just filter Movement type 261.
    Regards,
    Shayam

  • Material yearly consumption report

    Hi,
    I have gone through many topics on getting the yearly consumption report of material but still could not get it.
    We have just implemented SAP in our company and all transactions are being done from 1st Jan 2011. In Material Master we have added the consumption (under Forecast tab) month wise for the last four years.
    Is there a way to see a report based on that, as I would like to accumulate the data year wise and see the last four years consumption.

    Hi ,
    I would give you suggestion based on your question "Is there a way to see a report based on that, as I would like to accumulate the data year wise and see the last four years consumption."
    1st , are you using any PP related Production order ?
    This is very simple issue with movement type 261 if you are using PP.
    Since you would like to see accumulate the date year wise for last four years consumption , my suggest is based on the plan date from the last 4 years with 261 movement type for the raw material / semi finished in those order.
    Standard report
    COOIS Report - with movement type 261 based on order also possible to view.
    or
    MCRP- exact material consumption datewise or order wise.
    MC45 ,MCRE alternative report.
    For customize solution with abap,
    Please check with Table MVER -  Material Consumption , MSEG (MENGE) and S026 (ENMNG)
    Pls restrict the selection condition for material with movement type 261 in table MSEG.
    If you using MRP area, perhaps you need check in table DVER - Material Consumption for MRP Area.
    Hope is clear and can help you.
    TQ

  • Material Consumption Report

    Hi Guys,
    I have to develop a custom report intended for use by our factories and is design to give them detail  information on raw materials actual usage relative to how much should have been used (standard usage) by an individual product or product group. 
    The column of the report that is probably the most challenging to determine by taking the BOM quantities for each product in the product group under consideration and multiplying them by the actual output achieved for the respective products in order obtain the standard usage. 
    I have been looking at doing the following. Substracting the fields of txn COR3(Display process order material list), from txn CORT(Process order confirmation display: goods movement). Is this the right approach.
    Any screens, transactions, tables, structures for me to do this report would be greatly appreciated.
    Thank you for the help.
    Sumit.

    Hi,
    Have you tried looking at the standard material consumption report - Transaction MCRE?
    Rgds.

  • Consumption report for nn stockable material

    hi
    i want to see the consumption report for non stockable material like A,K,

    Hi
    Check it in MB51
    Thanks
    Regards,
    Raman

  • Demand ~ Consumption report

    Hi All,
    Is there any way I will get Demand versus Consumption report. My client wants that. But i do not know if there is any standard transaction for that.
    Client put demand as per forcasting say 10 qty for Jan . But sales order comes for 5 qty. so demand for 5 qty is still open. Next month again client will put demand for say15. The stock will increase to 20. So is there any method he can see the demand~consumption report so that he will put demand for
    15 - 5 = 10 only.
    Regards,
    Samar

    Please look into MC87..
    Hope it will definitely help..
    karthick

  • Consumption report Date to date ,Group & itemwise

    Dear Sap Expets,
    Can you please advise me that i want to make consumption report Date to date ,Group & itemwise ,in summary report (Total Qty and Value consumed).How is the possible it?
    Thanks
    mohit

    Hi,
    Use MB5B report for the same, it will give you qty & values for overall receipts and issues for certain period or else refer report MC.2
    Hope this will resolve your issue.
    Thanks & Regards,
    Sandesh Sawant

  • Consumption report showing old purcahse orders

    Hello experts,
    I am executing a consumption report. It is showing old purchase requisitions.
    I do not need them.
    How do i make it not to appear inthe report
    please advise,
    Thanks in advance
    Sanjeev

    Hi,
    Set the deletion indicator or the close indicator using ME52N.
    Regards,
    Santosh

  • Consumption report to be tallied with GL

    Hi,
    I need consumption report value to be tallied with GL account. Which report is suitable for my requirement? can any one give the report tcode?
    govind.

    Hello,
    Currently I am not infront of the system. I could not tell you the exact transaction code.
    However, go to
    SE16
    Put the table name TSTCT (Language you select EN)
    In Transaction Code field you put M* (It gives you all the transaction codes of MM)
    and Number of entries you put 99999999
    Now press Ctrl+F and find consumption
    Compare this with FS10N.
    Hope this solves your problem.
    Regards,
    Ravi

  • Consumer category-wise consumption report

    Hi all,
    Please guide me in getting consumer category-wise consumption report.
    There are 10 categories of consumers. I want to generate consumption report for these consumers.
    Thanks and Regds.,
    Vijay

    Hi,
    Not sure i followed your question completely..
    lets say that customers are classified as 'Residential' - RES
    and 'Commercial' - COM.
    For these  customers.. there will be Contract Accounts and contracts and installations associated to it.
    In the installation check the field 'Billing Class' , so based on the type whether 'RES' or 'COM' you need to hit the table ERDK to fetch the invoices for the corresponding Contract Account and
    check again the tables DBERCHZ1  to extract the consumption by passing the same invoice number(in sap the 'Print document' number -field ERDK-OPBEL).
    Based on the category selected by the user on the selection-screen either RES or COM. you can display in output report
    Hope it helps.
    Regards
    Vinay

  • How to create consumption report

    hi all
    thanks in advance
    i want to create consumption report in mm
    can u send logic and code which easy and fast for me
    please
    thanks

    Hi Anand,
    Gothrough the following codes, i think it will help you...
    Use MB51 which is a universal report for all,Use the appropriate Mvt.Type to get the consumption report
    Use tcode MB52 to get consumption report.
    Check the t-code MCSK
    Use MB5M you can get the consumption report
    use MB5B
    Reward if useful.
    Regards,
    Harish

  • Consumption Report for Production order(BOM)

    Hi All
    Is there any option to see consumption reports for any particular BOM.

    Hi Richa,
    Unfortunately there is no such a report in SBO. But you can write a report to show the consumption of BOMs using the Query Generator or Wizard. (Thus no SDK work is required).

  • Fuel Consumption Report Modification - 2

    Hi Experts
    I am working on fuel consumption modification. can anyone help me how to get max and min value for this program
    I am getting one row correct with equipment no is enter but when I enter the range of equipment no it is taking long time and the result is repeating for each row
    please correct my report
    Thnaks in advanced
    Piroz
    REPORT Z_FUEL2 LINE-SIZE  232 LINE-COUNT 75
             NO STANDARD PAGE HEADING.
    TABLES : equi,
             equz,
             imptt,
             imrg,
             eqkt,
             iloa.
    TYPES: BEGIN OF ty_equi," occurs 0,
           equnr type equi-equnr,
           END OF ty_equi.
    TYPES: BEGIN of ty_eqkt," occurs 0,
           equnr type eqkt-equnr,
           eqktx type eqkt-eqktx,
           END OF ty_eqkt.
    TYPES: BEGIN of ty_iloa ,"occurs 0,
           iloan type iloa-iloan,
           eqfnr type iloa-eqfnr,
           END OF ty_iloa.
    TYPES: BEGIN of ty_imptt," occurs 0,
           mpobj type imptt-mpobj,
           END of ty_imptt.
    TYPES: BEGIN of ty_imrg ,"occurs 0,
           idate type imrg-idate,
           recdv type imrg-recdv,
           recdu type imrg-recdu,
           END of ty_imrg.
    TYPES: BEGIN OF ty_data  ,
           equnr      type equnr,         " Euipment no
           eqktx      type eqkt-eqktx,    " Equipment Text
           eqfnr       type iloa-eqfnr,     " Equipment Sort field
           idate      type imrg-idate,    " Measuring Date
           recdu      type imrg-recdu,    " Unit of measuring ='KM','L','H'
           recdv      type imrg-recdv,    " Counter reading data
           END OF ty_data.
    TYPES: BEGIN OF ty_final,
           equnr           type equnr,            "  Equipment no
           eqktx           type eqkt-eqktx,       "  Equipment Text
           eqfnr           type iloa-eqfnr,       "  Equipment Sort field
           min_date        type imrg-idate,       "  Min Date
           min_km          type imrg-recdv,       "  Max Km
           max_date        type imrg-idate,       "  Max Date
           max_km          type imrg-recdv,       "  Min km
           t_max_min_km    type i,                "  Total min_km-max_km
           min_hr          type imrg-recdv,       "  Max hr
           max_hr          type imrg-recdv,       "  Min hr
           t_max_min_hr    type i,                "  Total min_hr-max_hr
           min_lit         type imrg-recdv,       "  Max lit
           max_lit         type imrg-recdv,       "  Min lit
           t_max_min_lit    type i,                "  Total min_lit-max_lit
           T_fuel_con        type p decimals 2,     "  Total_hrs / t_max_min_hr
           T_km_l            type p decimals 2,     "  km / L
           lit_per_hr      type i           ,     "  fuel comsumed / t_max_min_hr
           END OF ty_final.
    DATA: i_equi TYPE TABLE OF ty_equi,   "internal table
          wa_equi TYPE ty_equi, " work area
          i_eqkt TYPE TABLE OF ty_eqkt,   "internal table
          wa_eqkt TYPE ty_eqkt, " work area
          i_iloa TYPE TABLE of ty_iloa,   "internal table
          wa_iloa TYPE ty_iloa, " work area
          i_imptt TYPE TABLE of ty_imptt, "internal table
          wa_imptt TYPE ty_imptt,
          i_imrg  TYPE TABLE of ty_imrg,  "internal table
          wa_imrg TYPE ty_imrg,
          i_data TYPE TABLE OF ty_data,   "internal table
          wa_data TYPE ty_data, " work area
          i_final TYPE TABLE OF ty_final, " internal table
          wa_final TYPE ty_final. " work area
    DATA :  max_date type date ,
             min_date type date,
             max_km TYPE p DECIMALS 2,
             min_km TYPE p DECIMALS 2,
             max_hr TYPE p DECIMALS 2,
             min_hr TYPE p DECIMALS 2,
             max_lit TYPE p DECIMALS 2,
             min_lit TYPE p DECIMALS 2,
             t_max_min_km  TYPE p DECIMALS 2,
             t_max_min_hr TYPE p DECIMALS 2,
             t_max_min_lit TYPE p DECIMALS 2.
    SELECTION-SCREEN BEGIN OF BLOCK blk WITH FRAME.
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: p_equnr FOR equi-equnr, "no-extension no intervals,
                    p_idate FOR imrg-idate.  "NO-EXTENSION NO INTERVALS OBLIGATORY,
                   " p_recdu FOR imrg-recdu." NO-EXTENSION NO INTERVALS ."default 'M3'" OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK blk1.
    SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
    SELECTION-SCREEN END OF BLOCK blk2.
    SELECTION-SCREEN END OF BLOCK blk.
    TOP-OF-PAGE.
      FORMAT INTENSIFIED ON.
      WRITE:/1(40) ' INVESTMENT LIMITED  '.
      WRITE:/50(40) ' FUEL CONSUMPTION REPORT ' CENTERED   ,
              2 'Page', sy-pagno.
      FORMAT INTENSIFIED OFF.
      WRITE:/50(40) '----
    ' CENTERED .
      FORMAT INTENSIFIED ON.
      WRITE:/2 sy-datum COLOR 3, sy-uzeit .
      "WRITE:/1 S903-SPMON ."p_yearf.
      ULINE.
      "CENTERED.
      write: /2 'Date From     :'.
      write: /2 'Equipment No  :'.
      write: /2 'Unit          :'.
      SKIP.
      ULINE.
      WRITE:/1 sy-vline,
        2   'EQUIP NO',              10 sy-vline,
        11  'NAME',                  40 sy-vline,
        41  'SORT',                  60 sy-vline,
        61  'MIN DATE',              74 sy-vline,
        75  'MIN KM',                87 sy-vline,
        88  'MAX DATE',              100 sy-vline,
        101 'MAX KM' ,               113 sy-vline,
        114 'TOTAL KM',              126 sy-vline COLOR 2,
        127 'MIN HR',                139 sy-vline,
        140 'MAX HR',                152 sy-vline,
        153 'TOTAL HR' ,             167 sy-vline COLOR 2,
        168 'MIN LIT',               180 sy-vline,
        181 'MAX LIT',               193 sy-vline,
        194 'FUEL CON',              206 sy-vline  COLOR 2,
        207 'KM L',                  219 sy-vline,
        220 'LIT PER HR',            232 sy-vline.
      FORMAT COLOR 3 ON.
      ULINE.
    END-OF-PAGE.
    START-OF-SELECTION.
    select a~equnr d~eqktx f~eqfnr e~idate e~recdu e~recdv
    into corresponding fields of table i_data
    from equi AS a
    inner join equz as b
    on a~equnr = b~equnr
    inner join iloa as f
    on b~iloan = f~iloan
    inner join imptt as c
    on a~objnr = c~mpobj
    inner join eqkt as d
    on a~equnr = d~equnr
    inner join imrg as e
    on e~point = c~point
    where a~equnr in p_equnr
    and
    e~idate in p_idate and
    e~recdu in ('KM','L','H').
    "e~recdu in p_recdu.
    equi
    *select equnr from equi into table i_equi
    *for all entries in I_DATA
    **where objnr = i_equnr-mpobj.
    *where equnr = i_data-equnr.
    *endselect.
    eqkt
    *select equnr eqktx into table I_eqkt
    *from eqkt
    *FOR ALL ENTRIES IN I_DATA
    *where equnr = i_data-Equnr.
    *endselect.
    iloa
    *select eqfnr into table I_iloa
    *from equz
    *FOR ALL ENTRIES IN I_DATA
    *on equziloan = iloailoan
    *where iloan = i_data-iloan .
    *endselect.
    imrg
    *select idate recdv recdu into table I_imrg
    *from imrg
    *FOR ALL ENTRIES IN I_DATA
    *where imrg~objnr = i_date-mpobj.
    *endselect.
    loop  at i_data into wa_data.
    CLEAR: wa_final.
      READ TABLE i_final into wa_final
               with key equnr = wa_data-equnr.
        if sy-subrc EQ 0.
         PERFORM prepare_get_equi.
         PERFORM prepare_get_eqkt.
         PERFORM prepare_get_iloa.
         PERFORM prepare_get_imptt.
         PERFORM prepare_get_imrg.
          PERFORM prepare_final_rec USING'M'. " Modify Existing Record
          ElSE.
          PERFORM prepare_final_rec USING'A'. " Append New Record.
        ENDIF.
        ENDLOOP.
        LOOP AT i_final into wa_final.
         SORT i_final by equnr  descending.
          at new equnr.
            read table i_final into wa_final index sy-tabix.
                WRITE:/1 sy-vline,
    2  wa_final-equnr                                                 , 10 sy-vline,
    11 wa_final-eqktx                                                 , 40 sy-vline,
    41 wa_final-eqfnr                                                 , 60 sy-vline,
    61 wa_final-min_date                                              , 74 sy-vline,
    75 wa_final-min_km EXPONENT 0 DECIMALS 2   LEFT-JUSTIFIED           , 87 sy-vline,
    88 wa_final-max_date EXPONENT 0 DECIMALS 2   LEFT-JUSTIFIED         , 100 sy-vline,
    101 wa_final-max_km EXPONENT 0 DECIMALS 2   LEFT-JUSTIFIED          , 113 sy-vline,
    114 wa_final-t_max_min_km EXPONENT 0 DECIMALS 2 color 3 LEFT-JUSTIFIED    , 126 sy-vline COLOR 2,
    127 wa_final-min_hr EXPONENT 0 DECIMALS 2   LEFT-JUSTIFIED          , 139 sy-vline,
    140 wa_final-max_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED          , 152 sy-vline,
    153 wa_final-t_max_min_hr EXPONENT 0 DECIMALS 2 color 3 LEFT-JUSTIFIED   , 167 sy-vline COLOR 2,
    168 wa_final-min_lit EXPONENT 0 DECIMALS 2  LEFT-JUSTIFIED         , 180 sy-vline,
    181 wa_final-max_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED         , 193 sy-vline,
    *194 wa_final-t_max_min_lit EXPONENT 0 DECIMALS 2 color 3 LEFT-JUSTIFIED   , 206 sy-vline COLOR 2,
    194 wa_final-T_fuel_con EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED        , 206 sy-vline,
    207 wa_final-t_km_l EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED            , 219 sy-vline,
    220 wa_final-lit_per_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED      , 232 sy-vline.
    *168 wa_final-min_lit EXPONENT 0 DECIMALS 2  LEFT-JUSTIFIED         , 180 sy-vline,
    *194 wa_final-t_max_min_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED   , 206 sy-vline COLOR 2,
    *207 wa_final-fuel_con EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED        , 219 sy-vline,
    *220 wa_final-km_l EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED            , 232 sy-vline,
    *233 wa_final-lit_per_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED      , 246 sy-vline.
    *207 wa_final-T_fuel_con EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED        , 219 sy-vline,
    *220 wa_final-t_km_l EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED            , 232 sy-vline,
    *233 wa_final-lit_per_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED      , 246 sy-vline.
    uline.
        "endat.
    *at end of equnr.
           read table i_final into wa_final index sy-tabix.
              WRITE:/1 sy-vline,
    *2  wa_final-equnr                                                 , 10 sy-vline,
    *11 wa_final-eqktx                                                 , 40 sy-vline,
    *41 wa_final-eqfnr                                                 , 60 sy-vline,
    *88 wa_final-max_date EXPONENT 0 DECIMALS 2   LEFT-JUSTIFIED         , 100 sy-vline,
    *101 wa_final-max_km EXPONENT 0 DECIMALS 2   LEFT-JUSTIFIED          , 113 sy-vline,
    *140 wa_final-max_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED          , 152 sy-vline.
    **181 wa_final-max_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED         , 193 sy-vline.
    *114 wa_final-t_max_min_km EXPONENT 0 DECIMALS 2   LEFT-JUSTIFIED    , 126 sy-vline COLOR 2,
    *140 wa_final-max_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED          , 152 sy-vline.
    *153 wa_final-t_max_min_hr EXPONENT 0 DECIMALS 2  LEFT-JUSTIFIED   , 167 sy-vline COLOR 2,
    *181 wa_final-max_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED         , 193 sy-vline,
    *194 wa_final-t_max_min_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED   , 206 sy-vline COLOR 2,
    *207 wa_final-fuel_con EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED        , 219 sy-vline,
    *220 wa_final-km_l EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED            , 232 sy-vline,
    *233 wa_final-lit_per_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED      , 246 sy-vline.
    uline .
       WRITE:/1 sy-vline,
    *2  wa_final-equnr                                                 , 10 sy-vline,
    *11 wa_final-eqktx                                                 , 40 sy-vline,
    *41 wa_final-eqfnr                                                 , 60 sy-vline,
    *61 wa_final-min_date                                              , 74 sy-vline,
    *75 wa_final-min_km EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED           , 87 sy-vline,
    *88 wa_final-max_date EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED         , 100 sy-vline,
    *101 wa_final-max_km EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED          , 113 sy-vline,
    *114 wa_final-t_max_min_km EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED    , 126 sy-vline COLOR 2,
    *127 wa_final-min_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED          , 139 sy-vline,
    *140 wa_final-max_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED          , 152 sy-vline,
    *153 wa_final-t_max_min_hr EXPONENT 0 DECIMALS 2  LEFT-JUSTIFIED   , 167 sy-vline COLOR 2,
    *168 wa_final-min_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED         , 180 sy-vline,
    *181 wa_final-max_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED         , 193 sy-vline,
    *194 wa_final-t_max_min_lit EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED   , 206 sy-vline COLOR 2,
    *207 wa_final-fuel_con EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED        , 219 sy-vline,
    *220 wa_final-km_l EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED            , 232 sy-vline,
    *233 wa_final-lit_per_hr EXPONENT 0 DECIMALS 2 LEFT-JUSTIFIED      , 246 sy-vline.
    *ULINE.
    endloop.
    FORM prepare_final_rec  USING    p_mode TYPE char1.
    KM
    select MAX( eidate ) Min( eidate ) MAX( erecdv ) MIN( erecdv )
    into  corresponding fields of (wa_final-max_date,wa_final-min_date, wa_final-max_km , wa_final-min_km)
    from equi AS a
    inner join equz as b
    on aequnr = bequnr
    inner join iloa as f
    on biloan = filoan
    inner join imptt as c
    on aobjnr = cmpobj
    inner join eqkt as d
    on aequnr = dequnr
    inner join imrg as e
    on epoint = cpoint
    where a~equnr in p_equnr
    and
    e~idate in p_idate and
    e~recdu =  'KM' .
    "group by aequnr deqktx feqfnr eidate erecdu erecdv.
    "endselect.
    HOUR
    select MAX( eidate ) Min( eidate ) MAX( erecdv ) MIN( erecdv )
    into corresponding fields of (wa_final-max_date, wa_final-min_date, wa_final-max_hr, wa_final-min_hr)
    from equi AS a
    inner join equz as b
    on aequnr = bequnr
    inner join iloa as f
    on biloan = filoan
    inner join imptt as c
    on aobjnr = cmpobj
    inner join eqkt as d
    on aequnr = dequnr
    inner join imrg as e
    on epoint = cpoint
    where a~equnr in p_equnr
    and
    e~idate in p_idate and
    e~recdu =  'H'.
    "group by aequnr deqktx feqfnr eidate erecdu erecdv.
    "endselect.
    LIT
    select MAX( eidate ) Min( eidate ) MAX( erecdv ) MIN( erecdv ) SUM( e~recdv )
    into (wa_final-max_date,wa_final-min_date, wa_final-max_lit, wa_final-min_lit ,  wa_final-t_max_min_lit )
    from equi AS a
    inner join equz as b
    on aequnr = bequnr
    inner join iloa as f
    on biloan = filoan
    inner join imptt as c
    on aobjnr = cmpobj
    inner join eqkt as d
    on aequnr = dequnr
    inner join imrg as e
    on epoint = cpoint
    where a~equnr in p_equnr
    and
    e~idate in p_idate and
    e~recdu =  'L' .
    "group by aequnr deqktx feqfnr eidate erecdu erecdv.
    "endselect.
            wa_final-max_date = wa_final-max_date + wa_data-idate .
            wa_final-min_date  = wa_final-min_date + wa_data-idate .
            wa_final-max_km  = wa_final-max_km + wa_data-recdv.
            wa_final-min_km  = wa_final-min_km + wa_data-recdv.
            wa_final-max_hR  = wa_final-max_hr + wa_data-recdv.
            wa_final-min_hR  = wa_final-min_hr + wa_data-recdv.
            wa_final-max_lit = wa_final-max_lit + wa_data-recdv.
             wa_final-t_max_min_km   = ( wa_final-max_km - wa_final-min_km ).
             wa_final-t_max_min_hr  =  ( wa_final-max_hr - wa_final-min_hr ).
             "wa_final-t_max_min_lit   = ( wa_final-max_lit - wa_final-min_lit ).
              wa_final-t_fuel_con = wa_final-t_max_min_lit.
              wa_final-t_km_l = wa_final-t_max_min_km / wa_final-t_max_min_lit.
              wa_final-lit_per_hr  = wa_final-t_max_min_lit / wa_final-t_max_min_hr .    "  fuel comsumed / t_max_min_hr
      IF p_mode = 'A'.
        wa_final-equnr = wa_data-equnr.
        wa_final-eqktx = wa_data-eqktx.
        wa_final-eqfnr = wa_data-eqfnr.
        APPEND wa_final TO i_final.
      ELSE.
        MODIFY i_final FROM wa_final
          TRANSPORTING
              max_date
              min_date
              max_km
              min_km
              max_hr
              min_hr
              max_lit
              min_lit
              t_max_min_km
              t_max_min_hr
              where equnr = wa_data-equnr.
      ENDIF.
    "endselect.
    ENDFORM.                    " PREPARE_FINAL_REC

    Hi Ankit,
    If your quantity depends on your material movement type, then you can create a condition in Calculated Keyfig / Formula.
    That means as per your situation if the material movement type is 101 then quantity is incoming(+) and if the material movement type is 120 then outgoing(-).This can be done if the material movement type is fixed.
    Correct the logic if it is not right.
    Rgs,
    I.R.K

Maybe you are looking for

  • My SD card slot in my MacBook Pro 13" Late 2011 isn't working.  Help!

    I haven't upgraded software or downloaded anything since the last time I used it. Ive restarted the computer a couple of times. It just doesnt work anymore. ive

  • Help in dreamweaver forms

    I am having a problem getting the return (back end) to work on my dreamweaver form. i know this is a simple task however for some reason i have a problem. i am trying to use form mail script but for some reason i keep getting errors.

  • Does the Lifecycle product license include the use of Flex Builder Pro and Flex SDK?

    I have been trying to find out whether we can use the latest Flex Builder and SDK using the LiveCycle license or do we need to purchase additional license? We will use these products to develop Flash Applications to use with our Livecycle product.

  • Find name with spaces

    Hello, How could this code be modified to ignore spaces: find / -iname "foo" What I mean is I know this code will find files containing foo and it will ignore capitals and surrounding characters. But it will not find a file containing +fo o+ or fo.o

  • ShureSM58 not working on MacBook Pro Retina

    Hello, Basically, I have bought the Shure SM58 microphone to record audio voice on my MacBook Pro Retina, but it doesn't seem to work.. The specifications and the seller clearly told me that the audio jack included output and input, is there anything