Skip to Content
author's profile photo Former Member
Former Member

goods movement

Hi Friends,

I would like to know how to generate a goods movement report which has the select-options for material number,(plant & posting date )which are mandatory,movement type,material type,material group.

My output would contain:

plant,material no,description,unit ofmeasure,

openingstocks(qty & amt),goods receipts(qty & amt),goods issues(qty&amt),closing stocks(qty & amt).

i would like to know how to calculate opening stocks(qty and amt)and also gr's(qty and amt) gi's( qty and amt) and closing stocks(qty and amt)

i am new to abap and would appreciate some guidance.

i would appreciate if anybody could throw some light on this issue.

Thanks in advance and sure i will reward points for helpful answers,

Vinayak

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

5 Answers

  • Posted on Nov 22, 2005 at 02:25 PM

    Hi,

    You could look for tables : MBEW, MBEWH and MSEG. But that's really not an easy report. You have to check the kind of movment, the SHKZG ... the unit of measure ...

    A good start could be to make an SQL trace on MB51, MMBE, MB52 ..

    Good luck

    Rgd

    Frédéric

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Nov 22, 2005 at 02:32 PM

    HI Vinayak,

    Use the BAPI BAPI_GOODSMVT_GETDETAIL to get the goods movement related data.

    You can get almost all the mentioned fields from the tables parameters returned by the bapi.

    You have to pass the Material Document number and the year to this BAPI.

    You can get these fields from MSEG table.

    Pass those values to the BAPI and build an internal table with the data you want and display the data in a report.

    Regards,

    Ravi

    Add a comment
    10|10000 characters needed characters exceeded

    • Former Member

      <b>BAPI_GOODSMVT_GETDETAIL</b>

      In this Above Mentioned BAPI,

      Please pass this Parameters to the BAPI, So you will get all the Required Data for the Goods Movement, I guess, Probably this will help you to complete the Report or else just go through the Code of the BAPI so that you can get an idea of how he is getting all the related data to it.

      the Parameters are:

      MATERIALDOCUMENT

      MATDOCUMENTYEAR

      Thanks,

      Satya Krishna.M

  • author's profile photo Former Member
    Former Member
    Posted on Mar 21, 2006 at 01:13 PM

    hi all...

    i m also using BAPI_GOODSMVT_GETDETAIL ...but from this BAPI we can not get Ordered Quantity..

    so i want to know how can i get this field ...

    its very urgent.

    Thanks and Regards

    Sohil Shah

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Mar 21, 2006 at 04:12 PM

    Hi Sohil,

    Please use BAPI <b>BAPISDORDER_GETDETAILEDLIST</b> to get the ordered qty.

    Hope this will help.

    Regards,

    Ferry Lianto

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Dec 04, 2007 at 11:39 AM

    *********************************************************************

    • PROGRAM ID : ZGOODSMVT

    • PROGRAM TITLE : Documented Goods Movements Report *

    *

    • DESCRIPTION : This report is required for the production *

    • areas to tract the consumptions and *

    • declarations they have done against a *

    • process order on a detailed level. *

    ====================================================================

    • CHANGE HISTORY LOG *

    ----


    • MOD. NO.| DATE | NAME | CORRECTION NUMBER | CHANGE REFERENCE #*

    ----


    • *

    • DESCRIPTION:

    *Functionality Change *

    ----


    • MOD-002 |DD/MM/YYYY| XXXXXX | XXXXXXXXXX *

    • *

    • DESCRIPTION: *

    **********************************************************************

    • AUTHOR........ Aveek Ghose

    • DATE WRITTEN.. 15/09/2006

    • R/3 RELEASE... 4.6C

    • =====================================================================*

    REPORT ZGOODSMVTAG MESSAGE-ID /glb/rgtptmanuf .

    ----


    • TYPE POOL DECLARATION FOR ALV REPORT ONLY

    ----


    TYPE-POOLS : slis. "Type Pool for ALV

    ----


    • SAP tables

    ----


    TABLES:

    mseg, " Document Segment: Material

    mkpf, " Header: Material Document

    lein, " Storage unit header records

    aufk, " Order master data

    usr02, " Logon data

    lagp, " Storage bins

    mara, " Material master

    mcha, " Batches

    t156, " Movement type

    t301. " WM Storage Types

    ----


    • CONSTANTS

    ----


    CONSTANTS: c_a(1) TYPE c VALUE 'A', " value of A

    c_x(1) TYPE c VALUE 'X', " value of X

    c_l(1) TYPE c VALUE 'L', " value of L

    c_r(1) TYPE c VALUE 'R', " value of R

    c_h(1) TYPE c VALUE 'H', " value of H

    c_s(1) TYPE c VALUE 'S', " value of S

    c_01(2) TYPE c VALUE '01', " value of 01

    c_02(2) TYPE c VALUE '02', " value of 02

    c_03(2) TYPE c VALUE '03', " value of 03

    c_04(2) TYPE c VALUE '04', " value of 04

    c_05(2) TYPE c VALUE '05', " value of 05

    c_06(2) TYPE c VALUE '06', " value of 06

    c_07(2) TYPE c VALUE '07', " value of 07

    c_08(2) TYPE c VALUE '08', " value of 08

    c_09(2) TYPE c VALUE '09', " value of 09

    c_10(2) TYPE c VALUE '10', " value of 10

    c_11(2) TYPE c VALUE '11', " value of 11

    c_12(2) TYPE c VALUE '12', " value of 12

    c_13(2) TYPE c VALUE '13', " value of 13

    c_14(2) TYPE c VALUE '14', " value of 14

    c_15(2) TYPE c VALUE '15', " value of 15

    c_16(2) TYPE c VALUE '16', " value of 16

    c_17(2) TYPE c VALUE '17', " value of 17

    c_18(2) TYPE c VALUE '18', " value of 18

    c_19(2) TYPE c VALUE '19', " value of 19

    c_20(2) TYPE c VALUE '20', " value of 20

    c_21(2) TYPE c VALUE '21', " value of 21

    c_22(2) TYPE c VALUE '22', " value of 22

    c_23(2) TYPE c VALUE '23', " value of 23

    c_24(2) TYPE c VALUE '24', " value of 24

    c_25(2) TYPE c VALUE '25', " value of 25

    c_26(2) TYPE c VALUE '26', " value of 26

    c_27(2) TYPE c VALUE '27', " value of 27

    c_28(2) TYPE c VALUE '28', " value of 28

    c_29(2) TYPE c VALUE '29', " value of 29

    c_30(2) TYPE c VALUE '30', " value of 30

    c_31(2) TYPE c VALUE '31', " value of 31

    c_32(2) TYPE c VALUE '32', " value of 32

    c_33(2) TYPE c VALUE '33', " value of 33

    c_34(2) TYPE c VALUE '34', " value of 34

    c_35(2) TYPE c VALUE '35', " value of 35

    c_36(2) TYPE c VALUE '36', " value of 36

    c_37(2) TYPE c VALUE '37', " value of 37

    c_38(2) TYPE c VALUE '38', " value of 38

    c_39(2) TYPE c VALUE '39', " value of 39

    c_40(2) TYPE c VALUE '40', " value of 40

    c_41(2) TYPE c VALUE '41', " value of 41

    c_42(2) TYPE c VALUE '42', " value of 42

    c_43(2) TYPE c VALUE '43', " value of 43

    c_44(2) TYPE c VALUE '44', " value of 44

    c_45(2) TYPE c VALUE '45', " value of 45

    c_46(2) TYPE c VALUE '46', " value of 46

    c_mseg TYPE tabname VALUE 'MSEG', " table name MSEG

    c_mkpf TYPE tabname VALUE 'MKPF', " table name MKPF

    c_ltak TYPE tabname VALUE 'LTAK', " table name LTAK

    c_ltap TYPE tabname VALUE 'LTAP', " table name LTAP

    c_makt TYPE tabname VALUE 'MAKT', " table name MAKT

    c_lein TYPE tabname VALUE 'LEIN'. " table name LEIN

    *&----


    &

    • TYPES *

    *&----


    &

    • Type for declaring table I_matdoc

    TYPES: BEGIN OF ty_matdoc,

    matnr TYPE matnr,

    charg TYPE charg_d,

    werks TYPE werks_d,

    lgort TYPE lgort_d,

    bwart TYPE bwart,

    sobkz TYPE sobkz,

    mblnr TYPE mblnr,

    zeile TYPE mblpo,

    budat TYPE budat,

    erfmg TYPE erfmg,

    erfme TYPE erfme,

    lgnum TYPE lgnum,

    lgtyp TYPE lgtyp,

    lgpla TYPE lgpla,

    • Additional fields

    insmk TYPE insmk,

    aufpl TYPE co_aufpl,

    aufnr TYPE aufnr,

    bktxt TYPE bktxt,

    bldat TYPE bldat,

    cpudt TYPE cpudt,

    cputm TYPE cputm,

    kzbew TYPE kzbew,

    lifnr TYPE lifnr,

    meins TYPE meins,

    menge TYPE menge_d,

    mjahr TYPE mjahr,

    rsnum TYPE rsnum,

    rspos TYPE rspos,

    rsart TYPE rsart,

    shkzg TYPE shkzg,

    usnam TYPE usnam,

    vgart TYPE vgart,

    xabln TYPE xabln,

    tbnum TYPE tbnum,

    maktx TYPE maktx,

    END OF ty_matdoc,

    • Type for declaring table I_matnr

    BEGIN OF ty_matnr,

    matnr TYPE matnr,

    maktx TYPE maktx,

    END OF ty_matnr,

    • Type for declaring table I_mh

    BEGIN OF ty_mh,

    aufnr TYPE aufnr,

    werks TYPE werks,

    matnr TYPE matnr,

    charg TYPE charg_d,

    lgnum TYPE lgnum,

    lgpla TYPE lgpla,

    lgtyp TYPE lgtyp,

    bwart TYPE bwart,

    rsnum TYPE rsnum,

    rspos TYPE rspos,

    rsart TYPE rsart,

    lenvw TYPE t331_lenvw,

    END OF ty_mh,

    • Type for declaring table I_t331

    BEGIN OF ty_t331,

    lgnum TYPE lgnum,

    lgtyp TYPE lgtyp,

    lenvw TYPE t331_lenvw,

    END OF ty_t331,

    • Type for declaring table I_detl

    BEGIN OF ty_detl,

    matnr TYPE matnr,

    charg TYPE charg_d,

    werks TYPE werks,

    lgort TYPE lgort_d,

    bwart TYPE bwart,

    sobkz TYPE sobkz,

    mblnr TYPE mblnr,

    zeile TYPE mblpo,

    budat TYPE budat,

    erfmg TYPE erfmg,

    erfme TYPE erfme,

    lgtyp TYPE lgtyp,

    lgpla TYPE lgpla,

    lenum TYPE lenum,

    • Additional fields

    maktx TYPE maktx,

    insmk TYPE insmk,

    aufpl TYPE co_aufpl,

    aufnr TYPE aufnr,

    bktxt TYPE bktxt,

    bldat TYPE bldat,

    cpudt TYPE cpudt,

    cputm TYPE cputm,

    kzbew TYPE kzbew,

    lifnr TYPE lifnr,

    meins TYPE meins,

    menge TYPE menge_d,

    mjahr TYPE mjahr,

    rsnum TYPE rsnum,

    rspos TYPE rspos,

    shkzg TYPE shkzg,

    usnam TYPE usnam,

    vgart TYPE vgart,

    xabln TYPE xabln,

    tbnum TYPE tbnum,

    lgnum TYPE lgnum,

    tanum TYPE tanum,

    tapos TYPE tapos,

    bwlvs TYPE bwlvs,

    betyp TYPE lvs_betyp,

    benum TYPE lvs_benum,

    bestq TYPE bestq,

    vltyp TYPE ltap_vltyp,

    vlpla TYPE ltap_vlpla,

    vlenr TYPE ltap_vlenr,

    nltyp TYPE ltap_nltyp,

    nlpla TYPE ltap_nlpla,

    nlenr TYPE ltap_nlenr,

    *Begin of changes Sutapa - May 26, 2003

    meins_to TYPE MEINS,

    altme TYPE LRMEI,

    vsola TYPE LTAP_vsola,

    vsolm TYPE LTAP_vsolm,

    nsola TYPE LTAP_nsola,

    nsolm TYPE LTAP_nsolm,

    *End of changes Sutapa - May 26, 2003

    color TYPE slis_specialcol_alv OCCURS 3, "for cell color

    END OF ty_detl,

    *Begin of changes Sutapa - May 26, 2003

    • Type for declaring table I_meins_ltap

    BEGIN OF ty_meins_ltap,

    lgnum TYPE lgnum,

    tanum TYPE tanum,

    tapos TYPE tapos,

    matnr TYPE matnr,

    meins TYPE meins,

    END OF ty_meins_ltap.

    *End of changes Sutapa - May 26, 2003

    *&----


    &

    • STRUCTURES *

    *&----


    &

    *Structure to hold variant information

    DATA: struct_variant TYPE disvariant.

    • Workarea to hold the header line of i_matdoc

    DATA: struct_matdoc TYPE ty_matdoc.

    *&----


    &

    • INTERNAL TABLES *

    *&----


    &

    *Internal tables to hold material documenmt information

    DATA: i_matdoc TYPE STANDARD TABLE OF ty_matdoc WITH HEADER LINE,

    i_matdoc_distinct TYPE STANDARD TABLE OF ty_matdoc WITH HEADER

    LINE,

    *Internal table to hold material description information

    i_matnr TYPE STANDARD TABLE OF ty_matnr WITH HEADER LINE,

    *Internal table to hold RESB information

    i_mh TYPE STANDARD TABLE OF ty_mh WITH HEADER LINE,

    *Internal table to hold T331 information

    i_t331 TYPE STANDARD TABLE OF ty_t331 WITH HEADER LINE,

    *Internal table to hold detail transfer order information

    i_detl TYPE STANDARD TABLE OF ty_detl WITH HEADER LINE,

    *Internal table to hold output

    i_output TYPE STANDARD TABLE OF ty_detl WITH HEADER LINE,

    *Internal table for field catalog

    i_fcat TYPE slis_t_fieldcat_alv,

    *Internal table for sort table

    i_sort TYPE slis_t_sortinfo_alv, "Sort parameters

    *Internal table for layout

    i_layout TYPE slis_layout_alv,

    *Internal table for coloring cells

    i_col_layout TYPE slis_t_specialcol_alv,

    *Begin of changes Sutapa - May 26, 2003

    i_meins_ltap TYPE STANDARD TABLE OF ty_meins_ltap WITH HEADER

    LINE.

    *End of changes Sutapa - May 26, 2003

    *&----


    &

    • VARIABLES *

    *&----


    &

    DATA: v_repid LIKE sy-repid, " To store program name

    v_title(100) TYPE c. " Report title

    *&----


    &

    • SELECTION SCREEN *

    *&----


    &

    SELECTION-SCREEN: BEGIN OF BLOCK order WITH FRAME TITLE text-001.

    PARAMETERS: p_order LIKE mseg-aufnr MEMORY ID ANR OBLIGATORY .

    " Process Order

    SELECTION-SCREEN: END OF BLOCK order.

    SELECTION-SCREEN: BEGIN OF BLOCK component WITH FRAME TITLE text-002.

    SELECT-OPTIONS: s_mat FOR mseg-matnr, " Material No.

    s_batch FOR mseg-charg, " Batch

    s_mvtype FOR mseg-bwart, " Movement type

    s_pstdte FOR mkpf-budat, " Posting date

    s_user FOR mkpf-usnam, " User

    s_strtyp FOR mseg-lgtyp, " Storage type

    s_strbin FOR mseg-lgpla, " Storage bin

    s_strunt FOR lein-lenum. " Storage unit

    SELECTION-SCREEN: END OF BLOCK component.

    *&----


    &

    • INITIALIZATION *

    *&----


    &

    CLEAR:

    • Internal Tables

    i_matdoc,

    i_detl,

    i_mh,

    i_t331,

    i_matnr,

    i_output,

    i_sort,

    i_fcat,

    i_meins_ltap,

    • Variables

    v_repid,

    v_title.

    • Refresh Internal Tables

    REFRESH: i_matdoc,

    i_detl,

    i_mh,

    i_t331,

    i_matnr,

    i_output,

    i_sort,

    i_fcat,

    i_meins_ltap.

    • Assign value to v_repid

    v_repid = sy-repid.

    *&----


    &

    • AT SELECTION SCREEN *

    *&----


    &

    *Validation of Process Order

    AT SELECTION-SCREEN ON p_order.

    PERFORM validate_order.

    *Validation of Material

    AT SELECTION-SCREEN ON s_mat.

    PERFORM validate_material.

    *Validation of Batch

    AT SELECTION-SCREEN ON s_batch.

    PERFORM validate_batch.

    *Validation of Movement Type

    AT SELECTION-SCREEN ON s_mvtype.

    PERFORM validate_movemnttype.

    *Validation of User Name

    AT SELECTION-SCREEN ON s_user.

    PERFORM validate_user.

    *Validation of Storage Type

    AT SELECTION-SCREEN ON s_strtyp.

    PERFORM validate_storagetype.

    *Validation of Storage Bin

    AT SELECTION-SCREEN ON s_strbin.

    PERFORM validate_storagebin.

    *Validation of Storage Unit

    AT SELECTION-SCREEN ON s_strunt.

    PERFORM validate_storageunit.

    *&----


    &

    • START OF SELECTION *

    *&----


    &

    START-OF-SELECTION.

    *&----


    &

    • This subroutine retrieves data from MSEG and MKPF

    • tables depending on the selection screen values

    • and modifies the table with Material description.

    *&----


    &

    PERFORM populate_matdoc.

    *&----


    &

    • This subroutine retrieves data from LTAK and LTAP

    • tables dependingon the selection screen values and

    • populates the table with Transferorder information.

    *&----


    &

    PERFORM populate_detl.

    *&----


    &

    • This subroutine retrieves data from RESB and T331

    • tables and populates the table with Reservation

    • information.

    *&----


    &

    PERFORM populate_mh.

    *&----


    &

    • This subroutine retrieves data from T331

    • tables and populates the table with SU non SU managed

    • information.

    *&----


    &

    PERFORM populate_t331.

    *&----


    &

    • This subroutine modifies anmd creates the final

    • result table.

    *&----


    &

    PERFORM create_output. " To update I_detl

    *&----


    &

    • END OF SELECTION *

    *&----


    &

    END-OF-SELECTION.

    • The final output is obtained by transferring the necessary fields

    • from table I_DETL to I_OUTPUT.

    • Check if the table I_detl is not initial

    IF NOT i_detl[] IS INITIAL.

    i_output[] = i_detl[]. " Get the final output

    ENDIF.

    • Display the Report Title

    CONCATENATE text-003 p_order INTO v_title SEPARATED BY space.

    sy-title = v_title.

    • Display the Report in ALV

    PERFORM prepare_alv_output. " To display result as alv

    &----


    *& Form validate_order

    &----


    • This subroutine validates the value of process order entered

    ----


    FORM validate_order .

    *Check if value is entered for Order.

    IF NOT p_order IS INITIAL.

    SELECT SINGLE aufnr " Process Order

    INTO aufk-aufnr

    FROM aufk

    WHERE aufnr = p_order.

    IF sy-subrc <> 0.

    • Issue error message and stop processing

    MESSAGE e999 WITH 'PO does not exist'(096).

    ENDIF.

    ENDIF.

    ENDFORM. " validate_order

    &----


    *& Form validate_material

    &----


    • This subroutine validates the value of material entered

    ----


    FORM validate_material .

    *Check if value is entered for Material.

    IF NOT s_mat IS INITIAL.

    SELECT matnr " Material

    INTO mara-matnr

    UP TO 1 ROWS

    FROM mara

    WHERE matnr IN s_mat.

    ENDSELECT.

    IF sy-subrc <> 0.

    • Issue error message and stop processing

    MESSAGE e999 WITH 'Invalid Material.'(097).

    ENDIF.

    ENDIF.

    ENDFORM. " validate_material

    &----


    *& Form validate_batch

    &----


    • This subroutine validates the value of batch entered

    ----


    FORM validate_batch .

    *Check if value is entered for Batch.

    IF NOT s_batch IS INITIAL.

    SELECT charg " Batch

    INTO mcha-charg

    UP TO 1 ROWS

    FROM mcha

    WHERE charg IN s_batch.

    ENDSELECT.

    IF sy-subrc <> 0.

    • Issue error message and stop processing

    MESSAGE e999 WITH 'Invalid Batch.'(098).

    ENDIF.

    ENDIF.

    ENDFORM. " validate_batch

    &----


    *& Form validate_movemnttype

    &----


    • This subroutine validates the value of movement type entered

    ----


    FORM validate_movemnttype .

    *Check if value is entered for Movement type.

    IF NOT s_mvtype IS INITIAL.

    SELECT bwart " Movement type

    INTO t156-bwart

    UP TO 1 ROWS

    FROM t156

    WHERE bwart IN s_mvtype.

    ENDSELECT.

    IF sy-subrc <> 0.

    • Issue error message and stop processing

    MESSAGE e999 WITH 'Invalid Movement type.'(099).

    ENDIF.

    ENDIF.

    ENDFORM. " validate_movemnttype

    &----


    *& Form validate_user

    &----


    • This subroutine validates the value of user name entered

    ----


    FORM validate_user .

    IF NOT s_user IS INITIAL.

    SELECT bname " User

    INTO usr02-bname

    UP TO 1 ROWS

    FROM usr02

    WHERE bname IN s_user.

    ENDSELECT.

    IF sy-subrc <> 0.

    • Issue error message and stop processing

    MESSAGE e999 WITH 'Invalid User.'(100).

    ENDIF.

    ENDIF.

    ENDFORM. " validate_user

    &----


    *& Form validate_storagetype

    &----


    • This subroutine validates the value of storage type entered

    ----


    FORM validate_storagetype .

    *Check if value is entered for storage type.

    IF NOT s_strtyp IS INITIAL.

    SELECT lgtyp " storage type

    INTO t301-lgtyp

    UP TO 1 ROWS

    FROM t301

    WHERE lgtyp IN s_strtyp.

    ENDSELECT.

    IF sy-subrc <> 0.

    • Issue error message and stop processing

    MESSAGE e999 WITH 'Invalid Storage type.'(101).

    ENDIF.

    ENDIF.

    ENDFORM. " validate_storagetype

    &----


    *& Form validate_storagebin

    &----


    • This subroutine validates the value of storage bin entered

    ----


    FORM validate_storagebin .

    *Check if value is entered for storage bin.

    IF NOT s_strbin IS INITIAL.

    SELECT lgpla " storage bin

    INTO lagp-lgpla

    UP TO 1 ROWS

    FROM lagp

    WHERE lgpla IN s_strbin.

    ENDSELECT.

    IF sy-subrc <> 0.

    • Issue error message and stop processing

    MESSAGE e999 WITH 'Invalid storage bin.'(102).

    ENDIF.

    ENDIF.

    ENDFORM. " validate_storagebin

    &----


    *& Form validate_storageunit

    &----


    • This subroutine validates the value of storage unit entered

    ----


    FORM validate_storageunit .

    *Check if value is entered for storage unit.

    IF NOT s_strunt IS INITIAL.

    SELECT lenum " storageunit

    INTO lein-lenum

    UP TO 1 ROWS

    FROM lein

    WHERE lenum IN s_strunt.

    ENDSELECT.

    IF sy-subrc <> 0.

    • Issue error message and stop processing

    MESSAGE e999 WITH 'Invalid storage unit.'(103).

    ENDIF.

    ENDIF.

    ENDFORM. " validate_storageunit

    &----


    *& Form populate_matdoc

    &----


    • This subroutine retrieves data from MSEG and MKPF tables depending

    • on the selection screen values and modifies the table with Material

    • description.

    ----


    FORM populate_matdoc .

    *Retreieve Data from MSEG and MKPF

    SELECT a~matnr " Material

    a~charg " Batch

    a~werks " Plant

    a~lgort " Storage Location

    a~bwart " Movement type

    a~sobkz " Special stock indicator

    a~mblnr " Material document no.

    a~zeile " Item in material document

    b~budat " Posting date

    a~erfmg " Quantity in entry unit

    a~erfme " Entry unit

    a~lgnum " Warehouse no.

    a~lgtyp " Storage type

    a~lgpla " Storage bin

    a~insmk " Stock type

    a~aufpl " Routing no.

    a~aufnr " Process order

    b~bktxt " Document header text

    b~bldat " Document date

    b~cpudt " Entry date

    b~cputm " Entry time

    a~kzbew " Movement indicator

    a~lifnr " Vendor

    a~meins " Base unit of measure

    a~menge " Base quantity

    a~mjahr " Material document year

    a~rsnum " Reservation no.

    a~rspos " Reservation item

    a~rsart " Record type

    a~shkzg " Debit / Credit indicator

    b~usnam " User Name

    b~vgart " Trans. / Event type

    b~xabln " Goods Receipt/Issue Slip Number

    a~tbnum " Transfer Requirement Number

    INTO TABLE i_matdoc

    FROM mseg AS a INNER JOIN mkpf AS b

    ON amblnr = bmblnr

    AND amjahr = bmjahr

    WHERE a~aufnr = p_order "process order

    AND a~matnr IN s_mat

    AND a~charg IN s_batch

    AND a~bwart IN s_mvtype

    AND b~budat IN s_pstdte

    AND b~usnam IN s_user.

    IF sy-subrc <> 0.

    • Issue error message and stop processing

    MESSAGE i999 WITH 'No data found!'(104).

    LEAVE LIST-PROCESSING.

    ELSE.

    • Sort the table I_MATDOC

    SORT i_matdoc BY matnr.

    • Create a table i_matdoc_disctinct identical to i_matdoc

    i_matdoc_distinct[] = i_matdoc[].

    DELETE ADJACENT DUPLICATES FROM i_matdoc_distinct COMPARING matnr.

    ENDIF.

    *Check if the table i_matdoc is not initial

    IF NOT i_matdoc_distinct[] IS INITIAL.

    • Retrieve Material Description from MAKT

    SELECT a~matnr " Material no.

    a~maktx " Material description

    INTO TABLE i_matnr

    FROM makt AS a

    FOR ALL ENTRIES IN i_matdoc_distinct

    WHERE a~matnr = i_matdoc_distinct-matnr

    AND a~spras = sy-langu.

    IF sy-subrc = 0.

    • Sort the table I_MATNR

    SORT i_matnr BY matnr.

    ENDIF.

    • Update Material Description from MAKT

    CLEAR i_matdoc.

    LOOP AT i_matdoc.

    IF i_matdoc-maktx = space.

    CLEAR struct_matdoc.

    struct_matdoc = i_matdoc.

    AT NEW matnr.

    CLEAR i_matnr.

    READ TABLE i_matnr WITH KEY matnr = struct_matdoc-matnr BINARY

    SEARCH.

    IF sy-subrc = 0. " If reading is successful

    *Modify material description for row(s) corresponding to the material

    *no.

    struct_matdoc-maktx = i_matnr-maktx.

    ENDIF.

    ENDAT.

    i_matdoc-maktx = struct_matdoc-maktx.

    MODIFY i_matdoc TRANSPORTING maktx WHERE matnr = i_matnr-matnr.

    CLEAR i_matnr.

    ENDIF.

    CLEAR i_matdoc.

    ENDLOOP.

    ENDIF.

    • Free the I_matdoc_distinct table.

    FREE I_MATDOC_DISTINCT.

    ENDFORM. " populate_matdoc

    &----


    *& Form populate_detl

    &----


    • This subroutine retrieves data from LTAK and LTAP tables depending

    • on the selection screen values and populates the table with Transfer

    • order information.

    ----


    FORM populate_detl .

    *Check if the table i_matdoc is not initial

    IF NOT i_matdoc[] IS INITIAL.

    • Retreieve Transfer Order from LTAK and LTAP

    SELECT a~mblnr " Material document no.

    a~mjahr " Material document year

    a~lgnum " Warehouse no.

    a~tanum " Transfer order no.

    b~matnr " Material no.

    b~tapos " Transfer order item

    a~bwlvs " Movement type for WM

    a~betyp " Requirement type

    a~benum " Requirement tracking no.

    b~bestq " Stock Category in the WM

    b~vltyp " Source storage type

    b~vlpla " Source storage bin

    b~vlenr " Source storage unit

    b~nltyp " Destination storage type

    b~nlpla " Destination storage bin

    b~nlenr " Destination storage unit

    • Begin of Changes Sutapa, May 26, 2003

    b~altme

    " Alternative Unit of Measure for Stockkeeping Unit

    b~vsola " Source target quantity in alternate unit

    b~vsolm " Source target quantity in stockkeeping unit

    b~nsola " Destination target quantity in alternative unit

    b~nsolm " Destination target quantity in stockkeeping unit

    • End of Changes Sutapa, May 26, 2003

    INTO CORRESPONDING FIELDS OF TABLE i_detl

    FROM ltak AS a INNER JOIN ltap AS b

    ON algnum = blgnum

    AND atanum = btanum

    FOR ALL ENTRIES IN i_matdoc

    WHERE a~mblnr = i_matdoc-mblnr

    AND a~mjahr = i_matdoc-mjahr

    AND b~matnr = i_matdoc-matnr.

    IF sy-subrc = 0.

    • Sort the table I_DETL

    SORT i_detl BY mblnr mjahr matnr.

    ENDIF.

    Perform Populate_detl_meins.

    ENDIF.

    ENDFORM. " populate_detl

    &----


    *& Form populate_mh

    &----


    • This subroutine retrieves data from RESB and T331 tables

    • and populates the table with Reservation information.

    ----


    FORM populate_mh .

    *Check if the table i_matdoc is not initial

    IF NOT i_matdoc[] IS INITIAL.

    • Retreieve Transfer Order from RESB

    SELECT a~aufnr " Process order

    a~werks " Plant

    a~matnr " Material no.

    a~charg " Batch

    a~lgnum " Warehouse no.

    a~lgpla " Storage bin

    a~lgtyp " Storage type

    a~bwart " Movement type

    a~rsnum " Reservation no.

    a~rspos " Reservation item

    a~rsart " Record type

    b~lenvw " Indicator - SU Managed

    INTO TABLE i_mh

    FROM resb AS a INNER JOIN t331 AS b

    ON algnum = blgnum

    AND algtyp = blgtyp

    FOR ALL ENTRIES IN i_matdoc

    WHERE a~rsnum = i_matdoc-rsnum

    AND a~rspos = i_matdoc-rspos

    AND a~rsart = i_matdoc-rsart

    AND a~aufnr = i_matdoc-aufnr

    AND a~matnr = i_matdoc-matnr.

    IF sy-subrc = 0.

    • Sort the table

    SORT i_mh BY rsnum rspos rsart matnr.

    ENDIF.

    ENDIF.

    ENDFORM. " populate_mh

    &----


    *& Form populate_t331

    &----


    • This subroutine retrieves data from T331

    • tables and populates the table with SU non SU managed

    • information.

    *&----


    &

    FORM populate_t331 .

    *Check if the table i_matdoc is not initial

    IF NOT i_matdoc[] IS INITIAL.

    • Retreieve Transfer Order from T331

    SELECT a~lgnum

    a~lgtyp

    a~lenvw

    INTO TABLE i_t331

    FROM t331 AS a

    FOR ALL ENTRIES IN i_matdoc

    WHERE a~lgnum = i_matdoc-lgnum

    AND a~lgtyp = i_matdoc-lgtyp.

    IF sy-subrc = 0.

    • Sort the table

    SORT i_t331 BY lgnum lgtyp.

    ENDIF.

    ENDIF.

    ENDFORM. " populate_t331

    &----


    *& Form create_output

    &----


    • This subroutine modifies anmd creates the final result table.

    • Depending on different conditions the i_detl table is modified to hold

    • Material Document Information, Transfer Order inmformation along with

    • all goods issues, goods receipts, items genearted with reference to a

    *reservation and for stocks which is Storage Unit managed and

    *non-storage

    • unit managed.

    ----


    FORM create_output .

    CLEAR i_matdoc.

    LOOP AT i_matdoc.

    IF i_matdoc-rsnum <> space AND i_matdoc-rspos <> space AND

    i_matdoc-tbnum <> space.

    CLEAR i_detl.

    READ TABLE i_detl WITH KEY mblnr = i_matdoc-mblnr

    mjahr = i_matdoc-mjahr

    matnr = i_matdoc-matnr BINARY SEARCH.

    IF sy-subrc = 0. " If reading is successful

    • Modify row(s) corresponding to the material document to I_DETL

    PERFORM modify_i_detl.

    ELSE. " If reading is not successful

    • Add a row corresponding to the material document to I_DETL

    PERFORM add_i_detl.

    ENDIF.

    ELSEIF i_matdoc-rsnum <> space AND i_matdoc-rspos <> space AND

    i_matdoc-tbnum = space.

    • Read the Reservation data from I_MH

    CLEAR i_mh.

    READ TABLE i_mh WITH KEY rsnum = i_matdoc-rsnum

    rspos = i_matdoc-rspos

    rsart = i_matdoc-rsart

    matnr = i_matdoc-matnr BINARY SEARCH.

    IF sy-subrc = 0. " If reading is successful

    IF i_mh-lenvw = c_x. " SU Managed

    CLEAR i_detl.

    READ TABLE i_detl WITH KEY mblnr = i_matdoc-mblnr

    mjahr = i_matdoc-mjahr

    matnr = i_matdoc-matnr BINARY

    SEARCH.

    IF sy-subrc = 0. " If reading is successful

    *Modify row(s) corresponding to the material document to I_DETL

    PERFORM modify_i_detl.

    ELSE. " If reading is not successful

    • Add a row corresponding to the material document to I_DETL

    PERFORM add_i_detl.

    ENDIF. " Reading of I_DETL

    ELSE. " Not SU Manged

    PERFORM add_i_detl_sp.

    ENDIF. " checking of C_X

    ELSE. " Reading of i_MH not succesful

    CLEAR i_detl.

    READ TABLE i_detl WITH KEY mblnr = i_matdoc-mblnr

    mjahr = i_matdoc-mjahr

    matnr = i_matdoc-matnr BINARY SEARCH.

    IF sy-subrc = 0. " If reading is successful

    • Modify row(s) corresponding to the material document to I_DETL

    PERFORM modify_i_detl.

    ELSE. " If reading is not successful

    • Add a row corresponding to the material document to I_DETL

    PERFORM add_i_detl.

    ENDIF. " Reading of I_DETL

    ENDIF. " Reading of I_MH

    ELSE.

    IF i_matdoc-rsnum = space AND i_matdoc-rspos = space .

    IF i_matdoc-tbnum <> space.

    CLEAR i_detl.

    READ TABLE i_detl WITH KEY mblnr = i_matdoc-mblnr

    mjahr = i_matdoc-mjahr

    matnr = i_matdoc-matnr BINARY

    SEARCH.

    IF sy-subrc = 0. " If reading is successful

    *Modify row(s) corresponding to the material document to I_DETL

    PERFORM modify_i_detl.

    ELSE. " If reading is not successful

    • Check for SU managed or not in the table i_t331

    CLEAR i_t331.

    READ TABLE i_t331 WITH KEY lgnum = i_matdoc-lgnum

    lgtyp = i_matdoc-lgtyp BINARY

    SEARCH.

    IF i_t331-lenvw = c_x. " SU Managed

    PERFORM add_i_detl.

    ELSE. " Non SU Managed

    PERFORM add_i_detl_sp.

    ENDIF.

    ENDIF. " Reading of I_DETL

    ELSE. " I_MATDOC-TBNUM is space

    PERFORM add_i_detl_sp.

    ENDIF.

    ENDIF.

    ENDIF.

    • Clear the header line.

    CLEAR i_matdoc.

    ENDLOOP.

    • Delete rows for which the Material document item has no value

    DELETE i_detl WHERE zeile = space.

    IF NOT s_strtyp IS INITIAL.

    *Delete rows from internal table not pertaining to the Storage Type

    *passed

    DELETE i_detl WHERE NOT lgtyp IN s_strtyp.

    ENDIF.

    IF NOT s_strbin IS INITIAL.

    *Delete rows from internal table not pertaining to the Storage Bin

    *passed

    DELETE i_detl WHERE NOT lgpla IN s_strbin.

    ENDIF.

    IF NOT s_strunt IS INITIAL.

    *Delete rows from internal table not pertaining to the Storage Unit

    *number passed

    DELETE i_detl WHERE NOT lenum IN s_strunt.

    ENDIF.

    • Change the sign for Quantity depending whether debit / credit

    LOOP AT i_detl.

    IF i_detl-shkzg = c_h . " For credit

    i_detl-erfmg = - i_detl-erfmg.

    i_detl-menge = - i_detl-menge.

    MODIFY i_detl TRANSPORTING erfmg menge.

    ENDIF.

    CLEAR i_detl.

    ENDLOOP.

    ENDFORM . " create_output

    &----


    *& Form modify_i_detl

    &----


    • This subroutine modifies row(s) corresponding to material document

    ----


    FORM modify_i_detl .

    • Modify row(s) corresponding to the material document to I_DETL

    • Begin of Changes made by Sutapa May 26, 2003

    DATA : l_index TYPE i.

    CLEAR: l_index.

    l_index = 1.

    CLEAR i_detl.

    LOOP AT i_detl.

    IF i_detl-mblnr = i_matdoc-mblnr AND i_detl-mjahr = i_matdoc-mjahr

    AND i_detl-matnr = i_matdoc-matnr.

    • End of Changes made by Sutapa May 26, 2003

    i_detl-matnr = i_matdoc-matnr.

    i_detl-charg = i_matdoc-charg.

    i_detl-werks = i_matdoc-werks.

    i_detl-lgort = i_matdoc-lgort.

    i_detl-bwart = i_matdoc-bwart.

    i_detl-sobkz = i_matdoc-sobkz.

    i_detl-mblnr = i_matdoc-mblnr.

    i_detl-zeile = i_matdoc-zeile.

    i_detl-budat = i_matdoc-budat.

    • Begin of Changes made by Sutapa May 26, 2003

    • i_detl-erfmg = i_matdoc-erfmg.

    • i_detl-erfme = i_matdoc-erfme.

    • IF i_matdoc-shkzg = c_h.

    • i_detl-lgtyp = i_detl-vltyp.

    • i_detl-lgpla = i_detl-vlpla.

    • i_detl-lenum = i_detl-vlenr.

    • ELSE.

    • IF i_matdoc-shkzg = c_s.

    • i_detl-lgtyp = i_detl-nltyp.

    • i_detl-lgpla = i_detl-nlpla.

    • i_detl-lenum = i_detl-nlenr.

    • ENDIF. " checking of C-s

    • ENDIF.

    IF i_matdoc-shkzg = c_h.

    i_detl-erfmg = i_detl-vsola.

    i_detl-erfme = i_detl-altme. " Unit in Alternative Unit of entry

    i_detl-lgtyp = i_detl-vltyp.

    i_detl-lgpla = i_detl-vlpla.

    i_detl-lenum = i_detl-vlenr.

    i_detl-meins = i_detl-meins_to.

    i_detl-menge = i_detl-vsolm.

    ELSE.

    IF i_matdoc-shkzg = c_s.

    i_detl-erfmg = i_detl-nsola.

    i_detl-erfme = i_detl-altme.

    " Unit in Alternative Unit of entry

    i_detl-lgtyp = i_detl-nltyp.

    i_detl-lgpla = i_detl-nlpla.

    i_detl-lenum = i_detl-nlenr.

    i_detl-meins = i_detl-meins_to.

    i_detl-menge = i_detl-nsolm.

    ENDIF. " checking of C-s

    ENDIF.

    • End of Changes made by Sutapa May 26, 2003

    • Additional fields

    i_detl-maktx = i_matdoc-maktx.

    i_detl-insmk = i_matdoc-insmk.

    i_detl-aufnr = i_matdoc-aufnr.

    i_detl-aufpl = i_matdoc-aufpl.

    i_detl-bktxt = i_matdoc-bktxt.

    i_detl-bldat = i_matdoc-bldat.

    i_detl-cpudt = i_matdoc-cpudt.

    i_detl-cputm = i_matdoc-cputm.

    i_detl-kzbew = i_matdoc-kzbew.

    i_detl-lifnr = i_matdoc-lifnr.

    • Begin of Changes made by Sutapa May 26, 2003

    • i_detl-meins = i_matdoc-meins.

    • i_detl-menge = i_matdoc-menge.

    • End of Changes made by Sutapa May 26, 2003

    i_detl-mjahr = i_matdoc-mjahr.

    i_detl-rsnum = i_matdoc-rsnum.

    i_detl-rspos = i_matdoc-rspos.

    i_detl-shkzg = i_matdoc-shkzg.

    i_detl-usnam = i_matdoc-usnam.

    i_detl-vgart = i_matdoc-vgart.

    i_detl-xabln = i_matdoc-xabln.

    i_detl-tbnum = i_matdoc-tbnum.

    • Begin of Changes made by Sutapa May 26, 2003

    *MODIFY i_detl TRANSPORTING matnr charg werks lgort bwart sobkz mblnr

    *zeile budat erfmg erfme lgtyp lgpla lenum lgtyp lgpla

    *lenum maktx insmk aufnr aufpl bktxt bldat cpudt cputm kzbew lifnr meins

    *menge mjahr rsnum rspos shkzg usnam vgart xabln

    • WHERE mblnr = i_matdoc-mblnr

    • AND mjahr = i_matdoc-mjahr

    • AND matnr = i_matdoc-matnr.

    MODIFY i_detl index l_index TRANSPORTING matnr charg werks lgort

    bwart sobkz mblnr zeile budat erfmg erfme lgtyp lgpla lenum lgtyp

    lgpla

    lenum maktx insmk aufnr aufpl bktxt bldat cpudt cputm kzbew lifnr

    meins menge mjahr rsnum rspos shkzg usnam vgart xabln.

    ENDIF.

    l_index = l_index + 1.

    CLEAR i_detl.

    ENDLOOP.

    • End of Changes made by Sutapa May 26, 2003

    ENDFORM. " modify_i_detl

    &----


    *& Form add_i_detl

    &----


    • This subroutine adds row(s) corresponding to material document

    ----


    FORM add_i_detl .

    • Add a row corresponding to the material document to I_DETL

    i_detl-matnr = i_matdoc-matnr.

    i_detl-charg = i_matdoc-charg.

    i_detl-lgort = i_matdoc-lgort.

    i_detl-werks = i_matdoc-werks.

    i_detl-bwart = i_matdoc-bwart.

    i_detl-sobkz = i_matdoc-sobkz.

    i_detl-mblnr = i_matdoc-mblnr.

    i_detl-zeile = i_matdoc-zeile.

    i_detl-budat = i_matdoc-budat.

    i_detl-erfmg = i_matdoc-erfmg.

    i_detl-erfme = i_matdoc-erfme.

    i_detl-lgtyp = text-108. " Err

    i_detl-lgpla = text-108. " Err

    i_detl-lenum = text-109. " Err

    • Additional fields

    i_detl-maktx = i_matdoc-maktx.

    i_detl-insmk = i_matdoc-insmk.

    i_detl-aufnr = i_matdoc-aufnr.

    i_detl-aufpl = i_matdoc-aufpl.

    i_detl-bktxt = i_matdoc-bktxt.

    i_detl-bldat = i_matdoc-bldat.

    i_detl-cpudt = i_matdoc-cpudt.

    i_detl-cputm = i_matdoc-cputm.

    i_detl-kzbew = i_matdoc-kzbew.

    i_detl-lifnr = i_matdoc-lifnr.

    i_detl-meins = i_matdoc-meins.

    i_detl-menge = i_matdoc-menge.

    i_detl-mjahr = i_matdoc-mjahr.

    i_detl-rsnum = i_matdoc-rsnum.

    i_detl-rspos = i_matdoc-rspos.

    i_detl-shkzg = i_matdoc-shkzg.

    i_detl-usnam = i_matdoc-usnam.

    i_detl-vgart = i_matdoc-vgart.

    i_detl-xabln = i_matdoc-xabln.

    i_detl-lgnum = space.

    i_detl-tanum = space.

    i_detl-tapos = space.

    i_detl-bwlvs = space.

    i_detl-betyp = space.

    i_detl-benum = space.

    i_detl-bestq = space.

    i_detl-vltyp = space.

    i_detl-vlpla = space.

    i_detl-vlenr = space.

    i_detl-nltyp = space.

    i_detl-nlpla = space.

    i_detl-nlenr = space.

    • Append to the I_DETL table

    APPEND i_detl.

    ENDFORM. " add_i_detl

    &----


    *& Form add_i_detl_sp

    &----


    • This subroutine adds a row corresponding to the material document

    • with Storage Unit as space

    ----


    FORM add_i_detl_sp .

    *Add a row corresponding to the material document to I_DETL with Storage

    *Unit as space

    i_detl-matnr = i_matdoc-matnr.

    i_detl-charg = i_matdoc-charg.

    i_detl-lgort = i_matdoc-lgort.

    i_detl-werks = i_matdoc-werks.

    i_detl-bwart = i_matdoc-bwart.

    i_detl-sobkz = i_matdoc-sobkz.

    i_detl-mblnr = i_matdoc-mblnr.

    i_detl-zeile = i_matdoc-zeile.

    i_detl-budat = i_matdoc-budat.

    i_detl-erfmg = i_matdoc-erfmg.

    i_detl-erfme = i_matdoc-erfme.

    i_detl-lgtyp = i_matdoc-lgtyp.

    i_detl-lgpla = i_matdoc-lgpla.

    i_detl-lenum = space.

    • Additional fields

    i_detl-maktx = i_matdoc-maktx.

    i_detl-insmk = i_matdoc-insmk.

    i_detl-aufnr = i_matdoc-aufnr.

    i_detl-aufpl = i_matdoc-aufpl.

    i_detl-bktxt = i_matdoc-bktxt.

    i_detl-bldat = i_matdoc-bldat.

    i_detl-cpudt = i_matdoc-cpudt.

    i_detl-cputm = i_matdoc-cputm.

    i_detl-kzbew = i_matdoc-kzbew.

    i_detl-lifnr = i_matdoc-lifnr.

    i_detl-meins = i_matdoc-meins.

    i_detl-menge = i_matdoc-menge.

    i_detl-mjahr = i_matdoc-mjahr.

    i_detl-rsnum = i_matdoc-rsnum.

    i_detl-rspos = i_matdoc-rspos.

    i_detl-shkzg = i_matdoc-shkzg.

    i_detl-usnam = i_matdoc-usnam.

    i_detl-vgart = i_matdoc-vgart.

    i_detl-xabln = i_matdoc-xabln.

    i_detl-lgnum = space.

    i_detl-tanum = space.

    i_detl-tapos = space.

    i_detl-bwlvs = space.

    i_detl-betyp = space.

    i_detl-benum = space.

    i_detl-bestq = space.

    i_detl-vltyp = space.

    i_detl-vlpla = space.

    i_detl-vlenr = space.

    i_detl-nltyp = space.

    i_detl-nlpla = space.

    i_detl-nlenr = space.

    • Append to the I_DETL table

    APPEND i_detl.

    • Sort the I_DETL table

    SORT i_detl BY mblnr.

    ENDFORM. " add_i_detl_sp

    &----


    *& Form prepare_alv_output

    &----


    • This subroutine preapres the ALV output

    ----


    FORM prepare_alv_output .

    *Build up fieldcatalog for the fields to be displayed

    IF NOT i_output[] IS INITIAL.

    PERFORM sub_fcat_build. " Build the field catalog

    ELSE.

    MESSAGE i999 WITH 'No records found to be displayed'(106).

    LEAVE LIST-PROCESSING.

    ENDIF.

    *Build up keyinfo for the fields to be displayed

    PERFORM sortinfo_build.

    *Build up layoutinfo for the fields to be displayed

    PERFORM layout_build USING i_layout.

    *Build up Variant information for the fields to be displayed

    PERFORM varinfo_build.

    • Check if the Field Catalog internal Table is not empty

    IF NOT i_fcat[] IS INITIAL.

    • Call ALV Grid Viewer

    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

    EXPORTING

    i_callback_program = v_repid

    is_layout = i_layout

    it_fieldcat = i_fcat

    it_sort = i_sort

    i_default = c_x

    i_save = c_a

    is_variant = struct_variant

    TABLES

    t_outtab = i_output

    EXCEPTIONS

    program_error = 1

    OTHERS = 2.

    IF sy-subrc <> 0.

    • Issue error message and stop processing

    MESSAGE i999 WITH 'Error in ALV Function'(107).

    LEAVE LIST-PROCESSING.

    ENDIF.

    ENDIF.

    ENDFORM. " prepare_alv_output

    &----


    *& Form sub_fcat_build

    &----


    • This subroutine builds the field catalog

    ----


    FORM sub_fcat_build .

    DATA : l_tabname1 TYPE tabname, "table name

    l_tabname2 TYPE tabname, "table name

    l_tabname3 TYPE tabname, "table name

    l_tabname4 TYPE tabname, "table name

    l_tabname5 TYPE tabname, "table name

    l_tabname6 TYPE tabname, "table name

    l_field1 TYPE fieldname, "field name

    l_field2 TYPE fieldname, "field name

    l_field3 TYPE fieldname, "field name

    l_field4 TYPE fieldname, "field name

    l_field5 TYPE fieldname, "field name

    l_field6 TYPE fieldname, "field name

    l_field7 TYPE fieldname, "field name

    l_field8 TYPE fieldname, "field name

    l_field9 TYPE fieldname, "field name

    l_field10 TYPE fieldname, "field name

    l_field11 TYPE fieldname, "field name

    l_field12 TYPE fieldname, "field name

    l_field13 TYPE fieldname, "field name

    l_field14 TYPE fieldname, "field name

    l_field15 TYPE fieldname, "field name

    l_field16 TYPE fieldname, "field name

    l_field17 TYPE fieldname, "field name

    l_field18 TYPE fieldname, "field name

    l_field19 TYPE fieldname, "field name

    l_field20 TYPE fieldname, "field name

    l_field21 TYPE fieldname, "field name

    l_field22 TYPE fieldname, "field name

    l_field23 TYPE fieldname, "field name

    l_field24 TYPE fieldname, "field name

    l_field25 TYPE fieldname, "field name

    l_field26 TYPE fieldname, "field name

    l_field27 TYPE fieldname, "field name

    l_field28 TYPE fieldname, "field name

    l_field29 TYPE fieldname, "field name

    l_field30 TYPE fieldname, "field name

    l_field31 TYPE fieldname, "field name

    l_field32 TYPE fieldname, "field name

    l_field33 TYPE fieldname, "field name

    l_field34 TYPE fieldname, "field name

    l_field35 TYPE fieldname, "field name

    l_field36 TYPE fieldname, "field name

    l_field37 TYPE fieldname, "field name

    l_field38 TYPE fieldname, "field name

    l_field39 TYPE fieldname, "field name

    l_field40 TYPE fieldname, "field name

    l_field41 TYPE fieldname, "field name

    l_field42 TYPE fieldname, "field name

    l_field43 TYPE fieldname, "field name

    l_field44 TYPE fieldname, "field name

    l_field45 TYPE fieldname, "field name

    l_field46 TYPE fieldname, "field name

    l_sycucol01 TYPE sycucol, "current column

    l_sycucol02 TYPE sycucol, "current column

    l_sycucol03 TYPE sycucol, "current column

    l_sycucol04 TYPE sycucol, "current column

    l_sycucol05 TYPE sycucol, "current column

    l_sycucol06 TYPE sycucol, "current column

    l_sycucol07 TYPE sycucol, "current column

    l_sycucol08 TYPE sycucol, "current column

    l_sycucol09 TYPE sycucol, "current column

    l_sycucol10 TYPE sycucol, "current column

    l_sycucol11 TYPE sycucol, "current column

    l_sycucol12 TYPE sycucol, "current column

    l_sycucol13 TYPE sycucol, "current column

    l_sycucol14 TYPE sycucol, "current column

    l_sycucol15 TYPE sycucol, "current column

    l_sycucol16 TYPE sycucol, "current column

    l_sycucol17 TYPE sycucol, "current column

    l_sycucol18 TYPE sycucol, "current column

    l_sycucol19 TYPE sycucol, "current column

    l_sycucol20 TYPE sycucol, "current column

    l_sycucol21 TYPE sycucol, "current column

    l_sycucol22 TYPE sycucol, "current column

    l_sycucol23 TYPE sycucol, "current column

    l_sycucol24 TYPE sycucol, "current column

    l_sycucol25 TYPE sycucol, "current column

    l_sycucol26 TYPE sycucol, "current column

    l_sycucol27 TYPE sycucol, "current column

    l_sycucol28 TYPE sycucol, "current column

    l_sycucol29 TYPE sycucol, "current column

    l_sycucol30 TYPE sycucol, "current column

    l_sycucol31 TYPE sycucol, "current column

    l_sycucol32 TYPE sycucol, "current column

    l_sycucol33 TYPE sycucol, "current column

    l_sycucol34 TYPE sycucol, "current column

    l_sycucol35 TYPE sycucol, "current column

    l_sycucol36 TYPE sycucol, "current column

    l_sycucol37 TYPE sycucol, "current column

    l_sycucol38 TYPE sycucol, "current column

    l_sycucol39 TYPE sycucol, "current column

    l_sycucol40 TYPE sycucol, "current column

    l_sycucol41 TYPE sycucol, "current column

    l_sycucol42 TYPE sycucol, "current column

    l_sycucol43 TYPE sycucol, "current column

    l_sycucol44 TYPE sycucol, "current column

    l_sycucol45 TYPE sycucol, "current column

    l_sycucol46 TYPE sycucol, "current column

    l_txt1 TYPE reptxt, "header text

    l_txt2 TYPE reptxt, "header text

    l_txt3 TYPE reptxt, "header text

    l_txt4 TYPE reptxt, "header text

    l_txt5 TYPE reptxt, "header text

    l_txt6 TYPE reptxt, "header text

    l_txt7 TYPE reptxt, "header text

    l_txt8 TYPE reptxt, "header text

    l_txt9 TYPE reptxt, "header text

    l_txt10 TYPE reptxt, "header text

    l_txt11 TYPE reptxt, "header text

    l_txt12 TYPE reptxt, "header text

    l_txt13 TYPE reptxt, "header text

    l_txt14 TYPE reptxt, "header text

    l_txt15 TYPE reptxt, "header text

    l_txt16 TYPE reptxt, "header text

    l_txt17 TYPE reptxt, "header text

    l_txt18 TYPE reptxt, "header text

    l_txt19 TYPE reptxt, "header text

    l_txt20 TYPE reptxt, "header text

    l_txt21 TYPE reptxt, "header text

    l_txt22 TYPE reptxt, "header text

    l_txt23 TYPE reptxt, "header text

    l_txt24 TYPE reptxt, "header text

    l_txt25 TYPE reptxt, "header text

    l_txt26 TYPE reptxt, "header text

    l_txt27 TYPE reptxt, "header text

    l_txt28 TYPE reptxt, "header text

    l_txt29 TYPE reptxt, "header text

    l_txt30 TYPE reptxt, "header text

    l_txt31 TYPE reptxt, "header text

    l_txt32 TYPE reptxt, "header text

    l_txt33 TYPE reptxt, "header text

    l_txt34 TYPE reptxt, "header text

    l_txt35 TYPE reptxt, "header text

    l_txt36 TYPE reptxt, "header text

    l_txt37 TYPE reptxt, "header text

    l_txt38 TYPE reptxt, "header text

    l_txt39 TYPE reptxt, "header text

    l_txt40 TYPE reptxt, "header text

    l_txt41 TYPE reptxt, "header text

    l_txt42 TYPE reptxt, "header text

    l_txt43 TYPE reptxt, "header text

    l_txt44 TYPE reptxt, "header text

    l_txt45 TYPE reptxt, "header text

    l_txt46 TYPE reptxt, "header text

    l_sel_ltxt1 TYPE reptxt, "header text

    l_sel_ltxt2 TYPE reptxt, "header text

    l_sel_ltxt3 TYPE reptxt, "header text

    l_sel_ltxt4 TYPE reptxt, "header text

    l_sel_ltxt5 TYPE reptxt, "header text

    l_sel_ltxt6 TYPE reptxt, "header text

    l_sel_ltxt7 TYPE reptxt, "header text

    l_sel_ltxt8 TYPE reptxt, "header text

    l_sel_ltxt9 TYPE reptxt, "header text

    l_sel_ltxt10 TYPE reptxt, "header text

    l_sel_ltxt11 TYPE reptxt, "header text

    l_sel_ltxt12 TYPE reptxt, "header text

    l_sel_ltxt13 TYPE reptxt, "header text

    l_sel_ltxt14 TYPE reptxt, "header text

    l_sel_ltxt15 TYPE reptxt, "header text

    l_sel_ltxt16 TYPE reptxt, "header text

    l_sel_ltxt17 TYPE reptxt, "header text

    l_sel_ltxt18 TYPE reptxt, "header text

    l_sel_ltxt19 TYPE reptxt, "header text

    l_sel_ltxt20 TYPE reptxt, "header text

    l_sel_ltxt21 TYPE reptxt, "header text

    l_sel_ltxt22 TYPE reptxt, "header text

    l_sel_ltxt23 TYPE reptxt, "header text

    l_sel_ltxt24 TYPE reptxt, "header text

    l_sel_ltxt25 TYPE reptxt, "header text

    l_sel_ltxt26 TYPE reptxt, "header text

    l_sel_ltxt27 TYPE reptxt, "header text

    l_sel_ltxt28 TYPE reptxt, "header text

    l_sel_ltxt29 TYPE reptxt, "header text

    l_sel_ltxt30 TYPE reptxt, "header text

    l_sel_ltxt31 TYPE reptxt, "header text

    l_sel_ltxt32 TYPE reptxt, "header text

    l_sel_ltxt33 TYPE reptxt, "header text

    l_sel_ltxt34 TYPE reptxt, "header text

    l_sel_ltxt35 TYPE reptxt, "header text

    l_sel_ltxt36 TYPE reptxt, "header text

    l_sel_ltxt37 TYPE reptxt, "header text

    l_sel_ltxt38 TYPE reptxt, "header text

    l_sel_ltxt39 TYPE reptxt, "header text

    l_sel_ltxt40 TYPE reptxt, "header text

    l_sel_ltxt41 TYPE reptxt, "header text

    l_sel_ltxt42 TYPE reptxt, "header text

    l_sel_ltxt43 TYPE reptxt, "header text

    l_sel_ltxt44 TYPE reptxt, "header text

    l_sel_ltxt45 TYPE reptxt, "header text

    l_sel_ltxt46 TYPE reptxt, "header text

    l_sel_mtxt1 TYPE reptxt, "header text

    l_sel_mtxt2 TYPE reptxt, "header text

    l_sel_mtxt3 TYPE reptxt, "header text

    l_sel_mtxt4 TYPE reptxt, "header text

    l_sel_mtxt5 TYPE reptxt, "header text

    l_sel_mtxt6 TYPE reptxt, "header text

    l_sel_mtxt7 TYPE reptxt, "header text

    l_sel_mtxt8 TYPE reptxt, "header text

    l_sel_mtxt9 TYPE reptxt, "header text

    l_sel_mtxt10 TYPE reptxt, "header text

    l_sel_mtxt11 TYPE reptxt, "header text

    l_sel_mtxt12 TYPE reptxt, "header text

    l_sel_mtxt13 TYPE reptxt, "header text

    l_sel_mtxt14 TYPE reptxt, "header text

    l_sel_mtxt15 TYPE reptxt, "header text

    l_sel_mtxt16 TYPE reptxt, "header text

    l_sel_mtxt17 TYPE reptxt, "header text

    l_sel_mtxt18 TYPE reptxt, "header text

    l_sel_mtxt19 TYPE reptxt, "header text

    l_sel_mtxt20 TYPE reptxt, "header text

    l_sel_mtxt21 TYPE reptxt, "header text

    l_sel_mtxt22 TYPE reptxt, "header text

    l_sel_mtxt23 TYPE reptxt, "header text

    l_sel_mtxt24 TYPE reptxt, "header text

    l_sel_mtxt25 TYPE reptxt, "header text

    l_sel_mtxt26 TYPE reptxt, "header text

    l_sel_mtxt27 TYPE reptxt, "header text

    l_sel_mtxt28 TYPE reptxt, "header text

    l_sel_mtxt29 TYPE reptxt, "header text

    l_sel_mtxt30 TYPE reptxt, "header text

    l_sel_mtxt31 TYPE reptxt, "header text

    l_sel_mtxt32 TYPE reptxt, "header text

    l_sel_mtxt33 TYPE reptxt, "header text

    l_sel_mtxt34 TYPE reptxt, "header text

    l_sel_mtxt35 TYPE reptxt, "header text

    l_sel_mtxt36 TYPE reptxt, "header text

    l_sel_mtxt37 TYPE reptxt, "header text

    l_sel_mtxt38 TYPE reptxt, "header text

    l_sel_mtxt39 TYPE reptxt, "header text

    l_sel_mtxt40 TYPE reptxt, "header text

    l_sel_mtxt41 TYPE reptxt, "header text

    l_sel_mtxt42 TYPE reptxt, "header text

    l_sel_mtxt43 TYPE reptxt, "header text

    l_sel_mtxt44 TYPE reptxt, "header text

    l_sel_mtxt45 TYPE reptxt, "header text

    l_sel_mtxt46 TYPE reptxt, "header text

    l_sel_stxt1 TYPE reptxt, "header text

    l_sel_stxt2 TYPE reptxt, "header text

    l_sel_stxt3 TYPE reptxt, "header text

    l_sel_stxt4 TYPE reptxt, "header text

    l_sel_stxt5 TYPE reptxt, "header text

    l_sel_stxt6 TYPE reptxt, "header text

    l_sel_stxt7 TYPE reptxt, "header text

    l_sel_stxt8 TYPE reptxt, "header text

    l_sel_stxt9 TYPE reptxt, "header text

    l_sel_stxt10 TYPE reptxt, "header text

    l_sel_stxt11 TYPE reptxt, "header text

    l_sel_stxt12 TYPE reptxt, "header text

    l_sel_stxt13 TYPE reptxt, "header text

    l_sel_stxt14 TYPE reptxt, "header text

    l_sel_stxt15 TYPE reptxt, "header text

    l_sel_stxt16 TYPE reptxt, "header text

    l_sel_stxt17 TYPE reptxt, "header text

    l_sel_stxt18 TYPE reptxt, "header text

    l_sel_stxt19 TYPE reptxt, "header text

    l_sel_stxt20 TYPE reptxt, "header text

    l_sel_stxt21 TYPE reptxt, "header text

    l_sel_stxt22 TYPE reptxt, "header text

    l_sel_stxt23 TYPE reptxt, "header text

    l_sel_stxt24 TYPE reptxt, "header text

    l_sel_stxt25 TYPE reptxt, "header text

    l_sel_stxt26 TYPE reptxt, "header text

    l_sel_stxt27 TYPE reptxt, "header text

    l_sel_stxt28 TYPE reptxt, "header text

    l_sel_stxt29 TYPE reptxt, "header text

    l_sel_stxt30 TYPE reptxt, "header text

    l_sel_stxt31 TYPE reptxt, "header text

    l_sel_stxt32 TYPE reptxt, "header text

    l_sel_stxt33 TYPE reptxt, "header text

    l_sel_stxt34 TYPE reptxt, "header text

    l_sel_stxt35 TYPE reptxt, "header text

    l_sel_stxt36 TYPE reptxt, "header text

    l_sel_stxt37 TYPE reptxt, "header text

    l_sel_stxt38 TYPE reptxt, "header text

    l_sel_stxt39 TYPE reptxt, "header text

    l_sel_stxt40 TYPE reptxt, "header text

    l_sel_stxt41 TYPE reptxt, "header text

    l_sel_stxt42 TYPE reptxt, "header text

    l_sel_stxt43 TYPE reptxt, "header text

    l_sel_stxt44 TYPE reptxt, "header text

    l_sel_stxt45 TYPE reptxt, "header text

    l_sel_stxt46 TYPE reptxt, "header text

    l_reffield1 TYPE fieldname, "Reference field name

    l_reffield2 TYPE fieldname, "Reference field name

    l_reffield3 TYPE fieldname, "Reference field name

    l_reffield4 TYPE fieldname, "Reference field name

    l_reffield5 TYPE fieldname, "Reference field name

    l_reffield6 TYPE fieldname, "Reference field name

    l_reffield7 TYPE fieldname, "Reference field name

    l_reffield8 TYPE fieldname, "Reference field name

    l_reffield9 TYPE fieldname, "Reference field name

    l_reffield10 TYPE fieldname, "Reference field name

    l_reffield11 TYPE fieldname, "Reference field name

    l_reffield12 TYPE fieldname, "Reference field name

    l_reffield13 TYPE fieldname, "Reference field name

    l_reffield14 TYPE fieldname, "Reference field name

    l_reffield15 TYPE fieldname, "Reference field name

    l_reffield16 TYPE fieldname, "Reference field name

    l_reffield17 TYPE fieldname, "Reference field name

    l_reffield18 TYPE fieldname, "Reference field name

    l_reffield19 TYPE fieldname, "Reference field name

    l_reffield20 TYPE fieldname, "Reference field name

    l_reffield21 TYPE fieldname, "Reference field name

    l_reffield22 TYPE fieldname, "Reference field name

    l_reffield23 TYPE fieldname, "Reference field name

    l_reffield24 TYPE fieldname, "Reference field name

    l_reffield25 TYPE fieldname, "Reference field name

    l_reffield26 TYPE fieldname, "Reference field name

    l_reffield27 TYPE fieldname, "Reference field name

    l_reffield28 TYPE fieldname, "Reference field name

    l_reffield29 TYPE fieldname, "Reference field name

    l_reffield30 TYPE fieldname, "Reference field name

    l_reffield31 TYPE fieldname, "Reference field name

    l_reffield32 TYPE fieldname, "Reference field name

    l_reffield33 TYPE fieldname, "Reference field name

    l_reffield34 TYPE fieldname, "Reference field name

    l_reffield35 TYPE fieldname, "Reference field name

    l_reffield36 TYPE fieldname, "Reference field name

    l_reffield37 TYPE fieldname, "Reference field name

    l_reffield38 TYPE fieldname, "Reference field name

    l_reffield39 TYPE fieldname, "Reference field name

    l_reffield40 TYPE fieldname, "Reference field name

    l_reffield41 TYPE fieldname, "Reference field name

    l_reffield42 TYPE fieldname, "Reference field name

    l_reffield43 TYPE fieldname, "Reference field name

    l_reffield44 TYPE fieldname, "Reference field name

    l_reffield45 TYPE fieldname, "Reference field name

    l_reffield46 TYPE fieldname, "Reference field name

    l_int_tabname TYPE tabname. "internal table name

    • Assign table name for ALV report

    l_tabname1 = c_mseg.

    l_tabname2 = c_mkpf.

    l_tabname3 = c_ltak.

    l_tabname4 = c_ltap.

    l_tabname5 = c_makt.

    l_tabname6 = c_lein.

    • Assign Current column position

    l_sycucol01 = c_01. " value 01

    l_sycucol02 = c_02. " value 02

    l_sycucol03 = c_03. " value 03

    l_sycucol04 = c_04. " value 04

    l_sycucol05 = c_05. " value 05

    l_sycucol06 = c_06. " value 06

    l_sycucol07 = c_07. " value 07

    l_sycucol08 = c_08. " value 08

    l_sycucol09 = c_09. " value 09

    l_sycucol10 = c_10. " value 10

    l_sycucol11 = c_11. " value 11

    l_sycucol12 = c_12. " value 12

    l_sycucol13 = c_13. " value 13

    l_sycucol14 = c_14. " value 14

    l_sycucol15 = c_15. " value 15

    l_sycucol16 = c_16. " value 16

    l_sycucol17 = c_17. " value 17

    l_sycucol18 = c_18. " value 18

    l_sycucol19 = c_19. " value 19

    l_sycucol20 = c_20. " value 20

    l_sycucol21 = c_21. " value 21

    l_sycucol22 = c_22. " value 22

    l_sycucol23 = c_23. " value 23

    l_sycucol24 = c_24. " value 24

    l_sycucol25 = c_25. " value 25

    l_sycucol26 = c_26. " value 26

    l_sycucol27 = c_27. " value 27

    l_sycucol28 = c_28. " value 28

    l_sycucol29 = c_29. " value 29

    l_sycucol30 = c_30. " value 30

    l_sycucol31 = c_31. " value 31

    l_sycucol32 = c_32. " value 32

    l_sycucol33 = c_33. " value 33

    l_sycucol34 = c_34. " value 34

    l_sycucol35 = c_35. " value 35

    l_sycucol36 = c_36. " value 36

    l_sycucol37 = c_37. " value 37

    l_sycucol38 = c_38. " value 38

    l_sycucol39 = c_39. " value 39

    l_sycucol40 = c_40. " value 40

    l_sycucol41 = c_41. " value 41

    l_sycucol42 = c_42. " value 42

    l_sycucol43 = c_43. " value 43

    l_sycucol44 = c_44. " value 44

    l_sycucol45 = c_45. " value 45

    l_sycucol46 = c_46. " value 46

    • Assign Internal table name

    l_int_tabname = 'I_OUTPUT'.

    • Assign Detailed text to printed

    l_txt1 = text-050. "Material.

    l_txt2 = text-051. "Batch.

    l_txt3 = text-052. "Plant.

    l_txt4 = text-053. "Sloc.

    l_txt5 = text-054. "Mvt.

    l_txt6 = text-055. "S.

    l_txt7 = text-056. "Material Doc.

    l_txt8 = text-057. "Item.

    l_txt9 = text-058. "Posting Date.

    l_txt10 = text-059. "Qty in unit of Entry.

    l_txt11 = text-060. "EUn.

    l_txt12 = text-061. "St. Typ.

    l_txt13 = text-062. "St. Bin.

    l_txt14 = text-063. "Storage Unit.

    l_txt15 = text-064. "Material Description.

    l_txt16 = text-065. "Stock Type.

    l_txt17 = text-066. "Order.

    l_txt18 = text-067. "Routing Number for Operations.

    l_txt19 = text-068. "Document Header Text.

    l_txt20 = text-069. "Document Date.

    l_txt21 = text-070. "Entry Date.

    l_txt22 = text-071. "Time of Entry.

    l_txt23 = text-072. "Movement Indicator.

    l_txt24 = text-073. "Vendor.

    l_txt25 = text-074. "Base Unit of Measure.

    l_txt26 = text-075. "Quantity.

    l_txt27 = text-076. "Material Doc. Year.

    l_txt28 = text-077. "Reservation.

    l_txt29 = text-078.

    "Item No. Reservation/Dependent Reservation.

    l_txt30 = text-079. "Debit/Credit Ind.

    l_txt31 = text-080. "User Name.

    l_txt32 = text-081. "Trans./Event Type.

    l_txt33 = text-082. "GR/GI Slip No..

    l_txt34 = text-083. "Warehouse Number.

    l_txt35 = text-084. "Transfer Order Number.

    l_txt36 = text-085. "Transfer Order Item.

    l_txt37 = text-086. "WM Movement Type.

    l_txt38 = text-087. "Requirement Type.

    l_txt39 = text-088. "Requirement Tracking Number.

    l_txt40 = text-089. "Stock Category in Warehouse Mgmt System.

    l_txt41 = text-090. "Source Storage Type.

    l_txt42 = text-091. "Source Storage Bin.

    l_txt43 = text-092. "Source Storage Unit.

    l_txt44 = text-093. "Destination Storage Type.

    l_txt45 = text-094. "Destination Storage Bin.

    l_txt46 = text-095. "Destination Storage Unit.

    • Assign Detailed text to printed-long

    l_sel_ltxt1 = text-050. "Material.

    l_sel_ltxt2 = text-051. "Batch.

    l_sel_ltxt3 = text-052. "Plant.

    l_sel_ltxt4 = text-053. "Sloc.

    l_sel_ltxt5 = text-054. "Mvt.

    l_sel_ltxt6 = text-055. "S.

    l_sel_ltxt7 = text-056. "Material Doc.

    l_sel_ltxt8 = text-057. "Item.

    l_sel_ltxt9 = text-058. "Posting Date.

    l_sel_ltxt10 = text-059. "Qty in unit of Entry.

    l_sel_ltxt11 = text-060. "EUn.

    l_sel_ltxt12 = text-061. "St. Typ.

    l_sel_ltxt13 = text-062. "St. Bin.

    l_sel_ltxt14 = text-063. "Storage Unit.

    l_sel_ltxt15 = text-064. "Material Description.

    l_sel_ltxt16 = text-065. "Stock Type.

    l_sel_ltxt17 = text-066. "Order.

    l_sel_ltxt18 = text-067. "Routing Number for Operations.

    l_sel_ltxt19 = text-068. "Document Header Text.

    l_sel_ltxt20 = text-069. "Document Date.

    l_sel_ltxt21 = text-070. "Entry Date.

    l_sel_ltxt22 = text-071. "Time of Entry.

    l_sel_ltxt23 = text-072. "Movement Indicator.

    l_sel_ltxt24 = text-073. "Vendor.

    l_sel_ltxt25 = text-074. "Base Unit of Measure.

    l_sel_ltxt26 = text-075. "Quantity.

    l_sel_ltxt27 = text-076. "Material Doc. Year.

    l_sel_ltxt28 = text-077. "Reservation.

    l_sel_ltxt29 = text-078.

    "Item No. Reservation/Dependent Reservation.

    l_sel_ltxt30 = text-079. "Debit/Credit Ind.

    l_sel_ltxt31 = text-080. "User Name.

    l_sel_ltxt32 = text-081. "Trans./Event Type.

    l_sel_ltxt33 = text-082. "GR/GI Slip No..

    l_sel_ltxt34 = text-083. "Warehouse Number.

    l_sel_ltxt35 = text-084. "Transfer Order Number.

    l_sel_ltxt36 = text-085. "Transfer Order Item.

    l_sel_ltxt37 = text-086. "WM Movement Type.

    l_sel_ltxt38 = text-087. "Requirement Type.

    l_sel_ltxt39 = text-088. "Requirement Tracking Number.

    l_sel_ltxt40 = text-089.

    "Stock Category in Warehouse Mgmt System.

    l_sel_ltxt41 = text-090. "Source Storage Type.

    l_sel_ltxt42 = text-091. "Source Storage Bin.

    l_sel_ltxt43 = text-092. "Source Storage Unit.

    l_sel_ltxt44 = text-093. "Destination Storage Type.

    l_sel_ltxt45 = text-094. "Destination Storage Bin.

    l_sel_ltxt46 = text-095. "Destination Storage Unit.

    • Assign Detailed text to printed-medium

    l_sel_mtxt1 = text-050. "Material.

    l_sel_mtxt2 = text-051. "Batch.

    l_sel_mtxt3 = text-052. "Plant.

    l_sel_mtxt4 = text-053. "Sloc.

    l_sel_mtxt5 = text-054. "Mvt.

    l_sel_mtxt6 = text-055. "S.

    l_sel_mtxt7 = text-056. "Material Doc.

    l_sel_mtxt8 = text-057. "Item.

    l_sel_mtxt9 = text-058. "Posting Date.

    l_sel_mtxt10 = text-059. "Qty in unit of Entry.

    l_sel_mtxt11 = text-060. "EUn.

    l_sel_mtxt12 = text-061. "St. Typ.

    l_sel_mtxt13 = text-062. "St. Bin.

    l_sel_mtxt14 = text-063. "Storage Unit.

    l_sel_mtxt15 = text-064. "Material Description.

    l_sel_mtxt16 = text-065. "Stock Type.

    l_sel_mtxt17 = text-066. "Order.

    l_sel_mtxt18 = text-067. "Routing Number for Operations.

    l_sel_mtxt19 = text-068. "Document Header Text.

    l_sel_mtxt20 = text-069. "Document Date.

    l_sel_mtxt21 = text-070. "Entry Date.

    l_sel_mtxt22 = text-071. "Time of Entry.

    l_sel_mtxt23 = text-072. "Movement Indicator.

    l_sel_mtxt24 = text-073. "Vendor.

    l_sel_mtxt25 = text-074. "Base Unit of Measure.

    l_sel_mtxt26 = text-075. "Quantity.

    l_sel_mtxt27 = text-076. "Material Doc. Year.

    l_sel_mtxt28 = text-077. "Reservation.

    l_sel_mtxt29 = text-078.

    "Item No. Reservation/Dependent Reservation.

    l_sel_mtxt30 = text-079. "Debit/Credit Ind.

    l_sel_mtxt31 = text-080. "User Name.

    l_sel_mtxt32 = text-081. "Trans./Event Type.

    l_sel_mtxt33 = text-082. "GR/GI Slip No..

    l_sel_mtxt34 = text-083. "Warehouse Number.

    l_sel_mtxt35 = text-084. "Transfer Order Number.

    l_sel_mtxt36 = text-085. "Transfer Order Item.

    l_sel_mtxt37 = text-086. "WM Movement Type.

    l_sel_mtxt38 = text-087. "Requirement Type.

    l_sel_mtxt39 = text-088. "Requirement Tracking Number.

    l_sel_mtxt40 = text-089.

    "Stock Category in Warehouse Mgmt System.

    l_sel_mtxt41 = text-090. "Source Storage Type.

    l_sel_mtxt42 = text-091. "Source Storage Bin.

    l_sel_mtxt43 = text-092. "Source Storage Unit.

    l_sel_mtxt44 = text-093. "Destination Storage Type.

    l_sel_mtxt45 = text-094. "Destination Storage Bin.

    l_sel_mtxt46 = text-095. "Destination Storage Unit.

    • Assign Detailed text to printed-short

    l_sel_stxt1 = text-050. "Material.

    l_sel_stxt2 = text-051. "Batch.

    l_sel_stxt3 = text-052. "Plant.

    l_sel_stxt4 = text-053. "Sloc.

    l_sel_stxt5 = text-054. "Mvt.

    l_sel_stxt6 = text-055. "S.

    l_sel_stxt7 = text-056. "Material Doc.

    l_sel_stxt8 = text-057. "Item.

    l_sel_stxt9 = text-058. "Posting Date.

    l_sel_stxt10 = text-059. "Qty in unit of Entry.

    l_sel_stxt11 = text-060. "EUn.

    l_sel_stxt12 = text-061. "St. Typ.

    l_sel_stxt13 = text-062. "St. Bin.

    l_sel_stxt14 = text-063. "Storage Unit.

    l_sel_stxt15 = text-064. "Material Description.

    l_sel_stxt16 = text-065. "Stock Type.

    l_sel_stxt17 = text-066. "Order.

    l_sel_stxt18 = text-067. "Routing Number for Operations.

    l_sel_stxt19 = text-068. "Document Header Text.

    l_sel_stxt20 = text-069. "Document Date.

    l_sel_stxt21 = text-070. "Entry Date.

    l_sel_stxt22 = text-071. "Time of Entry.

    l_sel_stxt23 = text-072. "Movement Indicator.

    l_sel_stxt24 = text-073. "Vendor.

    l_sel_stxt25 = text-074. "Base Unit of Measure.

    l_sel_stxt26 = text-075. "Quantity.

    l_sel_stxt27 = text-076. "Material Doc. Year.

    l_sel_stxt28 = text-077. "Reservation.

    l_sel_stxt29 = text-078.

    "Item No. Reservation/Dependent Reservation.

    l_sel_stxt30 = text-079. "Debit/Credit Ind.

    l_sel_stxt31 = text-080. "User Name.

    l_sel_stxt32 = text-081. "Trans./Event Type.

    l_sel_stxt33 = text-082. "GR/GI Slip No..

    l_sel_stxt34 = text-083. "Warehouse Number.

    l_sel_stxt35 = text-084. "Transfer Order Number.

    l_sel_stxt36 = text-085. "Transfer Order Item.

    l_sel_stxt37 = text-086. "WM Movement Type.

    l_sel_stxt38 = text-087. "Requirement Type.

    l_sel_stxt39 = text-088. "Requirement Tracking Number.

    l_sel_stxt40 = text-089.

    "Stock Category in Warehouse Mgmt System.

    l_sel_stxt41 = text-090. "Source Storage Type.

    l_sel_stxt42 = text-091. "Source Storage Bin.

    l_sel_stxt43 = text-092. "Source Storage Unit.

    l_sel_stxt44 = text-093. "Destination Storage Type.

    l_sel_stxt45 = text-094. "Destination Storage Bin.

    l_sel_stxt46 = text-095. "Destination Storage Unit.

    • Assign field name to be passed

    l_field1 = text-004. "MATNR.

    l_field2 = text-005. "CHARG.

    l_field3 = text-006. "WERKS.

    l_field4 = text-007. "LGORT.

    l_field5 = text-008. "BWART.

    l_field6 = text-009. "SOBKZ.

    l_field7 = text-010. "MBLNR.

    l_field8 = text-011. "ZEILE.

    l_field9 = text-012. "BUDAT.

    l_field10 = text-013. "ERFMG.

    l_field11 = text-014. "ERFME.

    l_field12 = text-015. "LGTYP.

    l_field13 = text-016. "LGPLA.

    l_field14 = text-017. "LENUM.

    l_field15 = text-018. "MAKTX.

    l_field16 = text-019. "INSMK.

    l_field17 = text-020. "AUFNR.

    l_field18 = text-021. "AUFPL.

    l_field19 = text-022. "BKTXT.

    l_field20 = text-023. "BLDAT.

    l_field21 = text-024. "CPUDT.

    l_field22 = text-025. "CPUTM.

    l_field23 = text-026. "KZBEW.

    l_field24 = text-027. "LIFNR.

    l_field25 = text-028. "MEINS.

    l_field26 = text-029. "MENGE.

    l_field27 = text-030. "MJAHR.

    l_field28 = text-031. "RSNUM.

    l_field29 = text-032. "RSPOS.

    l_field30 = text-033. "SHKZG.

    l_field31 = text-034. "USNAM.

    l_field32 = text-035. "VGART.

    l_field33 = text-036. "XABLN.

    l_field34 = text-037. "LGNUM.

    l_field35 = text-038. "TANUM.

    l_field36 = text-039. "tapos.

    l_field37 = text-040. "BWLVS.

    l_field38 = text-041. "BETYP.

    l_field39 = text-042. "BENUM.

    l_field40 = text-043. "BESTQ.

    l_field41 = text-044. "VLTYP.

    l_field42 = text-045. "VLPLA.

    l_field43 = text-046. "VLENR.

    l_field44 = text-047. "NLTYP.

    l_field45 = text-048. "NLPLA.

    l_field46 = text-049. "NLENR.

    • Assign Reference field name to be passed

    l_reffield1 = text-004. "MATNR.

    l_reffield2 = text-005. "CHARG.

    l_reffield3 = text-006. "WERKS.

    l_reffield4 = text-007. "LGORT.

    l_reffield5 = text-008. "BWART.

    l_reffield6 = text-009. "SOBKZ.

    l_reffield7 = text-010. "MBLNR.

    l_reffield8 = text-011. "ZEILE.

    l_reffield9 = text-012. "BUDAT.

    l_reffield10 = text-013. "ERFMG.

    l_reffield11 = text-014. "ERFME.

    l_reffield12 = text-015. "LGTYP.

    l_reffield13 = text-016. "LGPLA.

    l_reffield14 = text-017. "LENUM.

    l_reffield15 = text-018. "MAKTX.

    l_reffield16 = text-019. "INSMK.

    l_reffield17 = text-020. "AUFNR.

    l_reffield18 = text-021. "AUFPL.

    l_reffield19 = text-022. "BKTXT.

    l_reffield20 = text-023. "BLDAT.

    l_reffield21 = text-024. "CPUDT.

    l_reffield22 = text-025. "CPUTM.

    l_reffield23 = text-026. "KZBEW.

    l_reffield24 = text-027. "LIFNR.

    l_reffield25 = text-028. "MEINS.

    l_reffield26 = text-029. "MENGE.

    l_reffield27 = text-030. "MJAHR.

    l_reffield28 = text-031. "RSNUM.

    l_reffield29 = text-032. "RSPOS.

    l_reffield30 = text-033. "SHKZG.

    l_reffield31 = text-034. "USNAM.

    l_reffield32 = text-035. "VGART.

    l_reffield33 = text-036. "XABLN.

    l_reffield34 = text-037. "LGNUM.

    l_reffield35 = text-038. "TANUM.

    l_reffield36 = ''.

    l_reffield37 = text-040. "BWLVS.

    l_reffield38 = text-041. "BETYP.

    l_reffield39 = text-042. "BENUM.

    l_reffield40 = text-043. "BESTQ.

    l_reffield41 = text-044. "VLTYP.

    l_reffield42 = text-045. "VLPLA.

    l_reffield43 = text-046. "VLENR.

    l_reffield44 = text-047. "NLTYP.

    l_reffield45 = text-048. "NLPLA.

    l_reffield46 = text-049. "NLENR.

    • Populate the field catalog

    PERFORM sub_fcat_fill USING:

    *POS FIELD TABLE KEY JUST TITLE REFTAB TYPE

    *REFFIELD SELTEXTLONG SELTEXTMEDIUM SELTEXTSHORT DOSUM NO_OUT

    l_sycucol01 l_field1 l_int_tabname c_x c_l l_txt1

    l_tabname1

    l_reffield1 l_sel_ltxt1 l_sel_mtxt1 l_sel_stxt1 '' '' ,

    l_sycucol02 l_field2 l_int_tabname '' c_l l_txt2

    l_tabname1

    l_reffield2 l_sel_ltxt2 l_sel_mtxt2 l_sel_stxt2 '' '' ,

    l_sycucol03 l_field3 l_int_tabname '' c_l l_txt3

    l_tabname1

    l_reffield3 l_sel_ltxt3 l_sel_mtxt3 l_sel_stxt3 '' '' ,

    l_sycucol04 l_field4 l_int_tabname '' c_l l_txt4

    l_tabname1

    l_reffield4 l_sel_ltxt4 l_sel_mtxt4 l_sel_stxt4 '' '' ,

    l_sycucol05 l_field5 l_int_tabname '' c_l l_txt5

    l_tabname1

    l_reffield5 l_sel_ltxt5 l_sel_mtxt5 l_sel_stxt5 '' '' ,

    l_sycucol06 l_field6 l_int_tabname '' c_l l_txt6

    l_tabname1

    l_reffield6 l_sel_ltxt6 l_sel_mtxt6 l_sel_stxt6 '' '' ,

    l_sycucol07 l_field7 l_int_tabname '' c_l l_txt7

    l_tabname1

    l_reffield7 l_sel_ltxt7 l_sel_mtxt7 l_sel_stxt7 '' '' ,

    l_sycucol08 l_field8 l_int_tabname '' c_l l_txt8

    l_tabname1

    l_reffield8 l_sel_ltxt8 l_sel_mtxt8 l_sel_stxt8 '' '' ,

    l_sycucol09 l_field9 l_int_tabname '' c_l l_txt9 ''

    l_reffield9

    l_sel_ltxt9 l_sel_mtxt9 l_sel_stxt9 '' '' ,

    l_sycucol10 l_field10 l_int_tabname '' c_r l_txt10

    l_tabname1

    l_reffield10 l_sel_ltxt10 l_sel_mtxt10 l_sel_stxt10 c_x'' ,

    l_sycucol11 l_field11 l_int_tabname '' c_l l_txt11

    l_tabname1

    l_reffield11 l_sel_ltxt11 l_sel_mtxt11 l_sel_stxt11 '' '' ,

    l_sycucol12 l_field12 l_int_tabname '' c_l l_txt12

    l_tabname1

    l_reffield12 l_sel_ltxt12 l_sel_mtxt12 l_sel_stxt12 '' '' ,

    l_sycucol13 l_field13 l_int_tabname '' c_l l_txt13

    l_tabname1

    l_reffield13 l_sel_ltxt13 l_sel_mtxt13 l_sel_stxt13 '' '' ,

    l_sycucol14 l_field14 l_int_tabname '' c_l l_txt14

    l_tabname6

    l_reffield14 l_sel_ltxt14 l_sel_mtxt14 l_sel_stxt14 '' '' ,

    l_sycucol15 l_field15 l_int_tabname '' c_l l_txt15

    l_tabname5

    l_reffield15 l_sel_ltxt15 l_sel_mtxt15 l_sel_stxt15 '' c_x ,

    l_sycucol16 l_field16 l_int_tabname '' c_l l_txt16

    l_tabname1

    l_reffield16 l_sel_ltxt16 l_sel_mtxt16 l_sel_stxt16 '' c_x ,

    l_sycucol17 l_field17 l_int_tabname '' c_l l_txt17

    l_tabname1

    l_reffield17 l_sel_ltxt17 l_sel_mtxt17 l_sel_stxt17 '' c_x ,

    l_sycucol18 l_field18 l_int_tabname '' c_l l_txt18

    l_tabname1

    l_reffield18 l_sel_ltxt18 l_sel_mtxt18 l_sel_stxt18 '' c_x ,

    l_sycucol19 l_field19 l_int_tabname '' c_l l_txt19

    l_tabname2

    l_reffield19 l_sel_ltxt19 l_sel_mtxt19 l_sel_stxt19 '' c_x ,

    l_sycucol20 l_field20 l_int_tabname '' c_l l_txt20

    l_tabname2

    l_reffield20 l_sel_ltxt20 l_sel_mtxt20 l_sel_stxt20 '' c_x ,

    l_sycucol21 l_field21 l_int_tabname '' c_l l_txt21

    l_tabname2

    l_reffield21 l_sel_ltxt21 l_sel_mtxt21 l_sel_stxt21 '' c_x ,

    l_sycucol22 l_field22 l_int_tabname '' c_l l_txt22

    l_tabname2

    l_reffield22 l_sel_ltxt22 l_sel_mtxt22 l_sel_stxt22 '' c_x ,

    l_sycucol23 l_field23 l_int_tabname '' c_l l_txt23

    l_tabname1

    l_reffield23 l_sel_ltxt23 l_sel_mtxt23 l_sel_stxt23 '' c_x ,

    l_sycucol24 l_field24 l_int_tabname '' c_l l_txt24

    l_tabname1

    l_reffield24 l_sel_ltxt24 l_sel_mtxt24 l_sel_stxt24 '' c_x ,

    l_sycucol25 l_field25 l_int_tabname '' c_l l_txt25

    l_tabname1

    l_reffield25 l_sel_ltxt25 l_sel_mtxt25 l_sel_stxt25 '' c_x ,

    l_sycucol26 l_field26 l_int_tabname '' c_r l_txt26

    l_tabname1

    l_reffield26 l_sel_ltxt26 l_sel_mtxt26 l_sel_stxt26 c_x c_x

    ,

    l_sycucol27 l_field27 l_int_tabname '' c_l l_txt27

    l_tabname1

    l_reffield27 l_sel_ltxt27 l_sel_mtxt27 l_sel_stxt27 '' c_x ,

    l_sycucol28 l_field28 l_int_tabname '' c_l l_txt28

    l_tabname1

    l_reffield28 l_sel_ltxt28 l_sel_mtxt28 l_sel_stxt28 '' c_x ,

    l_sycucol29 l_field29 l_int_tabname '' c_l l_txt29

    l_tabname1

    l_reffield29 l_sel_ltxt29 l_sel_mtxt29 l_sel_stxt29 '' c_x ,

    l_sycucol30 l_field30 l_int_tabname '' c_l l_txt30

    l_tabname1

    l_reffield30 l_sel_ltxt30 l_sel_mtxt30 l_sel_stxt30 '' c_x ,

    l_sycucol31 l_field31 l_int_tabname '' c_l l_txt31

    l_tabname2

    l_reffield31 l_sel_ltxt31 l_sel_mtxt31 l_sel_stxt31 '' c_x ,

    l_sycucol32 l_field32 l_int_tabname '' c_l l_txt32

    l_tabname2

    l_reffield32 l_sel_ltxt32 l_sel_mtxt32 l_sel_stxt32 '' c_x ,

    l_sycucol33 l_field33 l_int_tabname '' c_l l_txt33

    l_tabname2

    l_reffield33 l_sel_ltxt33 l_sel_mtxt33 l_sel_stxt33 '' c_x ,

    l_sycucol34 l_field34 l_int_tabname '' c_l l_txt34

    l_tabname3

    l_reffield34 l_sel_ltxt34 l_sel_mtxt34 l_sel_stxt34 '' c_x ,

    l_sycucol35 l_field35 l_int_tabname '' c_l l_txt35

    l_tabname3

    l_reffield35 l_sel_ltxt35 l_sel_mtxt35 l_sel_stxt35 '' c_x ,

    l_sycucol36 l_field36 l_int_tabname '' c_l l_txt36 ''

    l_reffield36 l_sel_ltxt36 l_sel_mtxt36 l_sel_stxt36 '' c_x ,

    l_sycucol37 l_field37 l_int_tabname '' c_l l_txt37

    l_tabname3

    l_reffield37 l_sel_ltxt37 l_sel_mtxt37 l_sel_stxt37 '' c_x ,

    l_sycucol38 l_field38 l_int_tabname '' c_l l_txt38

    l_tabname3

    l_reffield38 l_sel_ltxt38 l_sel_mtxt38 l_sel_stxt38 '' c_x ,

    l_sycucol39 l_field39 l_int_tabname '' c_l l_txt39

    l_tabname3

    l_reffield39 l_sel_ltxt39 l_sel_mtxt39 l_sel_stxt39 '' c_x ,

    l_sycucol40 l_field40 l_int_tabname '' c_l l_txt40

    l_tabname4

    l_reffield40 l_sel_ltxt40 l_sel_mtxt40 l_sel_stxt40 '' c_x ,

    l_sycucol41 l_field41 l_int_tabname '' c_l l_txt41

    l_tabname4

    l_reffield41 l_sel_ltxt41 l_sel_mtxt41 l_sel_stxt41 '' c_x ,

    l_sycucol42 l_field42 l_int_tabname '' c_l l_txt42

    l_tabname4

    l_reffield42 l_sel_ltxt42 l_sel_mtxt42 l_sel_stxt42 '' c_x ,

    l_sycucol43 l_field43 l_int_tabname '' c_l l_txt43

    l_tabname4

    l_reffield43 l_sel_ltxt43 l_sel_mtxt43 l_sel_stxt43 '' c_x ,

    l_sycucol44 l_field44 l_int_tabname '' c_l l_txt44

    l_tabname4

    l_reffield44 l_sel_ltxt44 l_sel_mtxt44 l_sel_stxt44 '' c_x ,

    l_sycucol45 l_field45 l_int_tabname '' c_l l_txt45

    l_tabname4

    l_reffield45 l_sel_ltxt45 l_sel_mtxt45 l_sel_stxt45 '' c_x ,

    l_sycucol46 l_field46 l_int_tabname '' c_l l_txt46

    l_tabname4

    l_reffield46 l_sel_ltxt46 l_sel_mtxt46 l_sel_stxt46 '' c_x .

    ENDFORM. " sub_fcat_build

    &----


    *& Form sub_fcat_fill

    &----


    • This subroutine populates the field catalog

    ----


    FORM sub_fcat_fill USING in_pos TYPE sycucol

    in_fld TYPE fieldname

    in_tab TYPE tabname

    in_key TYPE char1

    in_jus TYPE char1

    in_txt TYPE reptext

    in_reftab TYPE char30

    in_reffld TYPE fieldname

    in_seltxtl TYPE reptxt

    in_seltxtm TYPE reptxt

    in_seltxts TYPE reptxt

    in_do_sum TYPE char1

    in_no_out TYPE char1.

    CONSTANTS: c_ddictxt TYPE c VALUE 'L'. " value of L

    DATA : i_lfl_fcat TYPE slis_fieldcat_alv.

    i_lfl_fcat-col_pos = in_pos. "position of column

    i_lfl_fcat-fieldname = in_fld. "name of field

    i_lfl_fcat-tabname = in_tab. "name of table

    i_lfl_fcat-key = in_key. "key flag

    i_lfl_fcat-just = in_jus. "justified - R/L

    i_lfl_fcat-reptext_ddic = in_txt. "text header

    i_lfl_fcat-ref_tabname = in_reftab. "reference table

    i_lfl_fcat-ref_fieldname = in_reffld. "reference field

    i_lfl_fcat-seltext_l = in_seltxtl. "selection text long

    i_lfl_fcat-seltext_m = in_seltxtm. "selection text medium

    i_lfl_fcat-seltext_s = in_seltxts. "selection text short

    i_lfl_fcat-do_sum = in_do_sum."do sum

    i_lfl_fcat-no_out = in_no_out."no out

    i_lfl_fcat-ddictxt = c_ddictxt.

    IF in_fld = text-013. " ERFMG

    i_lfl_fcat-QFIELDNAME = text-014. " ERFME

    ELSEIF in_fld = text-029. " MENGE

    i_lfl_fcat-QFIELDNAME = text-028. " MEINS

    ENDIF.

    APPEND i_lfl_fcat TO i_fcat.

    CLEAR i_lfl_fcat.

    ENDFORM. " sub_fcat_fill

    &----


    *& Form sortinfo_build

    &----


    • This subroutine builds the sort table passed to the ALV

    ----


    FORM sortinfo_build .

    DATA: l_sort TYPE slis_sortinfo_alv.

    • Sort criteria material number and batch

    CLEAR l_sort.

    l_sort-spos = c_01.

    l_sort-fieldname = text-004. " MATNR

    l_sort-tabname = 'I_OUTPUT'.

    l_sort-up = c_x.

    l_sort-subtot = c_x.

    APPEND l_sort TO i_sort.

    CLEAR l_sort.

    l_sort-spos = c_02.

    l_sort-fieldname = text-005. " CHARG

    l_sort-tabname = 'I_OUTPUT'.

    l_sort-up = c_x.

    APPEND l_sort TO i_sort.

    ENDFORM. " sortinfo_build

    &----


    *& Form varinfo_build

    &----


    • This subroutines builds up the variant information

    ----


    FORM varinfo_build .

    struct_variant-report = v_repid.

    ENDFORM. " varinfo_build

    &----


    *& Form layout_build

    &----


    • This subroutine builds the layout for column optmise and color

    • display.

    ----


    FORM layout_build USING l_layout TYPE slis_layout_alv.

    DATA : lv_colno TYPE i.

    l_layout-colwidth_optimize = 'X'.

    l_layout-coltab_fieldname = 'COLOR'.

    REFRESH: i_output-color,

    i_col_layout.

    LOOP AT i_output.

    IF i_output-shkzg = c_h.

    lv_colno = 6. "color RED

    PERFORM sub_set_color USING i_col_layout

    text-013 "ERFMG

    text-014 "ERFME

    text-028 "MEINS

    text-029 "MENGE

    lv_colno.

    ELSE.

    lv_colno = 5. "color GREEN

    PERFORM sub_set_color USING i_col_layout

    text-013 "ERFMG

    text-014 "ERFME

    text-028 "MEINS

    text-029 "MENGE

    lv_colno.

    ENDIF.

    i_output-color[] = i_col_layout[].

    MODIFY i_output TRANSPORTING color.

    CLEAR: i_col_layout[].

    ENDLOOP.

    ENDFORM. " layout_build

    &----


    *& Form SUB_SET_COLOR

    &----


    • This subroutine sets the colour of the Quantity and Unit of measure

    • cells depending on Debit/Credit

    ----


    FORM sub_set_color USING ls_color LIKE i_col_layout

    p_fieldname1

    p_fieldname2

    p_fieldname3

    p_fieldname4

    p_colno.

    DATA: i_lfl_color TYPE slis_specialcol_alv.

    CLEAR i_lfl_color.

    i_lfl_color-fieldname = p_fieldname1.

    i_lfl_color-color-col = p_colno.

    i_lfl_color-nokeycol = 'X'.

    APPEND i_lfl_color TO ls_color.

    CLEAR i_lfl_color.

    i_lfl_color-fieldname = p_fieldname2.

    i_lfl_color-color-col = p_colno.

    i_lfl_color-nokeycol = 'X'.

    APPEND i_lfl_color TO ls_color.

    CLEAR i_lfl_color.

    i_lfl_color-fieldname = p_fieldname3.

    i_lfl_color-color-col = p_colno.

    i_lfl_color-nokeycol = 'X'.

    APPEND i_lfl_color TO ls_color.

    CLEAR i_lfl_color.

    i_lfl_color-fieldname = p_fieldname4.

    i_lfl_color-color-col = p_colno.

    i_lfl_color-nokeycol = 'X'.

    APPEND i_lfl_color TO ls_color.

    ENDFORM. " SUB_SET_COLOR

    &----


    *& Form Populate_detl_meins

    &----


    • This subroutine populates the Base Unit (MEINS) from LTAP table

    • into the i_detl internal table.

    ----


    FORM Populate_detl_meins .

    DATA l_index type i.

    CLEAR l_index.

    IF NOT i_detl[] IS INITIAL.

    • Retreieve BAse UNit (MEINS) from LTAP

    SELECT a~lgnum " Warehouse no.

    a~tanum " Transfer order no.

    a~tapos " Transfer order item

    a~matnr " Material no.

    a~meins " Base unit

    INTO TABLE i_meins_ltap

    FROM ltap AS a

    FOR ALL ENTRIES IN i_detl

    WHERE a~lgnum = i_detl-lgnum

    AND a~tanum = i_detl-tanum

    AND a~tapos = i_detl-tapos

    AND a~matnr = i_detl-matnr.

    l_index = 1.

    LOOP AT i_detl.

    CLEAR i_meins_ltap.

    READ TABLE i_meins_ltap WITH KEY lgnum = i_detl-lgnum

    tanum = i_detl-tanum

    tapos = i_detl-tapos

    matnr = i_detl-matnr.

    IF sy-subrc = 0.

    i_detl-meins_to = i_meins_ltap-meins.

    MODIFY i_detl index l_index TRANSPORTING meins_to.

    ENDIF.

    CLEAR i_detl.

    l_index = l_index + 1.

    ENDLOOP.

    ENDIF.

    ENDFORM. " Populate_detl_meins

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.