供应商收货容差维护.docx
- 文档编号:18241357
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:15
- 大小:64.11KB
供应商收货容差维护.docx
《供应商收货容差维护.docx》由会员分享,可在线阅读,更多相关《供应商收货容差维护.docx(15页珍藏版)》请在冰点文库上搜索。
供应商收货容差维护
*&---------------------------------------------------------------------*
*& Report ZTMM_E002
*& Report Name:
MM 采购单收货容差清单报表
*& Report Description:
MM 采购单收货容差清单报表
*& T-Code:
ZMME002
*&---------------------------------------------------------------------*
*& Created By:
TTC Created On:
2012-12-15
*& Updated By:
TTC Updated On:
2012-12-15
*&---------------------------------------------------------------------*
1、主程序
REPORT ztmm_e002.
TABLES:
zeina,zeind.
*功能码返回值
DATA:
ok_code TYPE sy-ucomm,
save_ok TYPE sy-ucomm.
DATA:
lv_line TYPE i,
lv_state
(1).
DATA:
lv_lifnr LIKE eina-lifnr,
lv_matnr LIKE eina-matnr,
lv_ekorg LIKE eine-ekorg,
lv_werks LIKE eine-werks,
lv_infnr LIKE eina-infnr,
lv_meins LIKE zeina-meins,
lv_etenr_qty LIKE zeina-etenr_qty,
lv_loekz LIKE zeina-loekz,
lv_createby LIKE zeina-createby,
lv_createdate LIKE zeina-createdate,
lv_updateuser LIKE zeina-updateuser,
lv_updatedate LIKE zeina-updatedate.
DATA:
BEGIN OF wa_eina OCCURS 0,
infnr LIKE eina-infnr,
matnr LIKE eina-matnr,
lifnr LIKE eina-lifnr,
ekorg LIKE eine-ekorg,
werks LIKE eine-werks,
meins LIKE eina-meins,
END OF wa_eina.
DATA:
gt_zeina TYPE zeina OCCURS 0 WITH HEADER LINE.
DATA:
gt_zeind TYPE zeind OCCURS 0 WITH HEADER LINE,
wa_zeind TYPE zeind.
CONTROLS:
ztmm_1000 TYPE TABLEVIEW USING SCREEN 1000.
START-OF-SELECTION.
CALL SCREEN 1000.
*&---------------------------------------------------------------------*
*& Form clear_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM clear_data.
CLEAR:
lv_lifnr,
lv_matnr,
lv_ekorg,
lv_werks,
* lv_infnr,
lv_meins,
lv_etenr_qty,
lv_loekz,
lv_createby,
lv_createdate,
lv_updateuser,
lv_updatedate.
sy-ucomm = ''.
lv_state = ''.
FREE:
gt_zeind,wa_zeind.
ENDFORM. "CLEAR_DATA
INCLUDE ztmm_e002_status_1000o01. "PBO
INCLUDE ztmm_e002_user_command_1000i01."PAI
INCLUDE ztmm_e002_status_1010o01.
INCLUDE ztmm_e002_user_command_1010i01.
2、"主窗口屏幕1000
PROCESS BEFORE OUTPUT.
FIELD lv_lifnr MODULE lv_lifnr.
FIELD lv_matnr MODULE lv_matnr.
FIELD lv_ekorg MODULE lv_ekorg.
FIELD lv_werks MODULE lv_werks.
FIELD lv_meins MODULE lv_meins.
FIELD lv_etenr_qty MODULE lv_etenr_qty.
FIELD lv_loekz MODULE lv_loekz.
FIELD lv_createby MODULE lv_createby.
FIELD lv_createdate MODULE lv_createdate.
FIELD lv_updateuser MODULE lv_updateuser.
FIELD lv_updatedate MODULE lv_updatedate.
MODULE status_1000.
LOOP WITH CONTROL ztmm_1000.
MODULE display_data.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP WITH CONTROL ztmm_1000.
MODULE modify_data.
ENDLOOP.
MODULE user_command_1000.
"屏幕1000PBO
*----------------------------------------------------------------------*
***INCLUDE ZTMM_E002_STATUS_1000O01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module STATUS_1000 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE status_1000 OUTPUT.
SET PF-STATUS 'ZMME002'.
SET TITLEBAR 'ZTMM_HEADER'.
DESCRIBE TABLE gt_zeind LINES lv_line.
ztmm_1000-lines = lv_line.
PERFORM initial. "初始化
ENDMODULE. " STATUS_1000 OUTPUT
*----------------------------------------------------------------------*
* MODULE display_data OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE display_data OUTPUT.
READ TABLE gt_zeind INTO gt_zeind INDEX ztmm_1000-current_line. " DISPLAY OUTPUT
LOOP AT SCREEN.
CASE screen-name.
WHEN 'GT_ZEIND-RATETYPE' OR 'GT_ZEIND-RATEQTY' OR 'GT_ZEIND-PERCENT' OR 'GT_ZEIND-LIMIT'
OR 'GT_ZEIND-LOEKZ' .
CASE lv_state.
WHEN 'I' OR 'M'.
screen-input = 1.
WHEN OTHERS.
screen-input = 0.
ENDCASE.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDMODULE. " DISPLAY_ZTMM_1001 OUTPUT
*&---------------------------------------------------------------------*
*& Form INITIAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM initial.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'LV_ETENR_QTY'.
CASE lv_state.
WHEN 'I' OR 'M'.
screen-input = 1.
WHEN OTHERS.
screen-input = 0.
ENDCASE.
WHEN 'LV_LOEKZ'.
CASE lv_state.
WHEN 'I' OR 'D'.
screen-input = 0.
WHEN 'M'.
screen-input = 1.
WHEN OTHERS.
screen-input = 0.
ENDCASE.
WHEN 'LV_LIFNR' OR 'LV_MATNR' OR 'LV_EKORG' OR 'LV_WERKS' OR 'LV_MEINS' OR 'LV_CREATEBY'
OR 'LV_CREATEDATE' OR 'LV_UPDATEUSER' OR 'LV_UPDATEDATE'.
screen-input = 0.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDFORM. "INITIAL
"屏幕1000PAI
*----------------------------------------------------------------------*
***INCLUDE ZTMM_E002_USER_COMMAND_1000I01 .
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_1000 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_1000 INPUT.
save_ok = sy-ucomm. "ok_code .
CASE save_ok.
WHEN 'EXIT' OR 'BACK' OR 'CANC' .
PERFORM clear_data. "清空窗口数据
SET SCREEN 0. LEAVE SCREEN.
WHEN 'SAVE'.
PERFORM save_data. "保存数据。
WHEN 'NEW'.
lv_state = 'I'.
PERFORM clear_data. "清空窗口数据
PERFORM initial.
CALL SCREEN 1010 STARTING AT 8 1.
WHEN 'MODI'.
IF lv_state = 'I'.
IF lv_lifnr NE ''.
MESSAGE '当前为新增状态,不能切换模式。
' TYPE 'S'.
EXIT.
ELSE.
MESSAGE '窗口无修改数据。
' TYPE 'E'.
EXIT.
ENDIF.
ELSE.
IF lv_lifnr EQ '' OR lv_matnr EQ '' OR lv_ekorg EQ '' OR lv_werks EQ ''.
MESSAGE '窗口无修改数据。
' TYPE 'E'.
EXIT.
ENDIF.
lv_state = 'M'.
PERFORM initial.
ENDIF.
WHEN 'DISP'.
lv_state = 'D'.
CALL SCREEN 1010 STARTING AT 8 1.
ENDCASE.
ENDMODULE. " USER_COMMAND_1000 INPUT
*&---------------------------------------------------------------------*
*& Form save_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM save_data.
" ===================== 供应商采购信息 =====================
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_zeina
FROM zeina
WHERE lifnr = lv_lifnr
AND matnr = lv_matnr
AND ekorg = lv_ekorg
AND werks = lv_werks.
IF sy-subrc EQ 0.
LOOP AT gt_zeina.
gt_zeina-loekz = lv_loekz.
gt_zeina-meins = lv_meins.
gt_zeina-etenr_qty = lv_etenr_qty.
gt_zeina-updateuser = sy-uname.
gt_zeina-updatedate = sy-datum.
MODIFY gt_zeina.
MODIFY zeina FROM TABLE gt_zeina.
ENDLOOP.
ELSE.
gt_zeina-mandt = sy-mandt.
gt_zeina-infnr = lv_infnr. "采购信息号
gt_zeina-loekz = lv_loekz.
gt_zeina-lifnr = lv_lifnr.
gt_zeina-matnr = lv_matnr.
gt_zeina-ekorg = lv_ekorg.
gt_zeina-werks = lv_werks.
gt_zeina-meins = lv_meins.
gt_zeina-etenr_qty = lv_etenr_qty.
gt_zeina-createby = lv_createby.
gt_zeina-createdate = lv_createdate.
gt_zeina-updateuser = lv_updateuser.
gt_zeina-updatedate = lv_updatedate.
COLLECT gt_zeina.
MODIFY zeina FROM TABLE gt_zeina.
ENDIF.
" ================= 明细数据 =================
DESCRIBE TABLE gt_zeina LINES lv_line.
IF lv_line > 0.
SORT gt_zeind BY slno ASCENDING.
LOOP AT gt_zeind.
MODIFY zeind FROM TABLE gt_zeind .
ENDLOOP.
ENDIF.
IF sy-subrc EQ 0.
MESSAGE '保存成功' TYPE 'S'.
ENDIF.
ENDFORM. "save_data
*&---------------------------------------------------------------------*
*& Form del_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM del_data.
ENDFORM. "del_data
*----------------------------------------------------------------------*
* MODULE modify_data INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE modify_data INPUT.
SORT gt_zeind BY rateqty ASCENDING slno ASCENDING.
READ TABLE gt_zeind INTO wa_zeind INDEX ztmm_1000-current_line.
IF sy-subrc <> 0.
wa_zeind-mandt = sy-mandt.
wa_zeind-infnr = lv_infnr. "采购信息号
wa_zeind-lifnr = lv_lifnr.
wa_zeind-matnr = lv_matnr.
wa_zeind-ekorg = lv_ekorg.
wa_zeind-werks = lv_werks.
wa_zeind-slno = ztmm_1000-current_line.
wa_zeind-ratetype = gt_zeind-ratetype.
wa_zeind-LOEKZ = gt_zeind-LOEKZ. "删除标识
IF gt_zeind-limit EQ ''.
wa_zeind-limit = gt_zeind-limit.
wa_zeind-rateqty = gt_zeind-rateqty.
wa_zeind-percent = gt_zeind-percent.
ELSE.
wa_zeind-limit = gt_zeind-limit.
wa_zeind-rateqty = ''.
wa_zeind-percent = ''.
ENDIF.
APPEND
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 供应商 收货 维护