FORM user_exit_comm USING handle "TYPE es_variant-handle
r_ucomm TYPE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE r_ucomm.
WHEN '&IC1'."双击
READ TABLE gt_items INTO gs_items INDEX rs_selfield-tabindex.
IF gs_items IS NOT INITIAL.
SET PARAMETER ID 'MAT' FIELD gs_items-matnr. "物料号
SET PARAMETER ID 'WRK' FIELD gs_items-werks. "工厂
SET PARAMETER ID 'CSV' FIELD gs_items-stlan. "BOM用途
CALL TRANSACTION 'CS03' AND SKIP FIRST SCREEN.
ENDIF.
WHEN 'CHAN' ."更改按钮
PERFORM frm_chan_data.
PERFORM frm_save_data .
* WHEN 'SAVE' OR '&DATA_SAVE'. "保存按钮
* PERFORM frm_save_data .
WHEN OTHERS.
ENDCASE.
ENDFORM . "user_exit_comm
*&---------------------------------------------------------------------*
*& Form frm_fieldcat_usexit
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_IT_FIELDCAT text
*----------------------------------------------------------------------*
FORM frm_fieldcat_usexit CHANGING p_it_fieldcat TYPE lvc_t_fcat.
ENDFORM. "frm_fieldcat_usexit
*&---------------------------------------------------------------------*
*& Form FRM_CHAN_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_chan_data .
FIELD-SYMBOLS:<fs_item> LIKE LINE OF gt_items.
READ TABLE gt_items WITH KEY sel = 'X'.
IF sy-subrc <> 0.
MESSAGE '不存在需要更改的数据!' TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
LOOP AT gt_items ASSIGNING <fs_item> WHERE sel = 'X'.
<fs_item>-stlst = '1'.
* IF sy-subrc = 0.
* <fs_item>-icon = '@08@'.
* <fs_item>-txt = '更改BOM状态成功!'.
* ELSE.
* <fs_item>-icon = '@0A@'.
* <fs_item>-txt = '更改BOM状态失败!'.
* ENDIF.
ENDLOOP.
ENDFORM. " FRM_CHAN_DATA
*&---------------------------------------------------------------------*
*& Form FRM_SAVE_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_save_data .
FIELD-SYMBOLS:<fs_item> LIKE LINE OF gt_items.
gs_stko-base_quan = 1 .
gs_stko-bom_status = '01' .
LOOP AT gt_items ASSIGNING <fs_item> WHERE stlst = '1'.
p_datuv = <fs_item>-datuv.
CALL FUNCTION 'CSAP_MAT_BOM_MAINTAIN'
EXPORTING
material = <fs_item>-matnr
plant = <fs_item>-werks
bom_usage = <fs_item>-stlan
alternative = <fs_item>-stlal
valid_from = p_datuv
change_no = <fs_item>-aennr "V1-7 ADD
* I_STKO = GT_STKO "V1-5 RMK
i_stko = gs_stko "V1-5 ADD
* FL_BOM_CREATE = 'X'
* TABLES
* t_stpo = gt_stpo[]
EXCEPTIONS
error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ROLLBACK WORK.
<fs_item>-icon = '@0A@'.
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
<fs_item>-icon = '@08@'.
ENDIF.
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = sy-msgid
msgnr = sy-msgno
msgv1 = sy-msgv1
msgv2 = sy-msgv2
msgv3 = sy-msgv3
msgv4 = sy-msgv4
IMPORTING
message_text_output = <fs_item>-txt.
ENDLOOP.
" MESSAGE '功能未完善!' TYPE 'S' DISPLAY LIKE 'E'.
ENDFORM.

暂无讨论,说说你的看法吧