(二)
(三)处理代码
A:
*&---------------------------------------------------------------------*
*& Include YPRUPDATETOP Report YPRUPDATE
*&
*&---------------------------------------------------------------------*
REPORT yprupdate.
INCLUDE zfrm_report_register.
TYPE-POOLS: slis.
DATA: gt_headercat TYPE slis_t_listheader,
gs_headercat TYPE slis_listheader,
gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_fieldcat TYPE slis_fieldcat_alv,
gs_layout TYPE slis_layout_alv,
gt_sortcat TYPE slis_t_sortinfo_alv,
gs_sortcat TYPE slis_sortinfo_alv,
gt_eventcat TYPE slis_t_event,
gs_eventcat TYPE slis_alv_event,
gs_keyinfo TYPE slis_keyinfo_alv.
TABLES:ekko,ekpo,ekbe,t161t.
DATA:BEGIN OF gt_list OCCURS 0,
ebeln LIKE ekko-ebeln, "采购订单编号
sex TYPE c,
ernam LIKE ekko-ernam, "创建者
aedat LIKE ekko-aedat, "订单创建日期
bsart LIKE ekko-bsart, "凭证类型
batxt LIKE t161t-batxt, "描述
werks LIKE ekpo-werks, "工厂
ebelp LIKE ekpo-ebelp, "行号
ekgrp LIKE ekko-ekgrp, "采购组
eknam LIKE t024-eknam, "采购组描述
lifnr LIKE ekko-lifnr, "供应商编号
name1 LIKE lfa1-name1, "供应商名称
matkl LIKE ekpo-matkl, "物料组
wgbez LIKE t023t-wgbez, "物料组描述
matnr LIKE ekpo-matnr, "物料号
txz01 LIKE ekpo-txz01, "物料描述
menge LIKE ekpo-menge, "订单数量
meins LIKE ekpo-meins, "订单单位
jhsl LIKE ekpo-menge, "交货数量
wjhs LIKE ekpo-menge, "未交货数量
elikz LIKE ekpo-elikz, "交货完成标记
frgke LIKE ekko-frgke,
name(220) TYPE c, "备注
END OF gt_list.
DATA:BEGIN OF lt_po OCCURS 0,
ernam LIKE ekko-ernam, "创建者
aedat LIKE ekko-aedat, "订单创建日期
bsart LIKE ekko-bsart, "凭证类型
werks LIKE ekpo-werks, "工厂
ebeln LIKE ekko-ebeln, "采购订单编号
ebelp LIKE ekpo-ebelp, "行号
ekgrp LIKE ekko-ekgrp, "采购组
lifnr LIKE ekko-lifnr, "供应商编号
matkl LIKE ekpo-matkl, "物料组
matnr LIKE ekpo-matnr, "物料号
txz01 LIKE ekpo-txz01, "物料描述
menge LIKE ekpo-menge, "订单数量
meins LIKE ekpo-meins, "订单单位
jhsl LIKE ekpo-menge, "交货数量
wjhs LIKE ekpo-menge, "未交货数量
elikz LIKE ekpo-elikz, "交货完成标记
frgke LIKE ekko-frgke, "审批标识
END OF lt_po.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_werks LIKE ekpo-werks OBLIGATORY,
p_ekgrp LIKE ekko-ekgrp OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECT-OPTIONS:s_bsart FOR ekko-bsart,
s_ebeln FOR ekko-ebeln,
s_matkl FOR ekpo-matkl,
s_matnr FOR ekpo-matnr,
s_ernam FOR ekko-ernam,
s_date FOR ekko-aedat.
SELECTION-SCREEN END OF BLOCK b2.
B:逻辑处理
*&---------------------------------------------------------------------*
*& 包含 YPRUPDATEO01
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
AT SELECTION-SCREEN.
START-OF-SELECTION.
PERFORM save_report_register.
PERFORM check.
PERFORM getdata.
PERFORM build_fieldcat.
PERFORM build_sortcat.
PERFORM build_event.
PERFORM build_layout.
END-OF-SELECTION.
PERFORM dispaly_alv_data.
C:逻辑处理
*&---------------------------------------------------------------------*
*& 包含 YPRUPDATEF01
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form GETDATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM getdata .
* DATA :BEGIN OF lt_t161t OCCURS 0,
* bsart LIKE t161t-bsart,
* batxt LIKE t161t-batxt,
* END OF lt_t161t.
DATA:BEGIN OF lt_t024 OCCURS 0,
ekgrp LIKE t024-ekgrp,
eknam LIKE t024-eknam,
END OF lt_t024.
DATA:BEGIN OF lt_lfa1 OCCURS 0,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1,
END OF lt_lfa1.
DATA:BEGIN OF lt_t023t OCCURS 0,
matkl LIKE t023t-matkl,
wgbez LIKE t023t-wgbez,
END OF lt_t023t.
DATA:lt_poa LIKE lt_po OCCURS 0 WITH HEADER LINE.
DATA:BEGIN OF lt_ekbe OCCURS 0,
ebeln LIKE ekbe-ebeln,
ebelp LIKE ekbe-ebelp,
menge LIKE ekbe-menge,
shkzg LIKE ekbe-shkzg,
END OF lt_ekbe.
DATA:lt_ekbea LIKE lt_ekbe OCCURS 0 WITH HEADER LINE.
* SELECT *
* INTO CORRESPONDING FIELDS OF TABLE lt_t161t
* FROM t161t
* WHERE spras = 1
* AND bstyp = 'F'.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE lt_t024
FROM t024.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE lt_t023t
FROM t023t
WHERE spras = 1.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE lt_po
FROM ekko
INNER JOIN ekpo
ON ekko~ebeln = ekpo~ebeln
WHERE ekko~ebeln IN s_ebeln
AND ekko~ekgrp = p_ekgrp
AND ekko~bsart IN s_bsart
AND ekko~ernam IN s_ernam
AND ekko~aedat IN s_date
AND ekpo~werks = p_werks
AND ekpo~matkl IN s_matkl
AND ekpo~matnr IN s_matnr
AND ekpo~elikz = ''
AND ekko~frgke IN ('','E')
AND ekpo~loekz = ''.
SORT lt_po BY ebeln ebelp.
IF lt_po[] IS INITIAL.
MESSAGE'未发现符合条件的数据,请查证后重新输入条件'
TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ELSE.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE lt_ekbe
FROM ekbe
FOR ALL ENTRIES IN lt_po
WHERE ebeln = lt_po-ebeln
AND ebelp = lt_po-ebelp
AND vgabe = 1.
ENDIF.
lt_poa[] = lt_po[].
SORT lt_poa BY lifnr.
DELETE ADJACENT DUPLICATES FROM lt_poa COMPARING lifnr.
IF lt_poa[] IS NOT INITIAL.
SELECT *
INTO CORRESPONDING FIELDS OF TABLE lt_lfa1
FROM lfa1
FOR ALL ENTRIES IN lt_poa
WHERE lifnr = lt_poa-lifnr.
ENDIF.
LOOP AT lt_ekbe.
MOVE-CORRESPONDING lt_ekbe TO lt_ekbea.
IF lt_ekbe-shkzg = 'H'.
lt_ekbea-menge = lt_ekbe-menge * -1.
ENDIF.
lt_ekbea-shkzg = ''.
COLLECT lt_ekbea.
CLEAR:lt_ekbe,lt_ekbea.
ENDLOOP.
SORT lt_po BY ernam aedat.
SORT lt_lfa1 BY lifnr.
SORT lt_t023t BY matkl.
SORT lt_t024 BY ekgrp.
SORT lt_ekbea BY ebeln ebelp.
LOOP AT lt_po.
MOVE-CORRESPONDING lt_po TO gt_list.
READ TABLE lt_lfa1 WITH KEY lifnr = lt_po-lifnr.
IF sy-subrc EQ 0.
gt_list-name1 = lt_lfa1-name1.
ENDIF.
READ TABLE lt_t023t WITH KEY matkl = lt_po-matkl.
IF sy-subrc EQ 0.
gt_list-wgbez = lt_t023t-wgbez.
ENDIF.
READ TABLE lt_t024 WITH KEY ekgrp = lt_po-ekgrp.
IF sy-subrc EQ 0.
gt_list-eknam = lt_t024-eknam.
ENDIF.
READ TABLE lt_ekbea WITH KEY ebeln = lt_po-ebeln
ebelp = lt_po-ebelp.
IF sy-subrc EQ 0.
gt_list-jhsl = lt_ekbea-menge.
ENDIF.
gt_list-wjhs = gt_list-menge - gt_list-jhsl.
* READ TABLE lt_t161t WITH KEY bsart = lt_po-bsart.
* IF sy-subrc EQ 0.
* gt_list-batxt = lt_t161t-batxt.
* ENDIF.
APPEND gt_list.
CLEAR gt_list.
ENDLOOP.
SORT gt_list BY ebeln ebelp.
ENDFORM. " GETDATA
*&---------------------------------------------------------------------*
*& Form BUILD_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_fieldcat .
FIELD-SYMBOLS <lfs_fieldcat> TYPE slis_fieldcat_alv.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = 'GT_LIST'
i_inclname = 'ZMMPO002'
CHANGING
ct_fieldcat = gt_fieldcat.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT gt_fieldcat ASSIGNING <lfs_fieldcat>.
CASE <lfs_fieldcat>-fieldname.
WHEN 'SEX'.
<lfs_fieldcat>-tech = 'X'.
WHEN 'BATXT'.
<lfs_fieldcat>-tech = 'X'.
WHEN'EKGRP'.
<lfs_fieldcat>-tech = 'X'.
WHEN'WERKS'.
<lfs_fieldcat>-tech = 'X'.
WHEN'MATKL'.
<lfs_fieldcat>-tech = 'X'.
WHEN'NAME'.
<lfs_fieldcat>-seltext_l = text-f01.
<lfs_fieldcat>-seltext_m = text-f01.
<lfs_fieldcat>-seltext_s = text-f01.
<lfs_fieldcat>-reptext_ddic = text-f01.
WHEN'ELIKZ'.
<lfs_fieldcat>-edit = 'X'.
WHEN'JHSL'.
<lfs_fieldcat>-seltext_l = text-f02.
<lfs_fieldcat>-seltext_m = text-f02.
<lfs_fieldcat>-seltext_s = text-f02.
<lfs_fieldcat>-reptext_ddic = text-f02.
WHEN'WJHS'.
<lfs_fieldcat>-seltext_l = text-f03.
<lfs_fieldcat>-seltext_m = text-f03.
<lfs_fieldcat>-seltext_s = text-f03.
<lfs_fieldcat>-reptext_ddic = text-f03.
ENDCASE.
ENDLOOP.
ENDFORM. " BUILD_FIELDCAT
*&---------------------------------------------------------------------*
*& Form BUILD_SORTCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_sortcat .
ENDFORM. " BUILD_SORTCAT
*&---------------------------------------------------------------------*
*& Form BUILD_EVENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_event .
ENDFORM. " BUILD_EVENT
*&---------------------------------------------------------------------*
*& Form BUILD_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM build_layout .
gs_layout-colwidth_optimize = 'X'. " 自动调整列宽
gs_layout-box_fieldname = 'SEX'.
ENDFORM. " BUILD_LAYOUT
*&---------------------------------------------------------------------*
*& Form DISPALY_ALV_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM dispaly_alv_data .
DATA:lv_settings TYPE lvc_s_glay.
lv_settings-edt_cll_cb = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = gt_fieldcat
it_sort = gt_sortcat
it_events = gt_eventcat
is_layout = gs_layout
i_save = 'A'
i_grid_settings = lv_settings
i_callback_user_command = 'USER_COMMAND'
i_callback_pf_status_set = 'SET_PF_STATUS'
TABLES
t_outtab = gt_list
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " DISPALY_ALV_DATA
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield .
DATA: g_grid TYPE REF TO cl_gui_alv_grid.
DATA:lt_list LIKE gt_list OCCURS 0 WITH HEADER LINE.
DATA:ls_list LIKE LINE OF gt_list.
DATA purchaseorder TYPE bapimepoheader-po_number.
DATA:lt_return LIKE bapireturn OCCURS 0 WITH HEADER LINE.
DATA:lt_item LIKE bapimepoitem OCCURS 0 WITH HEADER LINE.
DATA:lt_itemx LIKE bapimepoitemx OCCURS 0 WITH HEADER LINE.
DATA:lt_rt LIKE bapiret2 OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = g_grid.
* CALL METHOD G_GRID->REFRESH_TABLE_DISPLAY.
CALL METHOD g_grid->check_changed_data.
rs_selfield-refresh = 'X'.
rs_selfield-col_stable = 'X'.
rs_selfield-row_stable = 'X'.
CASE r_ucomm.
WHEN '&DATA_SAVE'.
* CLEAR:lt_list,lt_list[].
* LOOP AT gt_list WHERE elikz = 'X' AND name = ''.
* MOVE-CORRESPONDING gt_list TO lt_list.
* lt_list-name = ''.
* APPEND lt_list.
* CLEAR:gt_list,lt_list.
* ENDLOOP.
LOOP AT gt_list WHERE sex = 'X'.
MOVE-CORRESPONDING gt_list TO lt_list.
lt_list-name = ''.
APPEND lt_list.
CLEAR:gt_list,lt_list.
ENDLOOP.
IF lt_list[] IS INITIAL.
MESSAGE'请选中修改行后再保存。' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
SORT lt_list BY ebeln ebelp.
LOOP AT lt_list .
CLEAR:ls_list,lt_item,lt_itemx,lt_rt,lt_return.
ls_list = lt_list.
lt_item-po_item = lt_list-ebelp.
lt_item-no_more_gr = lt_list-elikz.
APPEND lt_item.
CLEAR lt_item.
lt_itemx-po_item = lt_list-ebelp.
lt_itemx-po_itemx = 'X'.
lt_itemx-no_more_gr = 'X'.
APPEND lt_itemx.
CLEAR lt_itemx.
AT END OF ebeln.
IF ls_list-frgke = ''.
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = lt_list-ebeln
TABLES
return = lt_rt
poitem = lt_item
poitemx = lt_itemx.
IF sy-subrc EQ 0.
READ TABLE lt_rt WITH KEY type = 'E'.
IF sy-subrc EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ls_list-name = lt_rt-message.
MODIFY lt_list FROM ls_list.
CONTINUE.
ELSE.
ls_list-name = '修改成功'.
MODIFY lt_list FROM ls_list.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
CONTINUE.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ls_list-name = '修改失败,请检查'.
MODIFY lt_list FROM ls_list.
CONTINUE.
ENDIF.
ELSE.
CALL FUNCTION 'BAPI_PO_RESET_RELEASE'
EXPORTING
purchaseorder = lt_list-ebeln
po_rel_code = '10'
TABLES
return = lt_return.
IF sy-subrc EQ 0.
READ TABLE lt_return WITH KEY type = 'E'.
IF sy-subrc EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ls_list-name = lt_rt-message.
MODIFY lt_list FROM ls_list.
CONTINUE.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ls_list-name = '取消审批失败,请检查'.
MODIFY lt_list FROM ls_list.
CONTINUE.
ENDIF.
WAIT UP TO '0.5' SECONDS.
CALL FUNCTION 'BAPI_PO_CHANGE'
EXPORTING
purchaseorder = lt_list-ebeln
TABLES
return = lt_rt
poitem = lt_item
poitemx = lt_itemx.
IF sy-subrc EQ 0.
READ TABLE lt_rt WITH KEY type = 'E'.
IF sy-subrc EQ 0.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ls_list-name = lt_rt-message.
MODIFY lt_list FROM ls_list.
CONTINUE.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ls_list-name = '修改失败,请检查'.
MODIFY lt_list FROM ls_list.
CONTINUE.
ENDIF.
WAIT UP TO '0.5' SECONDS.
CALL FUNCTION 'BAPI_PO_RELEASE'
EXPORTING
purchaseorder = lt_list-ebeln
po_rel_code = '10'
TABLES
return = lt_return.
IF sy-subrc EQ 0.
READ TABLE lt_return WITH KEY type = 'E'.
IF sy-subrc EQ 0.
ls_list-name = lt_return-message && '请联系系统管理员'.
MODIFY lt_list FROM ls_list.
CONTINUE.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
ls_list-name = lt_return-message && '请联系系统管理员'.
MODIFY lt_list FROM ls_list.
CONTINUE.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
WAIT UP TO '0.5' SECONDS.
**--PO审批 mod by baosl 20210311.
IF sy-mandt = '900' OR sy-mandt = '600'.
CALL FUNCTION 'ZMM_PO_RELEASE' DESTINATION 'PRD900'
EXPORTING
i_ebeln = lt_list-ebeln
i_rel_code = '20'
TABLES
return = lt_return.
**--end add 20210311
ELSE.
CALL FUNCTION 'BAPI_PO_RELEASE'
EXPORTING
purchaseorder = lt_list-ebeln
po_rel_code = '20'
TABLES
return = lt_return.
ENDIF.
IF sy-subrc EQ 0.
READ TABLE lt_return WITH KEY type = 'E'.
IF sy-subrc EQ 0.
ls_list-name = lt_return-message && '请联系系统管理员'.
MODIFY lt_list FROM ls_list.
CALL FUNCTION 'BAPI_PO_RESET_RELEASE'
EXPORTING
purchaseorder = lt_list-ebeln
po_rel_code = '10'
TABLES
return = lt_return.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
CONTINUE.
ELSE.
ls_list-name = '修改成功'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
MODIFY lt_list FROM ls_list.
ENDIF.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ELSE.
ls_list-name = lt_return-message && '请联系系统管理员'.
MODIFY lt_list FROM ls_list.
CONTINUE.
ENDIF.
ENDIF.
CLEAR:lt_item,lt_item[],lt_itemx,lt_itemx[],lt_return,lt_return[],
lt_rt,lt_rt[].
ENDAT.
MODIFY lt_list FROM ls_list.
CLEAR:lt_list,ls_list,lt_item,lt_itemx.
ENDLOOP.
LOOP AT gt_list.
READ TABLE lt_list WITH KEY ebeln = gt_list-ebeln
ebelp = gt_list-ebelp.
IF sy-subrc EQ 0.
MOVE-CORRESPONDING lt_list TO gt_list.
MODIFY gt_list.
ENDIF.
CLEAR:lt_list,gt_list.
ENDLOOP.
SORT gt_list BY ebeln ebelp.
WHEN 'ZALL'.
LOOP AT gt_list.
gt_list-elikz = 'X'.
MODIFY gt_list.
CLEAR gt_list.
ENDLOOP.
WHEN 'ZSAL'.
LOOP AT gt_list.
gt_list-elikz = ''.
MODIFY gt_list.
CLEAR gt_list.
ENDLOOP.
WHEN OTHERS.
ENDCASE.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Form CHANGE_PR
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM change_pr .
ENDFORM. " CHANGE_PR
*&---------------------------------------------------------------------*
*& Form CHECK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM check .
AUTHORITY-CHECK OBJECT 'M_BEST_WRK'
ID 'ACTVT' FIELD '03'
ID 'WERKS' FIELD p_werks.
IF sy-subrc <> 0.
MESSAGE '您没有' && p_werks && '工厂的权限,请重新选择。'
TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
AUTHORITY-CHECK OBJECT 'M_BEST_EKG'
ID 'ACTVT' FIELD '03'
ID 'EKGRP' FIELD p_ekgrp.
IF sy-subrc <> 0.
MESSAGE '您没有' && p_ekgrp && '采购组的权限,请重新选择。'
TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. " CHECK
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'ZMMPO002'.
* SET TITLEBAR 'TITLE' .
ENDFORM.
D:PO反审批函数 ZMM_PO_RELEASE
FUNCTION ZMM_PO_RELEASE.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(I_EBELN) TYPE EBELN OPTIONAL
*" VALUE(I_REL_CODE) TYPE FRGCO OPTIONAL
*" TABLES
*" RETURN STRUCTURE BAPIRETURN OPTIONAL
*"----------------------------------------------------------------------
IF I_EBELN IS NOT INITIAL AND I_REL_CODE IS NOT INITIAL..
CALL FUNCTION 'BAPI_PO_RELEASE'
EXPORTING
PURCHASEORDER = I_EBELN
PO_REL_CODE = I_REL_CODE
* USE_EXCEPTIONS = 'X'
* NO_COMMIT = ' '
* IMPORTING
* REL_STATUS_NEW =
* REL_INDICATOR_NEW =
* RET_CODE =
TABLES
RETURN = RETURN
EXCEPTIONS
AUTHORITY_CHECK_FAIL = 1
DOCUMENT_NOT_FOUND = 2
ENQUEUE_FAIL = 3
PREREQUISITE_FAIL = 4
RELEASE_ALREADY_POSTED = 5
RESPONSIBILITY_FAIL = 6
OTHERS = 7.
ENDIF.
ENDFUNCTION.