生产订单修改查询.docx
- 文档编号:7135346
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:13
- 大小:18.79KB
生产订单修改查询.docx
《生产订单修改查询.docx》由会员分享,可在线阅读,更多相关《生产订单修改查询.docx(13页珍藏版)》请在冰豆网上搜索。
生产订单修改查询
*&
*&------查询生产订单修改明细---------------------------------------------------------------*
REPORT zppr02.
TYPE-POOLS:
slis.
TABLES:
afko,resb,zpp_afko,zpp_resb.
DATA:
itab_afko LIKE TABLE OF zpp_afko WITH HEADER LINE .
DATA:
itab_resb LIKE TABLE OF zpp_resb WITH HEADER LINE.
DATA:
gd_fieldcat TYPE slis_t_fieldcat_alv.
DATA:
gd_repid LIKE sy-repid.
DATA:
sla TYPE slis_layout_alv.
DATA :
allfields TYPE slis_t_fieldcat_alv.
DATA :
wa_allfields TYPE LINE OF slis_t_fieldcat_alv.
DATA:
BEGIN OF itab_entries OCCURS 0 ,
chgdate LIKE zpp_resb-chgdate ,
END OF itab_entries.
TYPES :
BEGIN OF ty_itab ,
matnr LIKE resb-matnr ,
werks LIKE resb-werks ,
lgort LIKE resb-lgort ,
sortf LIKE resb-sortf,
bdmng LIKE resb-bdmng,
rgekz LIKE resb-rgekz ,
sobkz LIKE resb-sobkz ,
meins LIKE resb-meins ,
END OF ty_itab.
TYPES :
BEGIN OF ty_itab1 ,
rspos LIKE resb-rspos ,
matnr LIKE resb-matnr ,
werks LIKE resb-werks ,
bdmng LIKE resb-bdmng, "需求量新
bdmng1 LIKE resb-bdmng, "需求量旧
lgort LIKE resb-lgort , "库存地点新
lgort1 LIKE resb-lgort , "库存地点旧
sortf LIKE resb-sortf, "排序字符串新
sortf1 LIKE resb-sortf, "排序字符串旧
rgekz LIKE resb-rgekz,
rgekz1 LIKE resb-rgekz ,
sobkz LIKE resb-sobkz ,
sobkz1 LIKE resb-sobkz ,
meins LIKE resb-meins,
meins1 LIKE resb-meins,
xloek LIKE resb-xloek, "删除标识
chgdate LIKE zpp_afko-chgdate, "时间搓
rsnum LIKE zpp_afko-rsnum, "预留号
status(200),
END OF ty_itab1.
DATA:
BEGIN OF rec OCCURS 0,
index LIKE sy-index,
aufnr LIKE afko-aufnr,
rsnum LIKE zpp_afko-rsnum,
chgdate LIKE zpp_afko-chgdate,
ip_addr LIKE zpp_afko-ip_addr,
uname LIKE zpp_afko-uname,
gamngo LIKE zpp_afko-gamngo,
gamngn LIKE zpp_afko-gamngn,
del_flag TYPE c,
mod_flag TYPE c,
add_flag TYPE c,
all_flag TYPE c,
new_flag TYPE c,
END OF rec.
DATA:
BEGIN OF rec_resb OCCURS 0,
del_tab TYPE TABLE OF ty_itab1,
add_tab TYPE TABLE OF ty_itab1,
mod_tab TYPE TABLE OF ty_itab1,
all_tab TYPE TABLE OF ty_itab1,
new_tab TYPE TABLE OF ty_itab1,
END OF rec_resb.
DATA:
itab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,
old_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,
old_tabbak TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,
new_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,
newold TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,
del_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,
add_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,
mod_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,
all_tab TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE ,
new_tab1 TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE , "
old_tab1 TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE , "
del_tab1 TYPE STANDARD TABLE OF ty_itab1 WITH HEADER LINE . "
SELECT-OPTIONS:
s_aufnr FOR afko-aufnr NO-EXTENSION NO INTERVALS ,"订单编码
s_datum FOR afko-gltrp DEFAULT '00000000' TO sy-datum , "日期
s_datet FOR zpp_afko-chgdate NO-DISPLAY. "限定时间
START-OF-SELECTION.
PERFORM getdata.
PERFORM fixdata.
PERFORM fieldcat_init USING gd_fieldcat[].
PERFORM output_data_alv.
*&---------------------------------------------------------------------*
*& FORM GETDATA
*&---------------------------------------------------------------------*
FORM getdata .
CONCATENATE s_datum-low '000000' INTO s_datet-low.
CONCATENATE s_datum-high '235959' INTO s_datet-high.
s_datet-sign = s_datum-sign.
s_datet-option = s_datum-option.
APPEND s_datet.
SELECT * INTO TABLE itab_afko
FROM zpp_afko WHERE aufnr IN s_aufnr AND
chgdate IN s_datet.
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& FORM FIXDATA
*&---------------------------------------------------------------------*
FORM fixdata .
DATA :
n TYPE i ,number TYPE i.
SORT itab_afko BY aufnr chgdate DESCENDING .
LOOP AT itab_afko.
IF n = 0 .
SELECT * INTO CORRESPONDING FIELDS OF TABLE new_tab
FROM resb WHERE rsnum = itab_afko-rsnum.
SELECT * INTO CORRESPONDING FIELDS OF TABLE new_tab1
FROM resb WHERE rsnum = itab_afko-rsnum.
ELSE.
READ TABLE itab_afko INDEX n .
SELECT * INTO CORRESPONDING FIELDS OF TABLE new_tab
FROM zpp_resb
WHERE chgdate = itab_afko-chgdate AND
rsnum = itab_afko-rsnum.
new_tab1[] = new_tab[].
ENDIF.
n = n + 1 .
READ TABLE itab_afko INDEX n .
SELECT * INTO CORRESPONDING FIELDS OF TABLE old_tab
FROM zpp_resb
WHERE chgdate = itab_afko-chgdate AND
rsnum = itab_afko-rsnum.
old_tab1[] = old_tab[].
SORT new_tab BY rsnum chgdate rspos ASCENDING .
SORT old_tab BY rsnum chgdate rspos ASCENDING .
old_tabbak[] = old_tab[].
DATA:
h TYPE i,m TYPE i , g TYPE i.
newold[] = new_tab[].
APPEND LINES OF old_tab TO newold.
SORT newold BY rsnum rspos ."排列 便于删除
DELETE ADJACENT DUPLICATES FROM newold COMPARING matnr rspos.
g = LINES( new_tab ) + LINES( old_tab ).
IF g = LINES( newold ).
LOOP AT new_tab.
IF new_tab-xloek <> 'X'.
new_tab-status = '重读新增'.
APPEND new_tab TO add_tab.
ENDIF.
ENDLOOP.
LOOP AT old_tab.
IF old_tab-xloek <> 'X'.
old_tab-lgort1 = old_tab-lgort.
CLEAR old_tab-lgort.
old_tab-bdmng1 = old_tab-bdmng.
CLEAR old_tab-bdmng.
old_tab-sortf1 = old_tab-sortf.
CLEAR old_tab-sortf.
old_tab-rgekz1 = old_tab-rgekz.
CLEAR old_tab-rgekz.
old_tab-sobkz1 = old_tab-sobkz.
CLEAR old_tab-sobkz.
old_tab-meins1 = old_tab-meins.
CLEAR old_tab-meins.
old_tab-status = '重读删除'.
APPEND old_tab TO del_tab.
ENDIF.
ENDLOOP.
ELSE.
LOOP AT new_tab.
READ TABLE old_tab WITH KEY matnr = new_tab-matnr rspos = new_tab-rspos .
IF sy-subrc = 0.
DELETE old_tab WHERE matnr = new_tab-matnr AND rspos = new_tab-rspos .
IF new_tab-xloek = 'X'.
IF old_tab-xloek <> 'X'.
old_tab-lgort1 = old_tab-lgort.
CLEAR old_tab-lgort.
old_tab-bdmng1 = old_tab-bdmng.
CLEAR old_tab-bdmng.
old_tab-sortf1 = old_tab-sortf.
CLEAR old_tab-sortf.
old_tab-rgekz1 = old_tab-rgekz.
CLEAR old_tab-rgekz.
old_tab-sobkz1 = old_tab-sobkz.
CLEAR old_tab-sobkz.
old_tab-meins1 = old_tab-meins.
CLEAR old_tab-meins.
old_tab-status = '删除'.
APPEND old_tab TO del_tab.
ENDIF.
ELSE.
IF old_tab-xloek <> 'X'.
new_tab-status = '修改'.
IF new_tab-lgort <> old_tab-lgort OR new_tab-bdmng <> old_tab-bdmng OR
old_tab-sortf <> new_tab-sortf OR old_tab-rgekz <> new_tab-rgekz OR
old_tab-sobkz <> new_tab-sobkz OR old_tab-meins <> new_tab-meins .
IF new_tab-lgort <> old_tab-lgort.
new_tab-lgort1 = old_tab-lgort.
ELSE.
CLEAR new_tab-lgort.
ENDIF.
IF new_tab-bdmng <> old_tab-bdmng.
new_tab-bdmng1 = old_tab-bdmng.
ELSE.
CLEAR new_tab-bdmng.
ENDIF.
IF old_tab-sortf <> new_tab-sortf.
new_tab-sortf1 = old_tab-sortf.
ELSE.
CLEAR new_tab-sortf.
ENDIF.
IF old_tab-rgekz <> new_tab-rgekz.
new_tab-rgekz1 = old_tab-rgekz.
ELSE.
CLEAR new_tab-rgekz.
ENDIF.
IF old_tab-sobkz <> new_tab-sobkz.
new_tab-sobkz1 = old_tab-sobkz.
ELSE.
CLEAR new_tab-sobkz .
ENDIF.
IF old_tab-meins <> new_tab-meins.
new_tab-meins1 = old_tab-meins.
ELSE.
CLEAR new_tab-meins.
ENDIF.
APPEND new_tab TO mod_tab.
ENDIF.
ELSE.
new_tab-status = '订单删除恢复-新增'.
APPEND new_tab TO add_tab.
ENDIF.
ENDIF.
ELSE.
new_tab-status = '新增'.
APPEND new_tab TO add_tab.
ENDIF.
ENDLOOP.
LOOP AT old_tab WHERE xloek <> 'X'.
old_tab-status = '无删除标记的删除.'.
old_tab-lgort1 = old_tab-lgort.
CLEAR old_tab-lgort.
old_tab-bdmng1 = old_tab-bdmng.
CLEAR old_tab-bdmng.
old_tab-sortf1 = old_tab-sortf.
CLEAR old_tab-sortf.
old_tab-rgekz1 = old_tab-rgekz.
CLEAR old_tab-rgekz.
old_tab-sobkz1 = old_tab-sobkz.
CLEAR old_tab-sobkz.
old_tab-meins1 = old_tab-meins.
CLEAR old_tab-meins.
APPEND old_tab TO del_tab.
ENDLOOP.
ENDIF.
CLEAR rec.
MOVE-CORRESPONDING itab_afko TO rec.
IF del_tab[] IS NOT INITIAL.
rec-del_flag = 'X'.
ENDIF.
IF add_tab[] IS NOT INITIAL.
rec-add_flag = 'X'.
ENDIF.
IF mod_tab[] IS NOT INITIAL.
rec-mod_flag = 'X'.
ENDIF.
rec-all_flag = 'X'.
rec
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 生产 订单 修改 查询