📄 zmmr0006.html
字号:
DATA:L_MENGE TYPE MENGE_D.
REFRESH:ITAB_DATA.
IF R_FLAG1 = 'X'.
AUTHORITY-CHECK OBJECT 'M_MSEG_BMB' ID 'BWART' FIELD 'Z47'
ID 'ACTVT' FIELD '*'.
IF SY-SUBRC NE 0.
MESSAGE '对Z47的移动类型没有操作权限!' TYPE 'E'.
ENDIF.
ELSE.
AUTHORITY-CHECK OBJECT 'M_MSEG_BMB' ID 'BWART' FIELD 'Z33'
ID 'ACTVT' FIELD '*'.
IF SY-SUBRC NE 0.
MESSAGE '对Z33的移动类型没有操作权限!' TYPE 'E'.
ENDIF.
ENDIF.
IF R_FLAG1 = 'X'.
SELECT A~MBLNR A~MJAHR A~ZEILE A~MATNR D~MAKTX A~LIFNR C~NAME1 A~WERKS A~MENGE E~MENGE AS MENGE2
B~BLDAT
INTO CORRESPONDING FIELDS OF TABLE ITAB_DATA
FROM MSEG AS A
JOIN MKPF AS B ON A~MBLNR = B~MBLNR AND A~MJAHR = B~MJAHR
JOIN LFA1 AS C ON A~LIFNR = C~LIFNR
JOIN MAKT AS D ON A~MATNR = D~MATNR AND D~SPRAS = '1'
JOIN ZMM03 AS E ON A~MBLNR = E~MBLNR AND A~MJAHR = E~MJAHR
AND A~ZEILE = E~ZEILE AND E~STATU = 'A'
WHERE A~LIFNR IN S_LIFNR AND A~BWART = 'Z45'
AND A~MATNR IN S_MATNR AND A~LGORT <> ''
AND E~UDATE IN S_BLDAT ORDER BY A~LIFNR A~MATNR A~MBLNR.
LOOP AT ITAB_DATA INTO WA_DATA.
SELECT SUM( MENGE ) INTO L_MENGE FROM ZMM03
WHERE MBLNR = WA_DATA-MBLNR AND MJAHR = WA_DATA-MJAHR
AND ZEILE = WA_DATA-ZEILE AND STATU = 'C'.
WA_DATA-LGORT = '1300'.
WA_DATA-MENGE1 = L_MENGE.
MODIFY ITAB_DATA FROM WA_DATA.
ENDLOOP.
ELSEIF C_SERNR = 'X'.
SELECT A~MBLNR A~MJAHR A~ZEILE A~MATNR D~MAKTX A~GRUND A~WEMPF A~WERKS E~SERNR
B~BLDAT A~SOBKZ A~KDAUF A~KDPOS
INTO CORRESPONDING FIELDS OF TABLE ITAB_DATA
FROM MSEG AS A
JOIN MKPF AS B ON A~MBLNR = B~MBLNR AND A~MJAHR = B~MJAHR
JOIN MAKT AS D ON A~MATNR = D~MATNR AND D~SPRAS = '1'
JOIN ZMM03 AS E ON A~MBLNR = E~MBLNR AND A~MJAHR = E~MJAHR
AND A~ZEILE = E~ZEILE AND E~STATU = 'A'
WHERE A~LIFNR IN S_LIFNR AND A~BWART = 'Z31'
AND A~MATNR IN S_MATNR AND A~XAUTO = 'X'
AND E~UDATE IN S_BLDAT ORDER BY A~GRUND A~MATNR A~MBLNR.
LOOP AT ITAB_DATA INTO WA_DATA.
SELECT SINGLE GRTXT INTO WA_DATA-GRTXT
FROM T157E WHERE BWART = 'Z31' AND GRUND = WA_DATA-GRUND AND SPRAS = '1'.
WA_DATA-LGORT = '1300'.
MODIFY ITAB_DATA FROM WA_DATA.
ENDLOOP.
ELSE.
SELECT A~MBLNR A~MJAHR A~ZEILE A~MATNR D~MAKTX A~GRUND A~WEMPF A~WERKS A~MENGE E~MENGE AS MENGE2
B~BLDAT
INTO CORRESPONDING FIELDS OF TABLE ITAB_DATA
FROM MSEG AS A
JOIN MKPF AS B ON A~MBLNR = B~MBLNR AND A~MJAHR = B~MJAHR
JOIN MAKT AS D ON A~MATNR = D~MATNR AND D~SPRAS = '1'
JOIN ZMM03 AS E ON A~MBLNR = E~MBLNR AND A~MJAHR = E~MJAHR
AND A~ZEILE = E~ZEILE AND E~STATU = 'A'
WHERE A~LIFNR IN S_LIFNR AND A~BWART = 'Z31'
AND A~MATNR IN S_MATNR AND A~XAUTO = 'X'
AND E~UDATE IN S_BLDAT
AND A~MBLNR NOT IN
( SELECT MBLNR FROM SER03 WHERE MBLNR = A~MBLNR AND ZEILE = A~ZEILE )
ORDER BY A~GRUND A~MATNR A~MBLNR.
LOOP AT ITAB_DATA INTO WA_DATA.
SELECT SUM( MENGE ) INTO L_MENGE FROM ZMM03
WHERE MBLNR = WA_DATA-MBLNR AND MJAHR = WA_DATA-MJAHR
AND ZEILE = WA_DATA-ZEILE AND STATU = 'C'.
SELECT SINGLE GRTXT INTO WA_DATA-GRTXT
FROM T157E WHERE BWART = 'Z31' AND GRUND = WA_DATA-GRUND AND SPRAS = '1'.
WA_DATA-LGORT = '1300'.
WA_DATA-MENGE1 = L_MENGE.
MODIFY ITAB_DATA FROM WA_DATA.
ENDLOOP.
ENDIF.
DELETE ITAB_DATA WHERE FLAG = '1'.
<font color ="#0000FF">*根据凭证日期,算出离现在的天数</font>
CLEAR WA_DATA.
LOOP AT ITAB_DATA INTO WA_DATA.
WA_DATA-F_DATE_NUMBER = SY-DATUM - WA_DATA-BLDAT.
MODIFY ITAB_DATA FROM WA_DATA.
CLEAR WA_DATA.
ENDLOOP.
<font color ="#0000FF">* IF ITAB_DATA IS INITIAL.</font>
<font color ="#0000FF">* MESSAGE '满足条件的数据不存在!' TYPE 'E'.</font>
<font color ="#0000FF">* ENDIF.</font>
ENDFORM. "SUB_SELECT_DATA
<font color ="#0000FF">*&-------------------------------------------------------------</font>
<font color ="#0000FF">*& Form SUB_DISPLAY_DATA</font>
<font color ="#0000FF">*&-------------------------------------------------------------</font>
FORM SUB_DISPLAY_DATA.
type-pools slis.
data: allfields type slis_t_fieldcat_alv.
data: wa_allfields type lvc_s_fcat.
<font color ="#0000FF">* myrepid = sy-repid.</font>
CREATE OBJECT event_receiver.
CREATE OBJECT go_grid EXPORTING i_parent = cl_gui_custom_container=>screen0.
clear wa_allfields.
wa_allfields-fieldname = 'SEL'."必须是大写
wa_allfields-scrtext_l = '选择'.
wa_allfields-checkbox = 'X'.
wa_allfields-edit = 'X'.
wa_allfields-outputlen = 4.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
IF R_FLAG1 = 'X'.
clear wa_allfields.
wa_allfields-fieldname = 'LIFNR'.
wa_allfields-scrtext_l = '供货商号'.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'NAME1'.
wa_allfields-outputlen = 20.
wa_allfields-scrtext_l = '供货商名称'.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
ELSE.
clear wa_allfields.
wa_allfields-fieldname = 'GRTXT'.
wa_allfields-outputlen = 20.
wa_allfields-scrtext_l = '部门名称'.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'WEMPF'.
wa_allfields-scrtext_l = '借用人'.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
ENDIF.
clear wa_allfields.
wa_allfields-fieldname = 'MBLNR'.
wa_allfields-scrtext_l = '物料凭证号'.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'WERKS'.
wa_allfields-scrtext_l = '工厂'.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'MJAHR'.
wa_allfields-scrtext_l = '凭证年'.
wa_allfields-outputlen = 6.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'ZEILE'.
wa_allfields-scrtext_l = '行号'.
wa_allfields-outputlen = 4.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'BLDAT'.
wa_allfields-scrtext_l = '借用/送修 日期'.
wa_allfields-outputlen = 10.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'F_DATE_NUMBER'.
wa_allfields-scrtext_l = '借用/送修 天数'.
wa_allfields-outputlen = 10.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'MATNR'.
wa_allfields-scrtext_l = '物料号'.
wa_allfields-outputlen = 18.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'MAKTX'.
wa_allfields-scrtext_l = '物料描述'.
wa_allfields-outputlen = 20.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
IF C_SERNR = 'X' AND R_FLAG2 = 'X'.
clear wa_allfields.
wa_allfields-fieldname = 'SERNR'.
wa_allfields-scrtext_l = '序列号'.
wa_allfields-outputlen = 20.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'SOBKZ'.
wa_allfields-scrtext_l = '特殊库存'.
wa_allfields-outputlen = 8.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'KDAUF'.
wa_allfields-scrtext_l = '销售订单'.
wa_allfields-outputlen = 10.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'KDPOS'.
wa_allfields-scrtext_l = '行项目'.
wa_allfields-outputlen = 6.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
ELSE.
clear wa_allfields.
wa_allfields-fieldname = 'MENGE'.
wa_allfields-scrtext_l = '凭证数量'.
wa_allfields-outputlen = 8.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'MENGE1'.
wa_allfields-scrtext_l = '入库数量'.
wa_allfields-outputlen = 8.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
clear wa_allfields.
wa_allfields-fieldname = 'MENGE2'.
wa_allfields-scrtext_l = '计划入库'.
wa_allfields-outputlen = 8.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
ENDIF.
clear wa_allfields.
wa_allfields-fieldname = 'LGORT'.
wa_allfields-scrtext_l = '库存地点'.
wa_allfields-edit = 'X'.
wa_allfields-outputlen = 8.
APPEND wa_allfields TO event_receiver->gt_fieldcat.
CALL METHOD event_receiver->show_grid
EXPORTING
grid = go_grid
CHANGING
output_table = ITAB_DATA[].
WRITE:/.
ENDFORM. "SUB_DISPLAY_DATA
<font color ="#0000FF">*Text elements</font>
<font color ="#0000FF">*----------------------------------------------------------</font>
<font color ="#0000FF">* 001 供货商维修</font>
<font color ="#0000FF">* 002 借用归还</font>
<font color ="#0000FF">* 003 选择</font>
<font color ="#0000FF">* 004 查询条件</font>
<font color ="#0000FF">*Selection texts</font>
<font color ="#0000FF">*----------------------------------------------------------</font>
<font color ="#0000FF">* C_SERNR 按序列号处理</font>
<font color ="#0000FF">* R_FLAG1 供货商维修入库</font>
<font color ="#0000FF">* R_FLAG2 借用归还入库</font>
<font color ="#0000FF">* S_BLDAT 借用/送修 日期</font>
<font color ="#0000FF">* S_GRUND 借用部门</font>
<font color ="#0000FF">* S_LIFNR 供货商</font>
<font color ="#0000FF">* S_MATNR 物料号</font>
<font color ="#0000FF">* S_WEMPF 借用人</font>
<font color ="#0000FF">*Messages</font>
<font color ="#0000FF">*----------------------------------------------------------</font>
<font color ="#0000FF">*</font>
<font color ="#0000FF">* Message class: Hard coded</font>
<font color ="#0000FF">* 请选择同一个供货商的凭证!</font>
<font color ="#0000FF">*</font>
<font color ="#0000FF">* Message class: ZX</font>
<font color ="#0000FF">*007 & & & &</font>
<font color ="#0000FF">*YPE</font>
</pre>
<hr>
<font size="2" face = "Sans Serif">Extracted by Direct Download Enterprise version 1.3.1 - E.G.Mellodew. 1998-2005 UK. Sap Release 700
</font>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -