Professional Documents
Culture Documents
* Objective :
* Author : Leonardo Ferreira
* Date : Sep/19/2003
* Tec.Spec.ID : CCM-075
* Change Req. :
************************************************************************
REPORT zmxm_ccm075.
*----------------------------------------------------------------------*
* Tables
*----------------------------------------------------------------------*
TABLES : mara, t024, rmcp2, marc.
*----------------------------------------------------------------------*
* TYPE-POOLS
*----------------------------------------------------------------------*
TYPE-POOLS: slis. "Used by ALV
*----------------------------------------------------------------------*
* Estruturas
*----------------------------------------------------------------------*
DATA : e_alv_layout TYPE slis_layout_alv, "ALV layout
e_alv_is_variant TYPE disvariant, "Variant
e_alv_is_print TYPE slis_print_alv, "print info
e_t_alv_fc TYPE slis_fieldcat_alv, "Fields catalog
e_t_head_alv TYPE slis_listheader. "Header ALV
*----------------------------------------------------------------------*
* Local Tables
*----------------------------------------------------------------------*
DATA : BEGIN OF t_data OCCURS 0,
matnr LIKE mara-matnr, "Material
werks LIKE marc-werks, "Plant
maktx LIKE makt-maktx, "Description
maabc LIKE marc-maabc, "ABC Indicator
ekgrp LIKE marc-ekgrp, "Purchasing Groups
eisbe LIKE marc-eisbe, "Safety stock
END OF t_data.
*----------------------------------------------------------------------*
* Field-Symbols
*----------------------------------------------------------------------*
FIELD-SYMBOLS : <forecast> TYPE mver-gsv01, "Forecast
<demand> TYPE mver-mgv01. "Demand
*----------------------------------------------------------------------*
* Variable
*----------------------------------------------------------------------*
DATA : v_forecast(30),
v_demand(30),
v_date LIKE sy-datum.
*----------------------------------------------------------------------*
* Constants
*----------------------------------------------------------------------*
CONSTANTS : c_m TYPE c VALUE 'M',
c_i TYPE c VALUE 'I',
c_bt(2) TYPE c VALUE 'BT',
c_display(7) TYPE c VALUE 'DISPLAY'.
*----------------------------------------------------------------------*
* Screen of Election
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-001.
*----------------------------------------------------------------------*
* Begin of Processing
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM f_valida_tela.
PERFORM f_select_data.
PERFORM f_mounts_field.
PERFORM f_mounts_sort.
PERFORM f_print.
END-OF-SELECTION.
*----------------------------------------------------------------------*
* End of Processing
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form f_Select_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_select_data.
IF sy-subrc IS INITIAL.
PERFORM f_select_values.
ELSE.
MESSAGE i000(zmxv) WITH text-e01.
*...No register was not found!
STOP.
ENDIF.
SELECT *
FROM mver
INTO TABLE t_mver
FOR ALL ENTRIES IN t_data
WHERE matnr EQ t_data-matnr AND
werks EQ t_data-werks AND
perkz EQ c_m.
IF sy-subrc IS INITIAL.
PERFORM f_organizes_data.
ELSE.
MESSAGE i000(zmxv) WITH text-e01.
*...No register was not found!
STOP.
ENDIF.
LOOP AT t_data.
APPEND t_exit.
CLEAR : t_exit, t_mver, t_mbew.
ENDLOOP.
*----------------------------------------------------------------------*
* Tables
*----------------------------------------------------------------------*
DATA : BEGIN OF t_demand OCCURS 0,
date LIKE sy-datum,
gsv01 LIKE mver-gsv01,
mgv01 LIKE mver-mgv01,
END OF t_demand.
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Variable
*----------------------------------------------------------------------*
DATA : w_m_end(2) TYPE n,
w_y_end(4) TYPE n,
w_dt_end LIKE sy-datum,
w_demand(20) TYPE c,
w_forecast(20) TYPE c,
w_cont TYPE n,
w_valor(7) TYPE p DECIMALS 2.
*----------------------------------------------------------------------*
DO 6 TIMES.
IF w_m_end > 1.
SUBTRACT 1 FROM w_m_end.
ELSE.
SUBTRACT 1 FROM w_y_end.
w_m_end = 12.
ENDIF.
ENDDO.
w_cont = 7.
LOOP AT t_demand.
CASE w_cont.
WHEN 1.
WRITE : w_valor TO t_exit-m1.
WHEN 2.
WRITE : w_valor TO t_exit-m2.
WHEN 3.
WRITE : w_valor TO t_exit-m3.
WHEN 4.
WRITE : w_valor TO t_exit-m4.
WHEN 5.
WRITE : w_valor TO t_exit-m5.
WHEN 6.
WRITE : w_valor TO t_exit-m6.
ENDCASE.
ENDLOOP.
REFRESH t_alv_fc.
CLEAR t_alv_fc.
e_t_alv_fc-col_pos = col.
e_t_alv_fc-fieldname = campo.
e_t_alv_fc-tabname = table.
e_t_alv_fc-key = key.
e_t_alv_fc-seltext_l = textl.
e_t_alv_fc-seltext_m = textm.
e_t_alv_fc-seltext_s = texts.
e_t_alv_fc-just = just.
e_t_alv_fc-outputlen = outputlen.
APPEND e_t_alv_fc TO t_alv_fc.
t_alv_sort-spos = '1'.
t_alv_sort-fieldname = 'MATNR'.
t_alv_sort-up = 'X'.
APPEND t_alv_sort.
CLEAR t_alv_sort.
e_alv_is_print-no_print_selinfos = 'X'.
e_alv_is_print-no_print_listinfos = 'X'.
e_alv_is_variant-report = sy-repid.
e_alv_layout-default_item = 'X'.
e_alv_layout-f2code = c_display.
e_alv_layout-colwidth_optimize = 'X'.
e_alv_layout-zebra = 'X'.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.