*&---------------------------------------------------------------------*
*& Report ZMMR004*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zmmr004 NO STANDARD PAGE HEADING .
TABLES : mbewh , mara , mard , mkpf .
*kk
TYPE-POOLS : slis .
DATA : BEGIN OF gt_itab OCCURS 0 ,
matnr LIKE mara -matnr , "物料号
maktx LIKE makt -maktx , "物料描述
meins LIKE mara -meins , "单位
zsqjc LIKE mseg -menge , "上期结存
zbqjh LIKE mseg -menge , "本期进货
zbqth LIKE mseg -menge , "本期退货
bqbcs LIKE mseg -menge , "本期拨出数
bqbrs LIKE mseg -menge , "本期拨入数
cbzxf LIKE mseg -menge , "成本中心发料数
cbzxt LIKE mseg -menge , "成本中心退料数
zbqhy LIKE mseg -menge , "本期耗用
zbqjc LIKE mseg -menge , "本期结存
lgort LIKE mseg -lgort , "库位
lgobe LIKE t001l -lgobe , "库位描述
werks LIKE mseg -werks ,
zqty LIKE mseg -menge ,
reffi TYPE mara -meins ,
END OF gt_itab .
DATA : gt_itab2 LIKE gt_itab OCCURS 0 WITH HEADER LINE .
DATA : BEGIN OF gt_matr OCCURS 0 ,
matnr LIKE mara -matnr ,
lgort LIKE mard -lgort ,
END OF gt_matr .
DATA : BEGIN OF gt_mbew OCCURS 0 ,
matnr LIKE mara -matnr ,
werks LIKE mard -werks ,
lgort LIKE mard -lgort ,
lbkum LIKE mbewh -lbkum ,
insme LIKE mardh -insme ,
speme LIKE mardh -speme ,
END OF gt_mbew .
DATA : BEGIN OF gt_mseg OCCURS 0 ,
matnr LIKE mara -matnr ,
werks LIKE mseg -werks ,
lgort LIKE mseg -lgort ,
bwart LIKE mseg -bwart ,
shkzg LIKE mseg -shkzg ,
menge LIKE mseg -menge ,
meins LIKE mseg -meins ,
smbln LIKE mseg -smbln ,
smblp LIKE mseg -smblp ,
mblnr LIKE mseg -mblnr ,
zeile LIKE mseg -zeile ,
insmk LIKE mseg -insmk ,
urzei LIKE mseg -urzei , "原始行项目主要是调拨时会有问题 质检
END OF gt_mseg .
DATA : gt_mseg2 LIKE gt_mseg OCCURS 0 WITH HEADER LINE .
DATA : gt_mseg3 LIKE gt_mseg OCCURS 0 WITH HEADER LINE .
DATA : gt_mseg4 LIKE gt_mseg OCCURS 0 WITH HEADER LINE .
DATA : budat_low LIKE mkpf -budat ,
budat_high LIKE mkpf -budat ,
year ( 4 ) TYPE c ,
month ( 2 ) TYPE c ,
year1 ( 4 ) TYPE c ,
mont1 ( 2 ) TYPE c ,
year2 ( 4 ) TYPE c ,
mont2 ( 2 ) TYPE c ,
date1 LIKE mkpf -budat ,
date3 LIKE mkpf -budat ,
date2 LIKE mkpf -budat .
DATA : BEGIN OF gs_mbmps ,
smbln LIKE m_mbmps -smbln ,
smblp LIKE m_mbmps -smblp ,
mblnr LIKE m_mbmps -mblnr ,
zeile LIKE m_mbmps -zeile ,
END OF gs_mbmps .
DATA : gt_mbmps LIKE TABLE OF gs_mbmps .
*DATA: BEGIN OF gs_qals,
* mblnr LIKE qals-mblnr,
* zeile LIKE qals-zeile,
* END OF gs_qals.
*
*DATA gt_qals LIKE TABLE OF gs_qals .
DATA : BEGIN OF gs_qamb ,
mblnr LIKE qamb -mblnr ,
zeile LIKE qamb -zeile ,
werk LIKE mseg -werks ,
END OF gs_qamb .
DATA gt_qamb LIKE TABLE OF gs_qamb .
DATA gt_qamb2 LIKE TABLE OF gs_qamb .
DATA : qmatv LIKE marc -qmatv .
DATA : n TYPE i .
*&---------------------------------------------------------------------*
*& SELECTION-SCREEN
*&---------------------------------------------------------------------*
SELECTION-SCREEN : BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT - 001 .
PARAMETERS :p_werks LIKE mard -werks DEFAULT '1000' .
SELECT-OPTIONS : s_budat FOR mkpf -budat OBLIGATORY DEFAULT sy -datum ,
s_lgort FOR mard -lgort ,
s_mtart FOR mara -mtart ,
s_matkl FOR mara -matkl ,
s_matnr FOR mara -matnr .
SELECTION-SCREEN END OF BLOCK blk1 .
AT SELECTION-SCREEN OUTPUT .
LOOP AT s_budat .
IF s_budat -low IS INITIAL AND s_budat -high IS NOT INITIAL .
CONCATENATE sy -datum+0 ( 6 ) '01' INTO s_budat -low .
* s_budat-low = s_budat-high.
MODIFY s_budat .
ELSEIF s_budat -high IS INITIAL AND s_budat -low IS NOT INITIAL .
s_budat -high = s_budat -low .
CONCATENATE sy -datum+0 ( 6 ) '01' INTO s_budat -low .
MODIFY s_budat .
ENDIF .
ENDLOOP .
*&---------------------------------------------------------------------*
*& START_OF_SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION .
PERFORM get_data .
PERFORM process_data .
*&---------------------------------------------------------------------*
*& END_OF_SELECTION
*&---------------------------------------------------------------------*
END-OF-SELECTION .
PERFORM write_data .
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data .
READ TABLE s_budat INDEX 1 .
CONCATENATE s_budat -low+0 ( 4 ) s_budat -low+4 ( 2 ) '01' INTO budat_low .
budat_high = s_budat -low .
year = s_budat -low+0 ( 4 ) .
month = s_budat -low+4 ( 2 ) .
IF month = '01' .
month = '12' .
year = year - 1 .
ELSE .
month = month - 1 .
ENDIF .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = month
IMPORTING
output = month
EXCEPTIONS
OTHERS = 1 .
mont1 = month .
year1 = year .
CLEAR s_budat