Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 2807

Re: how to add quantities based on material no.

$
0
0

Hi,


Use a COLLECT statement

 

Something like this;

 

REPORT  ztest.

 

TYPES:

   BEGIN OF tys_quantity,

     matnr TYPE matnr,

     lfimg TYPE lfimg,

     meins TYPE meins,

   END OF tys_quantity,

   tyt_quantity TYPE STANDARD TABLE OF tys_quantity,

 

   BEGIN OF tys_units,

     matnr TYPE matnr,

     meins TYPE meins,

   END OF tys_units,

   tyt_units TYPE SORTED TABLE OF tys_units WITH UNIQUE KEY matnr.

 

DATA:

  ls_quantity TYPE tys_quantity,

  lt_quantity TYPE tyt_quantity,

  ls_units    TYPE tys_units,

  lt_units    TYPE tyt_units,

  lt_lips     TYPE STANDARD TABLE OF lips.

 

FIELD-SYMBOLS:

  <ls_lips> TYPE lips.

 

SELECT *

  FROM lips

  INTO TABLE lt_lips

  UP TO 100 ROWS.

IF sy-subrc EQ 0.

 

   SELECT matnr meins

    INTO TABLE lt_units

    FROM mara

    FOR ALL ENTRIES IN lt_lips

    WHERE matnr EQ lt_lips-matnr.

 

ENDIF.

 

 

LOOP AT lt_lips

   ASSIGNING <ls_lips>.

 

* Convert to base unit before SUM;

   READ TABLE lt_units

    INTO ls_units

    WITH KEY matnr = <ls_lips>-matnr.

   IF sy-subrc EQ 0

     AND ls_units-meins NE <ls_lips>-meins.

 

     CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'

       EXPORTING

         i_matnr              = <ls_lips>-matnr

         i_in_me              = <ls_lips>-meins

         i_out_me             = ls_units-meins

         i_menge              = <ls_lips>-lfimg

       IMPORTING

         e_menge              = <ls_lips>-lfimg

       EXCEPTIONS

         error_in_application = 1

         error                = 2

         OTHERS               = 3.

 

     ls_quantity-meins = ls_units-meins.

   ELSE.

     ls_quantity-lfimg = <ls_lips>-lfimg.

     ls_quantity-meins = <ls_lips>-meins.

   ENDIF.

 

   ls_quantity-matnr = <ls_lips>-matnr.

   COLLECT ls_quantity INTO lt_quantity.

 

ENDLOOP.

 

Regards,


Viewing all articles
Browse latest Browse all 2807

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>