CONSUMPTION_READ_FOR_MM

how should i use this FM in user exit WRPL002 to calculate total consumption.
what does the table to be passed ges_verb_tab mean?

Another thread regarding CONSUMPTION_READ_FOR_MM, might be helpful
[Calling a function module and displaying in ALV;

Similar Messages

  • FM - CONSUMPTION_READ_FOR_MM

    Hello,
    could somebody explain the parameters of the function module CONSUMPTION_READ_FOR_MM .
    KZRFB    
    MATNR    
    WERKS    
    PERKZ    
    PERIV    
    FLG_AHD  
    Why is it necessary to set the parameter PERIV from Table MARC?
    Is the result the rolling consumption? If not is it possible to calculate a rolling consumption from the result of the function module?
    Thanks,
    regards,
    Harry

    Another thread regarding CONSUMPTION_READ_FOR_MM, might be helpful
    [Calling a function module and displaying in ALV;

  • Table MBEW and Transaction MC.9

    Hi,
    I developed a report program that reads stocks from table MBEW, but it doesnt reconcile with the stocks you get from MC.9.
    Im thinking MC.9 gets the data from other source tables. I need to explain why its not the same and possibly modify the code to reconcile the quantities.
    Please help.
    Thanks.
    Kenny

    check with LQUA Table,MLGT Table,MARD-LABST Table
    See the below Program and Which is inventory report :
    type-pools
    type-pools : slis.
    Data Declaration
    tables : mara,
             marc,
             lagp,
             mvke,
             makt.
    Constants
    constants : c_werks(4) type c value '1000'," Plant
                c_lgort(4) type c value '1000'," Storage Location
                c_periv like MARC-PERIV value 'XX',
                c_perkz like MVER-PERKZ value 'T'.
    Internal Tables
    Internal Table for MARA and MAKT and MARD
    data : begin of I_material occurs 0,
           matnr like mara-matnr, " Material
           lgpla like mlgt-lgpla," Storage Type
           zzdept like marc-zzdept," Pick Dept
           ZZPRODDEPT like marc-ZZPRODDEPT," Prod Dept
           vmsta like mvke-vmsta, " Material Status
           end of i_material.
    Structure
    data : begin of i_final occurs 0 ,
           matnr like mara-matnr," Material #
           maktx like makt-maktx," Description
           lgpla like mlgt-lgpla, " Storage Bin
           days  like P0347-SCRDD, " No of Days
           menge like mseg-menge, " Avg Daily Sales
           kbetr like konp-kbetr, " Avg
           labst like mard-labst," Inventory Stock
           stprs like mbew-stprs, " Mvg avg Price
           dos   like mseg-menge, " DOS Units
           dosm  like konp-kbetr, " DOS $$
           end of i_final.
    data : int_ges_verb_tab like sverbtaba
                                occurs 0 with header line.
    Internal table for A004
    data : i_a004 like a004 occurs 0 with header line.
    Data Variables
    data : v_stprs like konp-kbetr,
           v_repid like sy-repid,
           v_labst like mard-labst,
           v_maktx like makt-maktx.
      ALV Function Module Variables
    DATA: g_repid like sy-repid,
          gs_layout type slis_layout_alv,
          g_exit_caused_by_caller,
          gs_exit_caused_by_user type slis_exit_by_user.
    DATA: gt_fieldcat    type slis_t_fieldcat_alv,
          gs_print       type slis_print_alv,
          gt_events      type slis_t_event,
          gt_list_top_of_page type slis_t_listheader,
          g_status_set   type slis_formname value 'PF_STATUS_SET',
          g_user_command type slis_formname value 'USER_COMMAND',
          g_top_of_page  type slis_formname value 'TOP_OF_PAGE',
          g_top_of_list  type slis_formname value 'TOP_OF_LIST',
          g_end_of_list  type slis_formname value 'END_OF_LIST',
          g_variant LIKE disvariant,
          g_save(1) TYPE c,
          g_tabname_header TYPE slis_tabname,
          g_tabname_item   TYPE slis_tabname,
          g_exit(1) TYPE c,
          gx_variant LIKE disvariant.
    Selection-screen
    selection-screen : begin of block blk with frame title text-001.
    parameters : p_werks like marc-werks obligatory default '1000'.
    select-options : s_matnr for mara-matnr,
                     s_MATKL for mara-MATKL,
                     s_mtart for mara-mtart,
                     s_LGTYP for LAGP-LGTYP,
                     p_vmsta for MVKE-VMSTA,
                     s_dept  for marc-zzdept,
                     s_pdept for MARC-ZZPRODDEPT.
    selection-screen: end of block blk.
    selection-screen begin of block periods with frame title text-002.
    selection-screen begin of line.
    selection-screen comment (15) text-c01.
    selection-screen position 18.
    Period 1
    parameters: p_stdat1 like mkpf-budat obligatory.
    selection-screen position 35.
    selection-screen comment (10) text-c02.
    parameters: p_endat1 like mkpf-budat obligatory.
    selection-screen end of line.
    selection-screen end of block periods.
    Fill the default values
    initialization.
      v_repid = sy-repid.
      PERFORM LAYOUT_INIT USING GS_LAYOUT.
      PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
    Validation for Dates
    at selection-screen.
      if p_stdat1 > p_endat1.
        message e206(zwave) with
           ' End date should be greater than or equal to Start Date'.
      endif.
    Make one of the Selection should be mandatory
      if s_matnr-low is initial.
        if s_matkl-low is initial and s_mtart-low is initial and
           s_dept-low is initial  and s_pdept-low is initial.
          message e208(zwave) with
                       'Enter atleast one selection Criteria'.
        endif.
      endif.
    Start-of-selection.
    start-of-selection.
    Get the data from MARA,MARD,MAKT Table
      perform get_data_tables.
    Read the data into FInal Table.
      perform read_data.
    END-OF-SELECTION.
    end-of-selection.
      if not i_final[] is initial.
    ALV Function Module
        perform print_alv.
      endif.
    *&      Form  get_data_tables
    Get the data from Tables MARA,MARD,MAKT
    FORM get_data_tables.
      select a~matnr
             b~lgpla
             czzdept cZZPRODDEPT d~vmsta into table i_material
             from mara as a inner join mlgt as b on amatnr = bmatnr
             inner join marc as c on cmatnr = amatnr
             inner join mvke as d on dmatnr = amatnr
             where a~matnr in s_matnr
                   and   c~werks = p_werks
                   and   a~mtart in s_mtart
                   and   c~ZZPRODDEPT in s_pdept
                   and   a~MATKL in s_MATKL
                   and   c~zzdept in s_dept
                   and   b~lgnum = '100'
                   and   b~LGTYP in s_lgtyp
                   and   b~lgpla ne space
                   and   d~vkorg = '0001'
                   and   d~vtweg = '01'
                   and   d~matnr in s_matnr
                   and   d~vmsta in p_vmsta.
      if sy-subrc ne 0.
      message e207(zwave) with 'No data found for Given Selection Criteria'.
      endif.
      sort i_material by matnr .
      DELETE ADJACENT DUPLICATES FROM i_material COMPARING matnr.
    ENDFORM.                    " get_data_tables
    *&      Form  read_data
          Read the data
    FORM read_data.
      loop at i_material.
      Storage Bin
        i_final-lgpla = i_material-lgpla.
    Days of Sales ( End date - Start date )
        CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'
             EXPORTING
                  DATE1         = p_endat1
                  DATE2         = p_stdat1
                  OUTPUT_FORMAT = '02'
             IMPORTING
                  DAYS          = i_final-days.
    Get the Average Daily Sales (Units) from MVER Table
        perform get_average_sales.
    Get the Average Daily Sales ($$) from VK13 Transaction
        perform get_avgsales_price.
        clear : v_labst.
    Get the Inventory from MARD Table
        select single labst from mard into v_labst
                                 where matnr = i_material-matnr
                                 and   werks = p_werks
                                 and   lgort = c_lgort.
        if sy-subrc eq 0.
    Inventory Stock - MARD-LABST
          i_final-labst = v_labst.
        endif.
    Material #
        i_final-matnr = i_material-matnr.
    Get the Material Description
        clear v_maktx.
        select single maktx from makt into v_maktx
                            where matnr = i_material-matnr
                            and   spras = 'EN'.
        if sy-subrc eq 0.
    Description
          i_final-maktx = v_maktx.
        endif.
    Get the Mvg Average Price
        perform get_moving_avgpr.
    Days of Supply Units.
        if i_final-kbetr ne 0.
          i_final-dos = i_final-labst / i_final-menge.
        endif.
    Days of Supply $$
        i_final-dosm =  i_final-dos * v_stprs.
        append  i_final.
        clear : i_final,
                i_material.
      endloop.
      refresh i_material.
    ENDFORM.                    " read_data
    *&      Form  get_average_sales
          Get the data from MVER Table
    FORM get_average_sales.
      data : lv_menge like mseg-menge.
      refresh int_ges_verb_tab.
      clear : int_ges_verb_tab,
              lv_menge.
      CALL FUNCTION 'CONSUMPTION_READ_FOR_MM'
        EXPORTING
      KZRFB              = ' '
          MATNR              = i_material-matnr
          WERKS              = c_werks
          PERKZ              = c_perkz
          PERIV              = c_periv
       TABLES
         GES_VERB_TAB       = int_ges_verb_tab
      UNG_VERB_TAB       =
       EXCEPTIONS
         WRONG_CALL         = 1
         NOT_FOUND          = 2
         OTHERS             = 3
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      loop at int_ges_verb_tab.
        if int_ges_verb_tab-ertag   >= p_stdat1  and
           int_ges_verb_tab-ertag  <= p_endat1.
          add int_ges_verb_tab-vbwrt to lv_menge.
        endif.
      endloop.
      i_final-menge = lv_menge / i_final-days.
    ENDFORM.                    " get_average_sales
    *&      Form  get_avgsales_price
          Avg Daily Sales Price
    FORM get_avgsales_price.
    Get the data from A004 table to get KNUMH
    Added new field Sales Unit - Seshu 01/09/2006
      refresh : i_a004.
      clear :   i_a004.
      data : lv_kbetr like konp-kbetr," Condition value
             lv_KPEIN like konp-kpein , "per
             lv_KMEIN like konp-KMEIN. " Sales Unit
      select * from a004 into table i_a004
                              where matnr = i_material-matnr
                              and   vkorg = '0001'
                              and   vtweg = '01'.
      if sy-subrc eq 0.
        sort i_a004 by DATAB descending.
    Get the Latetest Date
        read table i_a004 with key matnr = i_material-matnr
                                   vkorg = '0001'
                                   vtweg = '01'
                                   binary search.
    Get the Sales Value
        select single kbetr KPEIN KMEIN from konp
                 into (lv_kbetr,lv_KPEIN, lv_KMEIN)
                                 where knumh = i_a004-knumh
                                 and   kappl = i_a004-kappl
                                 and   kschl = i_a004-kschl.
        if sy-subrc eq 0.
          i_final-kbetr = lv_kbetr / lv_KPEIN.
          i_final-kbetr = i_final-kbetr * i_final-menge.
        endif.
      endif.
      clear : lv_kbetr,
              lv_kpein,
              lv_KMEIN.
    ENDFORM.                    " get_avgsales_price
    *&      Form  get_moving_avgpr
          Get the data from MVEW Table
    FORM get_moving_avgpr.
    Local Variables
      data : lv_stprs like mbew-stprs, " Standard Price
             lv_verpr like mbew-verpr, " Moving avg Price
             lv_vprsv like mbew-vprsv. " Price Indicator
      clear : lv_stprs,
              lv_verpr,
              lv_vprsv,
              v_stprs.
      select single stprs verpr vprsv from mbew
                    into (lv_stprs,lv_verpr,lv_vprsv)
                    where matnr = i_material-matnr.
      if sy-subrc eq 0.
        if lv_vprsv = 'S'.
          i_final-stprs = lv_stprs * i_final-labst.
          v_stprs = lv_stprs.
        elseif lv_vprsv = 'V'.
          i_final-stprs = lv_verpr * i_final-labst.
          v_stprs = lv_verpr.
        endif.
      endif.
    ENDFORM.                    " get_moving_avgpr
    *&      Form  print_alv
          REUSE_ALV_GRID_DISPLAY Function Module
    FORM print_alv.
      PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
    Populate field catalog
      PERFORM fieldcat_init  using gt_fieldcat[].
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
       I_INTERFACE_CHECK                 = ' '
       I_BYPASSING_BUFFER                =
       I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                = v_repid
       I_CALLBACK_PF_STATUS_SET          = ' '
        I_CALLBACK_USER_COMMAND           = g_user_command
        I_CALLBACK_TOP_OF_PAGE            =  g_top_of_page
       I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
       I_CALLBACK_HTML_END_OF_LIST       = ' '
       I_STRUCTURE_NAME                  =
       I_BACKGROUND_ID                   = ' '
       I_GRID_TITLE                      =
       I_GRID_SETTINGS                   =
         IS_LAYOUT                         = gs_layout
          IT_FIELDCAT                       = gt_fieldcat[]
       IT_EXCLUDING                      =
       IT_SPECIAL_GROUPS                 =
       IT_SORT                           =
       IT_FILTER                         =
       IS_SEL_HIDE                       =
       I_DEFAULT                         = 'X'
         I_SAVE                            = 'A'
        IS_VARIANT                        =
         IT_EVENTS                         = GT_EVENTS[]
       IT_EVENT_EXIT                     =
       IS_PRINT                          =
       IS_REPREP_ID                      =
       I_SCREEN_START_COLUMN             = 0
       I_SCREEN_START_LINE               = 0
       I_SCREEN_END_COLUMN               = 0
       I_SCREEN_END_LINE                 = 0
       IT_ALV_GRAPHICS                   =
       IT_ADD_FIELDCAT                   =
       IT_HYPERLINK                      =
       I_HTML_HEIGHT_TOP                 =
       I_HTML_HEIGHT_END                 =
       IT_EXCEPT_QINFO                   =
    IMPORTING
       E_EXIT_CAUSED_BY_CALLER           =
       ES_EXIT_CAUSED_BY_USER            =
        TABLES
          T_OUTTAB                          = i_final
       EXCEPTIONS
         PROGRAM_ERROR                     = 1
         OTHERS                            = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " print_alv
    *&      Form  get_fieldcatlog
          Fieldcatlog
    *&      Form  fieldcat_init
          Fieldcat
    FORM fieldcat_init USING  e01_lt_fieldcat type slis_t_fieldcat_alv.
      DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    Material #
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MATNR'.
      LS_FIELDCAT-ref_fieldname = 'MATNR'.
      LS_FIELDCAT-ref_tabname = 'MARA'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Material'.
      ls_fieldcat-seltext_M = 'Material'.
      ls_fieldcat-seltext_S = 'Material'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Material Description
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MAKTX'.
      LS_FIELDCAT-OUTPUTLEN    = 30.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Description'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Storage Bin
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'LGPLA'.
      LS_FIELDCAT-OUTPUTLEN    = 10.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Storage Bin'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Start Date
    CLEAR LS_FIELDCAT.
    LS_FIELDCAT-FIELDNAME    = 'SDATE'.
    LS_FIELDCAT-OUTPUTLEN    = 10.
    LS_FIELDCAT-TABNAME    = 'I_FINAL'.
    ls_fieldcat-seltext_L = 'Start Date'.
    APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    End Date.
    CLEAR LS_FIELDCAT.
    LS_FIELDCAT-FIELDNAME    = 'EDATE'.
    LS_FIELDCAT-OUTPUTLEN    = 10.
    LS_FIELDCAT-TABNAME    = 'I_FINAL'.
    ls_fieldcat-seltext_L = 'End Date'.
    APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Days of Sales
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'DAYS'.
      LS_FIELDCAT-OUTPUTLEN    = 12.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Days of Sales'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Average Daily Sales(Units).
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE'.
      LS_FIELDCAT-OUTPUTLEN    = 18.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Average Daily Sales(Units)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Average Daily Sales($$)
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'KBETR'.
      LS_FIELDCAT-OUTPUTLEN    = 18.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Average Daily Sales($$)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Inventory(Units)
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'LABST'.
      LS_FIELDCAT-OUTPUTLEN    = 18.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Inventory(Units)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Inventory($$)
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'STPRS'.
      LS_FIELDCAT-OUTPUTLEN    = 18.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Inventory($$)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    DOS($$)
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'DOSM'.
      LS_FIELDCAT-OUTPUTLEN    = 13.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'DOS($$)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    DOS(Days)
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'DOS'.
      LS_FIELDCAT-OUTPUTLEN    = 13.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'DOS(Days)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    ENDFORM.                    " get_fieldcatlog
          FORM COMMENT_BUILD                                            *
    -->  LT_TOP_OF_PAGE                                                *
    FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE
                                            SLIS_T_LISTHEADER.
      DATA: LS_LINE TYPE SLIS_LISTHEADER.
    Variables for Date
      data : lv_year(4) type c,
             lv_mon(2) type c,
             lv_day(2) type c,
             lv_date1(10) type c,
             lv_date2(10) type c.
    LIST HEADING LINE: TYPE H
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'H'.
      LS_LINE-INFO = sy-title.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      clear : lv_year,
              lv_day,
              lv_mon,
              lv_date1.
      lv_year = p_stdat1+0(4).
      lv_mon = p_stdat1+4(2).
      lv_day = p_stdat1+6(2).
      concatenate lv_mon '/' lv_day '/' lv_year into lv_date1.
    STATUS LINE: TYPE S
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = TEXT-c01.
      LS_LINE-INFO = lv_date1.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      clear : lv_year,
                lv_day,
                lv_mon,
                lv_date2.
      lv_year = P_ENDAT1+0(4).
      lv_mon = P_ENDAT1+4(2).
      lv_day = P_ENDAT1+6(2).
      concatenate lv_mon '/' lv_day '/' lv_year into lv_date2.
      LS_LINE-KEY  = text-c02.
      LS_LINE-INFO = lv_date2.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      CLEAR LS_LINE.
    ENDFORM.
          FORM TOP_OF_PAGE                                              *
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                I_LOGO             = 'FDLOGO'
                IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
    ENDFORM.
          FORM EVENTTAB_BUILD                                           *
    -->  RT_EVENTS                                                     *
    FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
    *"Registration of events to happen during list display
      DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                I_LIST_TYPE = 0
           IMPORTING
                ET_EVENTS   = RT_EVENTS.
      READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE G_TOP_OF_PAGE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO RT_EVENTS.
      ENDIF.
    ENDFORM.
          FORM LAYOUT_INIT                                              *
    -->  RS_LAYOUT                                                     *
    FORM LAYOUT_INIT USING RS_LAYOUT TYPE SLIS_LAYOUT_ALV.
    **"Build layout for list display
      RS_LAYOUT-DETAIL_POPUP      = 'X'.
    lslayout-f2code            = p_f2code.
    rs_layout-zebra             = 'X'.
    rs_layout-colwidth_optimize = 'X'.
    ENDFORM.
    Reward Points if it is helpful
    Thanks
    Seshu

  • Create TOP-OF-PAGE display for REUSE_ALV_GRID_DISPLAY

    Hi,
    I need to create a TOP-OF-PAGE display to show the MATNR, description and EA per CSE for my report.
    The report is output using "REUSE_ALV_GRID_DISPLAY."
    See following code:
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
      I_CALLBACK_TOP_OF_PAGE            =
         I_STRUCTURE_NAME                  = 'ZSTATE_PROD_INQ'
        TABLES
          T_OUTTAB                          = I_ALV_MATNR.
    How do I add a TOP-OF-PAGE display to the report, while using the above alv?
    Points will be rewarded and all responses will be greatly appreciated.
    Thanks,
    John

    See the example Program :
    Use FM - 
       CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                I_LOGO             = 'FDLOGO'
                IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
    REPORT ZMM_INV_DAYS_SUPPLY no standard page heading
                                message-id zwave.
    ======================================================================
    Program Name : ZMM_INV_DAYS_SUPPLY                                   *
    Description  : this report  identify Obsolete and Excessive inventory*
                   it show show days of supply by date. Need to define   *
                   Average daily sales for a sku. Possibly look back to  *
                   the last 3 weeks or look at the same period a year ago*
                   puls a growth factor to help with seasonal items      *
    Author       : Seshu                                                 *
    Date         : 03/14/2007                                            *
    MODIFICATION HISTORY                                                 *
    DATE    | AUTHOR   | CHANGE #   | DESCRIPTION OF MODIFICATION        *
    --|||--
    03/14/07| Seshu    | DEVK922128 | Initial                            *
    03/22/07| Seshu    | DEVK922148 | Removed Duplicates                 *
    03/26/07| Seshu    | DEVK922152 | Added new selection-screen         *
    03/27/07| Seshu    | DEVK922154 | Material status as range option now*
    03/27/07| Seshu    | DEVK922158 | Corrected storage type in where con*
    ======================================================================
    type-pools
    type-pools : slis.
    Data Declaration
    tables : mara,
             marc,
             lagp,
             mvke,
             makt.
    Constants
    constants : c_werks(4) type c value '1000'," Plant
                c_lgort(4) type c value '1000'," Storage Location
                c_periv like MARC-PERIV value 'XX',
                c_perkz like MVER-PERKZ value 'T'.
    Internal Tables
    Internal Table for MARA and MAKT and MARD
    data : begin of I_material occurs 0,
           matnr like mara-matnr, " Material
           lgpla like mlgt-lgpla," Storage Type
           zzdept like marc-zzdept," Pick Dept
           ZZPRODDEPT like marc-ZZPRODDEPT," Prod Dept
           vmsta like mvke-vmsta, " Material Status
           end of i_material.
    Structure
    data : begin of i_final occurs 0 ,
           matnr like mara-matnr," Material #
           maktx like makt-maktx," Description
           lgpla like mlgt-lgpla, " Storage Bin
           days  like P0347-SCRDD, " No of Days
           menge like mseg-menge, " Avg Daily Sales
           kbetr like konp-kbetr, " Avg
           labst like mard-labst," Inventory Stock
           stprs like mbew-stprs, " Mvg avg Price
           dos   like mseg-menge, " DOS Units
           dosm  like konp-kbetr, " DOS $$
           end of i_final.
    data : int_ges_verb_tab like sverbtaba
                                occurs 0 with header line.
    Internal table for A004
    data : i_a004 like a004 occurs 0 with header line.
    Data Variables
    data : v_stprs like konp-kbetr,
           v_repid like sy-repid,
           v_labst like mard-labst,
           v_maktx like makt-maktx.
      ALV Function Module Variables
    DATA: g_repid like sy-repid,
          gs_layout type slis_layout_alv,
          g_exit_caused_by_caller,
          gs_exit_caused_by_user type slis_exit_by_user.
    DATA: gt_fieldcat    type slis_t_fieldcat_alv,
          gs_print       type slis_print_alv,
          gt_events      type slis_t_event,
          gt_list_top_of_page type slis_t_listheader,
          g_status_set   type slis_formname value 'PF_STATUS_SET',
          g_user_command type slis_formname value 'USER_COMMAND',
          g_top_of_page  type slis_formname value 'TOP_OF_PAGE',
          g_top_of_list  type slis_formname value 'TOP_OF_LIST',
          g_end_of_list  type slis_formname value 'END_OF_LIST',
          g_variant LIKE disvariant,
          g_save(1) TYPE c,
          g_tabname_header TYPE slis_tabname,
          g_tabname_item   TYPE slis_tabname,
          g_exit(1) TYPE c,
          gx_variant LIKE disvariant.
    Selection-screen
    selection-screen : begin of block blk with frame title text-001.
    parameters : p_werks like marc-werks obligatory default '1000'.
    select-options : s_matnr for mara-matnr,
                     s_MATKL for mara-MATKL,
                     s_mtart for mara-mtart,
                     s_LGTYP for LAGP-LGTYP,
                     p_vmsta for MVKE-VMSTA,
                     s_dept  for marc-zzdept,
                     s_pdept for MARC-ZZPRODDEPT.
    selection-screen: end of block blk.
    selection-screen begin of block periods with frame title text-002.
    selection-screen begin of line.
    selection-screen comment (15) text-c01.
    selection-screen position 18.
    Period 1
    parameters: p_stdat1 like mkpf-budat obligatory.
    selection-screen position 35.
    selection-screen comment (10) text-c02.
    parameters: p_endat1 like mkpf-budat obligatory.
    selection-screen end of line.
    selection-screen end of block periods.
    Fill the default values
    initialization.
      v_repid = sy-repid.
      PERFORM LAYOUT_INIT USING GS_LAYOUT.
      PERFORM EVENTTAB_BUILD USING GT_EVENTS[].
    Validation for Dates
    at selection-screen.
      if p_stdat1 > p_endat1.
        message e206(zwave) with
           ' End date should be greater than or equal to Start Date'.
      endif.
    Make one of the Selection should be mandatory
      if s_matnr-low is initial.
        if s_matkl-low is initial and s_mtart-low is initial and
           s_dept-low is initial  and s_pdept-low is initial.
          message e208(zwave) with
                       'Enter atleast one selection Criteria'.
        endif.
      endif.
    Start-of-selection.
    start-of-selection.
    Get the data from MARA,MARD,MAKT Table
      perform get_data_tables.
    Read the data into FInal Table.
      perform read_data.
    END-OF-SELECTION.
    end-of-selection.
      if not i_final[] is initial.
    ALV Function Module
        perform print_alv.
      endif.
    *&      Form  get_data_tables
    Get the data from Tables MARA,MARD,MAKT
    FORM get_data_tables.
      select a~matnr
             b~lgpla
             czzdept cZZPRODDEPT d~vmsta into table i_material
             from mara as a inner join mlgt as b on amatnr = bmatnr
             inner join marc as c on cmatnr = amatnr
             inner join mvke as d on dmatnr = amatnr
             where a~matnr in s_matnr
                   and   c~werks = p_werks
                   and   a~mtart in s_mtart
                   and   c~ZZPRODDEPT in s_pdept
                   and   a~MATKL in s_MATKL
                   and   c~zzdept in s_dept
                   and   b~lgnum = '100'
                   and   b~LGTYP in s_lgtyp
                   and   b~lgpla ne space
                   and   d~vkorg = '0001'
                   and   d~vtweg = '01'
                   and   d~matnr in s_matnr
                   and   d~vmsta in p_vmsta.
      if sy-subrc ne 0.
      message e207(zwave) with 'No data found for Given Selection Criteria'.
      endif.
      sort i_material by matnr .
      DELETE ADJACENT DUPLICATES FROM i_material COMPARING matnr.
    ENDFORM.                    " get_data_tables
    *&      Form  read_data
          Read the data
    FORM read_data.
      loop at i_material.
      Storage Bin
        i_final-lgpla = i_material-lgpla.
    Days of Sales ( End date - Start date )
        CALL FUNCTION 'HR_HK_DIFF_BT_2_DATES'
             EXPORTING
                  DATE1         = p_endat1
                  DATE2         = p_stdat1
                  OUTPUT_FORMAT = '02'
             IMPORTING
                  DAYS          = i_final-days.
    Get the Average Daily Sales (Units) from MVER Table
        perform get_average_sales.
    Get the Average Daily Sales ($$) from VK13 Transaction
        perform get_avgsales_price.
        clear : v_labst.
    Get the Inventory from MARD Table
        select single labst from mard into v_labst
                                 where matnr = i_material-matnr
                                 and   werks = p_werks
                                 and   lgort = c_lgort.
        if sy-subrc eq 0.
    Inventory Stock - MARD-LABST
          i_final-labst = v_labst.
        endif.
    Material #
        i_final-matnr = i_material-matnr.
    Get the Material Description
        clear v_maktx.
        select single maktx from makt into v_maktx
                            where matnr = i_material-matnr
                            and   spras = 'EN'.
        if sy-subrc eq 0.
    Description
          i_final-maktx = v_maktx.
        endif.
    Get the Mvg Average Price
        perform get_moving_avgpr.
    Days of Supply Units.
        if i_final-kbetr ne 0.
          i_final-dos = i_final-labst / i_final-menge.
        endif.
    Days of Supply $$
        i_final-dosm =  i_final-dos * v_stprs.
        append  i_final.
        clear : i_final,
                i_material.
      endloop.
      refresh i_material.
    ENDFORM.                    " read_data
    *&      Form  get_average_sales
          Get the data from MVER Table
    FORM get_average_sales.
      data : lv_menge like mseg-menge.
      refresh int_ges_verb_tab.
      clear : int_ges_verb_tab,
              lv_menge.
      CALL FUNCTION 'CONSUMPTION_READ_FOR_MM'
        EXPORTING
      KZRFB              = ' '
          MATNR              = i_material-matnr
          WERKS              = c_werks
          PERKZ              = c_perkz
          PERIV              = c_periv
       TABLES
         GES_VERB_TAB       = int_ges_verb_tab
      UNG_VERB_TAB       =
       EXCEPTIONS
         WRONG_CALL         = 1
         NOT_FOUND          = 2
         OTHERS             = 3
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      loop at int_ges_verb_tab.
        if int_ges_verb_tab-ertag   >= p_stdat1  and
           int_ges_verb_tab-ertag  <= p_endat1.
          add int_ges_verb_tab-vbwrt to lv_menge.
        endif.
      endloop.
      i_final-menge = lv_menge / i_final-days.
    ENDFORM.                    " get_average_sales
    *&      Form  get_avgsales_price
          Avg Daily Sales Price
    FORM get_avgsales_price.
    Get the data from A004 table to get KNUMH
    Added new field Sales Unit - Seshu 01/09/2006
      refresh : i_a004.
      clear :   i_a004.
      data : lv_kbetr like konp-kbetr," Condition value
             lv_KPEIN like konp-kpein , "per
             lv_KMEIN like konp-KMEIN. " Sales Unit
      select * from a004 into table i_a004
                              where matnr = i_material-matnr
                              and   vkorg = '0001'
                              and   vtweg = '01'.
      if sy-subrc eq 0.
        sort i_a004 by DATAB descending.
    Get the Latetest Date
        read table i_a004 with key matnr = i_material-matnr
                                   vkorg = '0001'
                                   vtweg = '01'
                                   binary search.
    Get the Sales Value
        select single kbetr KPEIN KMEIN from konp
                 into (lv_kbetr,lv_KPEIN, lv_KMEIN)
                                 where knumh = i_a004-knumh
                                 and   kappl = i_a004-kappl
                                 and   kschl = i_a004-kschl.
        if sy-subrc eq 0.
          i_final-kbetr = lv_kbetr / lv_KPEIN.
          i_final-kbetr = i_final-kbetr * i_final-menge.
        endif.
      endif.
      clear : lv_kbetr,
              lv_kpein,
              lv_KMEIN.
    ENDFORM.                    " get_avgsales_price
    *&      Form  get_moving_avgpr
          Get the data from MVEW Table
    FORM get_moving_avgpr.
    Local Variables
      data : lv_stprs like mbew-stprs, " Standard Price
             lv_verpr like mbew-verpr, " Moving avg Price
             lv_vprsv like mbew-vprsv. " Price Indicator
      clear : lv_stprs,
              lv_verpr,
              lv_vprsv,
              v_stprs.
      select single stprs verpr vprsv from mbew
                    into (lv_stprs,lv_verpr,lv_vprsv)
                    where matnr = i_material-matnr.
      if sy-subrc eq 0.
        if lv_vprsv = 'S'.
          i_final-stprs = lv_stprs * i_final-labst.
          v_stprs = lv_stprs.
        elseif lv_vprsv = 'V'.
          i_final-stprs = lv_verpr * i_final-labst.
          v_stprs = lv_verpr.
        endif.
      endif.
    ENDFORM.                    " get_moving_avgpr
    *&      Form  print_alv
          REUSE_ALV_GRID_DISPLAY Function Module
    FORM print_alv.
      PERFORM COMMENT_BUILD USING GT_LIST_TOP_OF_PAGE[].
    Populate field catalog
      PERFORM fieldcat_init  using gt_fieldcat[].
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
       I_INTERFACE_CHECK                 = ' '
       I_BYPASSING_BUFFER                =
       I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                = v_repid
       I_CALLBACK_PF_STATUS_SET          = ' '
        I_CALLBACK_USER_COMMAND           = g_user_command
        I_CALLBACK_TOP_OF_PAGE            =  g_top_of_page
       I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
       I_CALLBACK_HTML_END_OF_LIST       = ' '
       I_STRUCTURE_NAME                  =
       I_BACKGROUND_ID                   = ' '
       I_GRID_TITLE                      =
       I_GRID_SETTINGS                   =
         IS_LAYOUT                         = gs_layout
          IT_FIELDCAT                       = gt_fieldcat[]
       IT_EXCLUDING                      =
       IT_SPECIAL_GROUPS                 =
       IT_SORT                           =
       IT_FILTER                         =
       IS_SEL_HIDE                       =
       I_DEFAULT                         = 'X'
         I_SAVE                            = 'A'
        IS_VARIANT                        =
         IT_EVENTS                         = GT_EVENTS[]
       IT_EVENT_EXIT                     =
       IS_PRINT                          =
       IS_REPREP_ID                      =
       I_SCREEN_START_COLUMN             = 0
       I_SCREEN_START_LINE               = 0
       I_SCREEN_END_COLUMN               = 0
       I_SCREEN_END_LINE                 = 0
       IT_ALV_GRAPHICS                   =
       IT_ADD_FIELDCAT                   =
       IT_HYPERLINK                      =
       I_HTML_HEIGHT_TOP                 =
       I_HTML_HEIGHT_END                 =
       IT_EXCEPT_QINFO                   =
    IMPORTING
       E_EXIT_CAUSED_BY_CALLER           =
       ES_EXIT_CAUSED_BY_USER            =
        TABLES
          T_OUTTAB                          = i_final
       EXCEPTIONS
         PROGRAM_ERROR                     = 1
         OTHERS                            = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    " print_alv
    *&      Form  get_fieldcatlog
          Fieldcatlog
    *&      Form  fieldcat_init
          Fieldcat
    FORM fieldcat_init USING  e01_lt_fieldcat type slis_t_fieldcat_alv.
      DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    Material #
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MATNR'.
      LS_FIELDCAT-ref_fieldname = 'MATNR'.
      LS_FIELDCAT-ref_tabname = 'MARA'.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Material'.
      ls_fieldcat-seltext_M = 'Material'.
      ls_fieldcat-seltext_S = 'Material'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Material Description
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MAKTX'.
      LS_FIELDCAT-OUTPUTLEN    = 30.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Description'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Storage Bin
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'LGPLA'.
      LS_FIELDCAT-OUTPUTLEN    = 10.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Storage Bin'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Start Date
    CLEAR LS_FIELDCAT.
    LS_FIELDCAT-FIELDNAME    = 'SDATE'.
    LS_FIELDCAT-OUTPUTLEN    = 10.
    LS_FIELDCAT-TABNAME    = 'I_FINAL'.
    ls_fieldcat-seltext_L = 'Start Date'.
    APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    End Date.
    CLEAR LS_FIELDCAT.
    LS_FIELDCAT-FIELDNAME    = 'EDATE'.
    LS_FIELDCAT-OUTPUTLEN    = 10.
    LS_FIELDCAT-TABNAME    = 'I_FINAL'.
    ls_fieldcat-seltext_L = 'End Date'.
    APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Days of Sales
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'DAYS'.
      LS_FIELDCAT-OUTPUTLEN    = 12.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Days of Sales'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Average Daily Sales(Units).
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MENGE'.
      LS_FIELDCAT-OUTPUTLEN    = 18.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Average Daily Sales(Units)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Average Daily Sales($$)
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'KBETR'.
      LS_FIELDCAT-OUTPUTLEN    = 18.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Average Daily Sales($$)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Inventory(Units)
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'LABST'.
      LS_FIELDCAT-OUTPUTLEN    = 18.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Inventory(Units)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Inventory($$)
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'STPRS'.
      LS_FIELDCAT-OUTPUTLEN    = 18.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'Inventory($$)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    DOS($$)
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'DOSM'.
      LS_FIELDCAT-OUTPUTLEN    = 13.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'DOS($$)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    DOS(Days)
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'DOS'.
      LS_FIELDCAT-OUTPUTLEN    = 13.
      LS_FIELDCAT-TABNAME    = 'I_FINAL'.
      ls_fieldcat-seltext_L = 'DOS(Days)'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    ENDFORM.                    " get_fieldcatlog
          FORM COMMENT_BUILD                                            *
    -->  LT_TOP_OF_PAGE                                                *
    FORM COMMENT_BUILD USING LT_TOP_OF_PAGE TYPE
                                            SLIS_T_LISTHEADER.
      DATA: LS_LINE TYPE SLIS_LISTHEADER.
    Variables for Date
      data : lv_year(4) type c,
             lv_mon(2) type c,
             lv_day(2) type c,
             lv_date1(10) type c,
             lv_date2(10) type c.
    LIST HEADING LINE: TYPE H
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'H'.
      LS_LINE-INFO = sy-title.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      clear : lv_year,
              lv_day,
              lv_mon,
              lv_date1.
      lv_year = p_stdat1+0(4).
      lv_mon = p_stdat1+4(2).
      lv_day = p_stdat1+6(2).
      concatenate lv_mon '/' lv_day '/' lv_year into lv_date1.
    STATUS LINE: TYPE S
      CLEAR LS_LINE.
      LS_LINE-TYP  = 'S'.
      LS_LINE-KEY  = TEXT-c01.
      LS_LINE-INFO = lv_date1.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      clear : lv_year,
                lv_day,
                lv_mon,
                lv_date2.
      lv_year = P_ENDAT1+0(4).
      lv_mon = P_ENDAT1+4(2).
      lv_day = P_ENDAT1+6(2).
      concatenate lv_mon '/' lv_day '/' lv_year into lv_date2.
      LS_LINE-KEY  = text-c02.
      LS_LINE-INFO = lv_date2.
      APPEND LS_LINE TO LT_TOP_OF_PAGE.
      CLEAR LS_LINE.
    ENDFORM.
          FORM TOP_OF_PAGE                                              *
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
           EXPORTING
                I_LOGO             = 'FDLOGO'
                IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
    ENDFORM.
          FORM EVENTTAB_BUILD                                           *
    -->  RT_EVENTS                                                     *
    FORM EVENTTAB_BUILD USING RT_EVENTS TYPE SLIS_T_EVENT.
    *"Registration of events to happen during list display
      DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                I_LIST_TYPE = 0
           IMPORTING
                ET_EVENTS   = RT_EVENTS.
      READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                               INTO LS_EVENT.
      IF SY-SUBRC = 0.
        MOVE G_TOP_OF_PAGE TO LS_EVENT-FORM.
        APPEND LS_EVENT TO RT_EVENTS.
      ENDIF.
    ENDFORM.
          FORM LAYOUT_INIT                                              *
    -->  RS_LAYOUT                                                     *
    FORM LAYOUT_INIT USING RS_LAYOUT TYPE SLIS_LAYOUT_ALV.
    **"Build layout for list display
      RS_LAYOUT-DETAIL_POPUP      = 'X'.
    lslayout-f2code            = p_f2code.
    rs_layout-zebra             = 'X'.
    rs_layout-colwidth_optimize = 'X'.
    ENDFORM.

  • Total Material Consumption for Period

    Dear all,
    I want to get total consumption for the material form today's date to last six months,  i know the table MVER. Can any one please tell me which fields to pick for the last six months from todays date.
    Thanks,

    Hi Pratibha,
    Have you looked FM <b>CONSUMPTION_READ_FOR_MM</b>?
    Here are the parameters.
    - Material Number MATNR
    - Plant WERKS
    - Period Indicator PERKZ (M= Monthly, W=Weekly, T=Daily, P = Fiscal Year)
    - Fiscal year variant PERIV (if PERKZ = P)
    Hope this will help.
    Regards,
    Ferry Lianto
    Please reward points if helpful.

Maybe you are looking for