REPORT zp_pp_001n_en.
*&---------------------------------------------------------------------*
*& 包含 ZP_PP_BZ01_TOP
*&---------------------------------------------------------------------*
TYPE-POOLS:slis,icon,vrm.
************************************************************************
* T A B L E S *
************************************************************************
TABLES: vbak,vbap,vbkd,ztpp_pc_a01,ztpp_pc_a02.
DATA:gt_alv TYPE TABLE OF ztpp_pc_a01 .
DATA:gs_alv TYPE ztpp_pc_a01 .
DATA:gt_alv1 TYPE TABLE OF ztpp_pc_a01 .
DATA:gs_alv1 TYPE ztpp_pc_a01 .
DATA:gt_data TYPE TABLE OF ztpp_pc_z01 .
DATA:gs_data TYPE ztpp_pc_z01 .
TYPES:BEGIN OF ty_charg, "合批结构
g_box TYPE c, "复选框
dispo LIKE ztpp_pc_a01-dispo, "MRP控制者
pcpch LIKE ztpp_pc_a01-pcpch, "批次号
zyscz LIKE ztpp_pc_a01-zyscz, "颜色材质
zycms LIKE ztpp_pc_a01-zycms, "颜色材质描述
zwlxlno LIKE ztpp_pc_a01-zwlxlno, "货运路线
zlxms TYPE val_text, "货运路线描述
zds LIKE ztpp_pc_a01-zds, "是否单色
cmdat LIKE ztpp_pc_a01-cmdat, "完成日期
pchda LIKE ztpp_pc_a01-pchda, "批次号日期
kwmeng LIKE ztpp_pc_a01-kwmeng, "数量
quaty TYPE p, "显示数量
pcnum(2) TYPE n, "批次号流水
zgsmj TYPE ze_gsmj, "柜身面积
zbjsl TYPE ze_bjsl, "板件件数
zcjdm LIKE ztpp_pc_a01-zcjdm, "车间
zpcbc LIKE ztpp_pc_a01-zpcbc, "班次
zkzlb LIKE ztpp_pc_a01-zkzlb, "类别
END OF ty_charg.
TYPES:BEGIN OF ty_hpmx, "合批明细结构
g_box TYPE c, "复选框
icon TYPE iconname, "图标名称
loekz LIKE ztpp_pc_a01-loekz, "删除标记
zpcph LIKE ztpp_pc_a01-zpcph, "批号
pcpch LIKE ztpp_pc_a01-pcpch, "批次号
lines TYPE sy-tabix, "序号
dispo LIKE ztpp_pc_a01-dispo, "MRP控制者
vbeln LIKE vbap-vbeln, "销售订单
posnr LIKE vbap-posnr, "行项目
kunnr LIKE kna1-kunnr, "经销商
name1 LIKE kna1-name1, "经销商描述
matnr LIKE mara-matnr, "物料编号
arktx LIKE makt-maktx, "物料描述
kwmeng LIKE ztpp_pc_a01-kwmeng, "数量
quaty TYPE p,
zyscz LIKE ztpp_pc_a01-zyscz, "颜色材质
zycms LIKE ztpp_pc_a01-zycms, "颜色材质描述
zwlxlno LIKE ztpp_pc_a01-zwlxlno, "货运路线
zlxms TYPE val_text, "货运路线描述
cmdat LIKE ztpp_pc_a01-cmdat, "完成日期
etdat LIKE ztpp_pc_a01-etdat, "交货日期
pchda LIKE ztpp_pc_a01-pchda, "批次号日期
zgsmj TYPE ze_gsmj, "柜身面积
zbjsl TYPE ze_bjsl, "板件件数
bstnk TYPE bstnk, "PO号
posex TYPE posex, "PO行项目
zcjdm TYPE ztpp_pc_a01-zcjdm, "车间
* zpcbc LIKE ztpp_pc_a01-zpcbc, "班次
END OF ty_hpmx.
DATA: gt_opt TYPE STANDARD TABLE OF ty_charg,
gt_ybz TYPE STANDARD TABLE OF ty_hpmx,
gt_ybz_m TYPE STANDARD TABLE OF ty_hpmx,
gt_ybz_sub TYPE STANDARD TABLE OF ty_hpmx,
gt_dbz TYPE STANDARD TABLE OF ty_hpmx,
gt_dbz_m TYPE STANDARD TABLE OF ty_hpmx,
gt_dbz_sub TYPE STANDARD TABLE OF ty_hpmx,
gt_fieldcatalog TYPE lvc_t_fcat, " Field Catalog
gt_sort TYPE lvc_t_sort. " Sorting Table
DATA: gs_opt TYPE ty_charg,
gs_ybz TYPE ty_hpmx,
gs_ybz_sub TYPE ty_hpmx,
gs_dbz TYPE ty_hpmx,
gs_dbz_sub TYPE ty_hpmx.
DATA: splitter TYPE REF TO cl_dynpro_splitter,
go_dbz TYPE REF TO cl_gui_alv_grid,
go_ybz TYPE REF TO cl_gui_alv_grid,
go_cache TYPE REF TO cl_gui_alv_grid,
gc_custom_container TYPE REF TO cl_gui_custom_container,
tree1 TYPE REF TO cl_gui_alv_tree_simple,
g_init TYPE c,
g_ok TYPE ok_code,
g_ldbh(20),
ok_code TYPE sy-ucomm,
ok_save TYPE sy-ucomm,
g_vbeln TYPE char21,
g_tree_container_name(30) TYPE c VALUE'C1'.
"Webserviec定义
DATA: gi_proxy TYPE REF TO zco_data_synchronization_by_cr,
wa_arg0 TYPE zorder_bom_produced_info,
gi_input TYPE STANDARD TABLE OF zsave_order_bom_produced_info2 WITH HEADER LINE,
gi_output TYPE STANDARD TABLE OF zsave_order_bom_produced_info1 WITH HEADER LINE,
gi_exception TYPE REF TO cx_ai_system_fault.
************************************************************************
* S E L E C T I O N S C R E E N *
************************************************************************
SELECTION-SCREEN: BEGIN OF BLOCK blk1 WITH FRAME TITLE TEXT-001. "屏幕
PARAMETERS:
p_werks LIKE vbap-werks OBLIGATORY DEFAULT '3110', "工厂
p_dispo LIKE marc-dispo OBLIGATORY DEFAULT 'B01' . "产线
* p_cmdat LIKE ztpp_pc_a01-cmdat OBLIGATORY DEFAULT sy-datum. "排产完成日期
SELECT-OPTIONS:
* s_zyscz FOR ztpp_pc_a01-zyscz, "颜色材质
* s_zfjys FOR ztpp_pc_a01-zfjys, "封胶颜色
* s_erdat FOR vbak-erdat , "创建日期
* s_etdat FOR ztpp_pc_a01-etdat, "交货日期
* s_vbeln FOR vbak-vbeln MATCHCODE OBJECT vmva, "销售订单
* s_bstnk FOR vbak-bstnk, "PO号
s_pcpch FOR ztpp_pc_a01-pcpch. "订单类型
SELECTION-SCREEN: END OF BLOCK blk1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE TEXT-005.
SELECTION-SCREEN COMMENT 1(50) TEXT-006.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN: BEGIN OF SCREEN 0103 AS SUBSCREEN.
SELECT-OPTIONS: s_vbel1 FOR ztpp_pc_a01-vbeln .
SELECT-OPTIONS: s_posn1 FOR ztpp_pc_a01-posnr .
PARAMETERS: p_disp1 LIKE ztpp_pc_a01-zdispo OBLIGATORY MODIF ID m1 .
SELECTION-SCREEN: END OF SCREEN 0103.
*----------------------------------------------------------------------*
* CLASS cl_event_receiver DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_event_receiver DEFINITION.
PUBLIC SECTION.
" 声明单击事件的方法
METHODS handle_hotspot_click
FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING e_row_id e_column_id.
" 声明双击事件方法
METHODS handle_double_click
FOR EVENT double_click OF cl_gui_alv_grid
IMPORTING e_row e_column.
" 声明TOOLBAR事件方法
METHODS handle_toolbar
FOR EVENT toolbar OF cl_gui_alv_grid
IMPORTING e_object e_interactive.
" 声明USER-COMMAND 事件方法
METHODS handle_command
FOR EVENT user_command OF cl_gui_alv_grid
IMPORTING e_ucomm.
"修改时触发
METHODS handle_data_changed
FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed.
ENDCLASS. "CL_EVENT_RECEIVER DEFINITION
CREATE OBJECT splitter
EXPORTING
splitter_name = 'SPLITTER'.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_dispo.
PERFORM frm_f4_01 .
*&---------------------------------------------------------------------*
*& Form FRM_F4_01
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_f4_01 .
TYPES: BEGIN OF ty_lfa1,
dispo TYPE marc-dispo,
zcxms TYPE c LENGTH 10,
END OF ty_lfa1.
DATA: gt_lfa1 TYPE STANDARD TABLE OF ty_lfa1 WITH HEADER LINE.
DATA: gs_lfa1 TYPE ty_lfa1 .
CLEAR gt_lfa1[].
CLEAR gs_lfa1.
gs_lfa1-dispo = 'B01' .
gs_lfa1-zcxms = '柜体' .
APPEND gs_lfa1 TO gt_lfa1 .
CLEAR gs_lfa1.
gs_lfa1-dispo = 'B02' .
gs_lfa1-zcxms = '柜体' .
APPEND gs_lfa1 TO gt_lfa1 .
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'DISPO'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'P_DISPO'
value_org = 'S'
TABLES
value_tab = gt_lfa1
EXCEPTIONS
parameter_error = 1
no_values_found = 2.
ENDFORM.
*----------------------------------------------------------------------*
* INCLUDE BCALV_SIMPLE_EVENT_RECEIVER *
*----------------------------------------------------------------------*
class lcl_tree_event_receiver definition.
public section.
methods: on_add_hierarchy_node
for event on_add_hierarchy_node of cl_gui_alv_tree_simple
importing grouplevel
index_outtab.
endclass.
class lcl_tree_event_receiver implementation.
method on_add_hierarchy_node.
data ls_outtab_line type sflight.
ls_outtab_line-planetype = 'Note'. "#EC NOTEXT
call method tree1->set_hierarchy_data
exporting
is_outtab_line = ls_outtab_line.
endmethod.
endclass.
*----------------------------------------------------------------------*
***INCLUDE ZP_PP_BZ01_STATUS_0100O01.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& MODULE STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
SET PF-STATUS 'PF_0100'.
SET TITLEBAR 'TITLE_0100'.
PERFORM form_init.
ENDMODULE.
*&---------------------------------------------------------------------*
*& MODULE STATUS_0101 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0101 OUTPUT.
PERFORM form_init_0101.
ENDMODULE.
*&---------------------------------------------------------------------*
*& MODULE STATUS_0102 OUTPUT
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
MODULE status_0102 OUTPUT.
* SET PF-STATUS 'XXXXXXXX'.
* SET TITLEBAR 'XXX'.
PERFORM form_init_0102.
ENDMODULE.
*&---------------------------------------------------------------------*
*& MODULE SET_SASH
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE set_sash OUTPUT.
splitter->set_sash( ).
ENDMODULE.
*&---------------------------------------------------------------------*
*& MODULE CANCEL
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE cancel.
LEAVE PROGRAM .
ENDMODULE.
*&---------------------------------------------------------------------*
*& MODULE GET_SASH
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE get_sash INPUT.
splitter->get_guisash( ).
ENDMODULE.
*&---------------------------------------------------------------------*
*& MODULE USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* USER_COMMAND
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
ok_save = sy-ucomm .
CLEAR sy-ucomm .
CLEAR ok_code .
CASE ok_save.
WHEN 'BACK' .
LEAVE TO SCREEN 0 .
WHEN 'BT_01' .
PERFORM fom_submit .
WHEN 'BT_02' .
PERFORM fom_revocation .
WHEN 'BT_03' .
PERFORM fom_dele_save .
WHEN 'BT_04' .
PERFORM fom_get_so_data.
* LOOP AT gt_alv INTO gs_alv.
* gs_alv-mode = 'X' .
* MODIFY gt_alv FROM gs_alv .
* CLEAR gs_alv .
* ENDLOOP.
* WHEN 'BT_05' .
* LOOP AT gt_alv INTO gs_alv.
* gs_alv-mode = '' .
* MODIFY gt_alv FROM gs_alv .
* CLEAR gs_alv .
* ENDLOOP.
WHEN OTHERS .
ENDCASE .
ENDMODULE.
*&---------------------------------------------------------------------*
*& MODULE USER_COMMAND_0102 INPUT
*&---------------------------------------------------------------------*
* USER_COMMAND
*----------------------------------------------------------------------*
MODULE user_command_0102 INPUT.
CASE g_ok.
WHEN 'ADD'.
CALL METHOD go_ybz->check_changed_data.
CALL METHOD go_dbz->check_changed_data.
LOOP AT gt_dbz[] INTO gs_dbz WHERE g_box = 'X' AND loekz IS INITIAL .
APPEND gs_dbz TO gt_ybz .
CLEAR gs_dbz .
ENDLOOP.
DELETE gt_dbz WHERE g_box = 'X' .
go_ybz->refresh_table_display( ).
go_dbz->refresh_table_display( ).
WHEN 'DEL'.
CALL METHOD go_ybz->check_changed_data.
CALL METHOD go_dbz->check_changed_data.
LOOP AT gt_ybz[] INTO gs_ybz WHERE g_box = 'X' .
APPEND gs_ybz TO gt_dbz .
CLEAR gs_ybz .
ENDLOOP.
DELETE gt_ybz WHERE g_box = 'X' .
go_ybz->refresh_table_display( ).
go_dbz->refresh_table_display( ).
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0103 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0103 INPUT.
CASE g_ok.
WHEN 'LOAD'.
* PERFORM form_load.
ENDCASE.
ENDMODULE.
*&---------------------------------------------------------------------*
*& FORM FORM_INIT
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM form_init.
g_init = 'X'.
CALL METHOD cl_gui_cfw=>flush.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM FORM_INIT_0101
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM form_init_0101.
IF go_ybz IS BOUND.
EXIT.
ENDIF.
DATA lo_container TYPE REF TO cl_gui_splitter_container.
DATA lo_left TYPE REF TO cl_gui_custom_container.
DATA l_fcat_cache TYPE lvc_t_fcat.
DATA l_fcat_ybz TYPE lvc_t_fcat.
DATA wa_layout_cache TYPE lvc_s_layo.
DATA wa_layout_ybz TYPE lvc_s_layo.
DATA lo_event TYPE REF TO cl_event_receiver.
CREATE OBJECT lo_left
EXPORTING
container_name = 'LEFT_CON'.
CREATE OBJECT lo_container
EXPORTING
parent = lo_left
rows = 2
columns = 1.
CREATE OBJECT go_cache
EXPORTING
i_parent = lo_container->get_container( row = 1 column = 1 ).
CREATE OBJECT go_ybz
EXPORTING
i_parent = lo_container->get_container( row = 2 column = 1 ).
PERFORM form_append_field:
* USING 'G_BOX' '选择' 4 CHANGING l_fcat_cache,
* USING 'ZPCPH' '批号' 4 CHANGING l_fcat_cache,
USING 'PCPCH' '批次号' 13 CHANGING l_fcat_cache,
USING 'ZYSCZ' '颜色材质' 8 CHANGING l_fcat_cache,
USING 'ZYCMS' '颜色材质描述' 25 CHANGING l_fcat_cache,
USING 'ZWLXLNO' '货运路线' 6 CHANGING l_fcat_cache,
USING 'ZLXMS' '货运路线描述' 25 CHANGING l_fcat_cache,
USING 'ZDS' '是否单色' 5 CHANGING l_fcat_cache,
USING 'CMDAT' '完成日期' 10 CHANGING l_fcat_cache,
USING 'PCHDA' '批次号日期' 10 CHANGING l_fcat_cache,
USING 'KWMENG' '数量' 15 CHANGING l_fcat_cache,
USING 'QUATY' '显示数量' 15 CHANGING l_fcat_cache,
USING 'PCNUM' '批次号流水' 25 CHANGING l_fcat_cache,
USING 'ZGSMJ' '柜身面积' 13 CHANGING l_fcat_cache,
USING 'ZBJSL' '板件件数' 13 CHANGING l_fcat_cache,
USING 'ZCJDM' '车间' 4 CHANGING l_fcat_cache,
USING 'ZPCBC' '班次' 6 CHANGING l_fcat_cache,
USING 'ZKZLB' '类别' 6 CHANGING l_fcat_cache.
PERFORM form_append_field:
USING 'G_BOX' '选择' 4 CHANGING l_fcat_ybz,
USING 'DISPO' 'MRP控制者' 7 CHANGING l_fcat_ybz,
USING 'ZPCPH' '批号' 4 CHANGING l_fcat_ybz,
USING 'PCPCH' '批次号' 13 CHANGING l_fcat_ybz,
USING 'LINES' '序号' 4 CHANGING l_fcat_ybz,
USING 'VBELN' '销售订单' 12 CHANGING l_fcat_ybz,
USING 'POSNR' '行项目' 6 CHANGING l_fcat_ybz,
USING 'KUNNR' '经销商'10 CHANGING l_fcat_ybz,
USING 'NAME1' '经销商描述' 25 CHANGING l_fcat_ybz,
USING 'MATNR' '物料编号' 19 CHANGING l_fcat_ybz,
USING 'ARKTX' '物料描述' 25 CHANGING l_fcat_ybz,
USING 'KWMENG' '数量' 15 CHANGING l_fcat_ybz,
USING 'QUATY' '显示数量' 15 CHANGING l_fcat_ybz,
USING 'ZYSCZ' '颜色材质' 8 CHANGING l_fcat_ybz,
USING 'ZYCMS' '颜色材质描述' 25 CHANGING l_fcat_ybz,
USING 'ZWLXLNO' '货运路线' 6 CHANGING l_fcat_ybz,
USING 'ZLXMS' '货运路线描述' 25 CHANGING l_fcat_ybz,
USING 'CMDAT' '完成日期' 10 CHANGING l_fcat_ybz,
USING 'PCHDA' '批次号日期' 10 CHANGING l_fcat_ybz,
USING 'ZGSMJ' '柜身面积' 13 CHANGING l_fcat_ybz,
USING 'ZBJSL' '板件件数' 13 CHANGING l_fcat_ybz,
USING 'NAME1' '经销商描述' 25 CHANGING l_fcat_ybz.
CREATE OBJECT lo_event.
* SET HANDLER lo_event->handle_hotspot_click FOR go_ybz.
SET HANDLER lo_event->handle_double_click FOR go_cache.
SET HANDLER lo_event->handle_data_changed FOR go_ybz.
* SET HANDLER lo_event->handle_toolbar FOR go_ybz.
* SET HANDLER lo_event->handle_command FOR go_ybz.
wa_layout_cache-grid_title = '批次信息'.
wa_layout_cache-sel_mode = 'A'.
* WA_LAYOUT_CACHE-NO_TOOLBAR = 'X'.
* LOOP AT it_tab INTO wa_tab.
* CLEAR : wa_tab-celltab. "不为空会报错
* IF wa_tab-celltab IS INITIAL.
* l_index = sy-tabix.
* REFRESH lt_celltab.
* ls_celltab-fieldname = 'ZCWCZD'.
*
* IF wa_tab-zcwczi IS NOT INITIAL AND
* wa_tab-zcxczi IS INITIAL.
* ls_celltab-style = cl_gui_alv_grid=>mc_style_disabled.
* ELSE.
* ls_celltab-style = cl_gui_alv_grid=>mc_style_enabled.
* ENDIF.
* INSERT ls_celltab INTO TABLE lt_celltab.
*
* INSERT LINES OF lt_celltab INTO TABLE wa_tab-celltab.
* MODIFY it_tab FROM wa_tab INDEX l_index.
* ENDIF.
* ENDLOOP.
*ENDFORM. " FRM_INIT_STYLE_TAB
CALL METHOD go_cache->set_table_for_first_display
EXPORTING
is_layout = wa_layout_cache
CHANGING
it_fieldcatalog = l_fcat_cache
it_outtab = gt_opt[].
wa_layout_ybz-grid_title = '批次明细'.
wa_layout_ybz-sel_mode = 'A'.
CALL METHOD go_ybz->set_table_for_first_display
EXPORTING
is_layout = wa_layout_ybz
CHANGING
it_fieldcatalog = l_fcat_ybz
it_outtab = gt_ybz[].
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM FORM_INIT_0102
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM form_init_0102.
IF go_dbz IS BOUND.
EXIT.
ENDIF.
DATA lo_right TYPE REF TO cl_gui_custom_container.
DATA l_fcat_dbz TYPE lvc_t_fcat.
DATA wa_layout_dbz TYPE lvc_s_layo.
DATA lo_event TYPE REF TO cl_event_receiver.
CREATE OBJECT lo_right
EXPORTING
container_name = 'RIGHT_CON'.
CREATE OBJECT go_dbz
EXPORTING
i_parent = lo_right.
PERFORM form_append_field:
USING 'G_BOX' '选择' 4 CHANGING l_fcat_dbz,
USING 'ICON' '状态' 4 CHANGING l_fcat_dbz,
USING 'LOEKZ' '删除标识' 6 CHANGING l_fcat_dbz,
USING 'DISPO' 'MRP控制者' 7 CHANGING l_fcat_dbz,
* USING 'PCPCH' '批次号' 13 CHANGING l_fcat_dbz,
* USING 'LINES' '序号' 4 CHANGING l_fcat_dbz,
USING 'VBELN' '销售订单' 12 CHANGING l_fcat_dbz,
USING 'POSNR' '行项目' 6 CHANGING l_fcat_dbz,
USING 'KUNNR' '经销商'10 CHANGING l_fcat_dbz,
USING 'NAME1' '经销商描述' 25 CHANGING l_fcat_dbz,
USING 'MATNR' '物料编号' 19 CHANGING l_fcat_dbz,
USING 'ARKTX' '物料描述' 25 CHANGING l_fcat_dbz,
USING 'KWMENG' '数量' 15 CHANGING l_fcat_dbz,
USING 'QUATY' '显示数量' 15 CHANGING l_fcat_dbz,
USING 'ZYSCZ' '颜色材质' 8 CHANGING l_fcat_dbz,
USING 'ZYCMS' '颜色材质描述' 25 CHANGING l_fcat_dbz,
USING 'ZWLXLNO' '货运路线' 6 CHANGING l_fcat_dbz,
USING 'ZLXMS' '货运路线描述' 25 CHANGING l_fcat_dbz,
USING 'CMDAT' '完成日期' 10 CHANGING l_fcat_dbz,
USING 'PCHDA' '批次号日期' 10 CHANGING l_fcat_dbz,
USING 'ZGSMJ' '柜身面积' 13 CHANGING l_fcat_dbz,
USING 'ZBJSL' '板件件数' 13 CHANGING l_fcat_dbz,
USING 'NAME1' '经销商描述' 25 CHANGING l_fcat_dbz.
* PERFORM FORM_DBZ_SET.
CREATE OBJECT lo_event.
SET HANDLER lo_event->handle_toolbar FOR go_dbz.
SET HANDLER lo_event->handle_command FOR go_dbz.
wa_layout_dbz-grid_title = '可选的项目容器'.
wa_layout_dbz-sel_mode = 'D'.
CALL METHOD go_dbz->set_table_for_first_display
EXPORTING
is_layout = wa_layout_dbz
CHANGING
it_fieldcatalog = l_fcat_dbz
it_outtab = gt_dbz[].
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM FORM_ADD
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM form_add.
DATA: lt_rows TYPE lvc_t_row,
ls_rows TYPE lvc_s_row.
DATA: l_dbjbz TYPE ztpp_bz_001-bdjbz.
* DATA lt_tmp TYPE TABLE OF typ_opt.
CALL METHOD go_dbz->get_selected_rows
IMPORTING
et_index_rows = lt_rows.
go_dbz->refresh_table_display( ).
go_cache->refresh_table_display( ).
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM FORM_ADDALL
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM form_addall.
* APPEND LINES OF gt_dbz TO gt_opt.
* FREE gt_dbz.
go_dbz->refresh_table_display( ).
go_cache->refresh_table_display( ).
ENDFORM.
**&---------------------------------------------------------------------*
**& FORM FORM_REM
**&---------------------------------------------------------------------*
**
**----------------------------------------------------------------------*
*FORM form_rem.
*
* DATA: lt_rows TYPE lvc_t_row,
* ls_rows TYPE lvc_s_row.
*
* CALL METHOD go_cache->get_selected_rows
* IMPORTING
* et_index_rows = lt_rows.
*
* IF lt_rows IS INITIAL.
*
* MESSAGE '请选择要去掉的行!' TYPE 'W'.
* EXIT.
*
* ENDIF.
*
* LOOP AT lt_rows INTO ls_rows.
*
* READ TABLE gt_opt INTO wa_opt INDEX ls_rows-index.
*
* MOVE wa_opt TO wa_dbz.
*
* APPEND wa_dbz TO gt_dbz.
*
* ENDLOOP.
*
* SORT lt_rows BY index DESCENDING.
*
* LOOP AT lt_rows INTO ls_rows.
*
* DELETE gt_opt INDEX ls_rows-index.
*
* ENDLOOP.
*
* go_dbz->refresh_table_display( ).
*
* go_cache->refresh_table_display( ).
*
*ENDFORM.
*&---------------------------------------------------------------------*
*& FORM FORM_REMALL
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM form_remall.
* APPEND LINES OF gt_opt TO gt_dbz.
*
* FREE gt_opt.
go_dbz->refresh_table_display( ).
go_cache->refresh_table_display( ).
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM FORM_APPEND_FIELD
*&---------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM form_append_field USING fname ftext length CHANGING ch_fcat TYPE lvc_t_fcat.
DATA wa_field TYPE lvc_s_fcat.
wa_field-fieldname = fname.
wa_field-coltext = ftext.
wa_field-outputlen = length.
IF wa_field-fieldname = 'G_BOX'.
wa_field-checkbox = 'X'.
wa_field-edit = 'X'.
ENDIF.
IF wa_field-fieldname = 'ICON'.
wa_field-icon = 'X'.
ENDIF.
APPEND wa_field TO ch_fcat.
ENDFORM.
*----------------------------------------------------------------------*
* CLASS cl_event_receiver IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS cl_event_receiver IMPLEMENTATION.
" 单击事件方法的实现
METHOD handle_hotspot_click.
CONDENSE e_row_id NO-GAPS.
CONDENSE e_column_id NO-GAPS.
ENDMETHOD. "HANDLE_HOTSPOT_CLICK
" 双击事件方法的实现
METHOD handle_double_click.
READ TABLE gt_opt INDEX e_row-index INTO gs_opt.
*DATA:gs_alv TYPE ztpp_pc_a01 .
*DATA:gt_alv1 TYPE TABLE OF ztpp_pc_a01 .
*
*WHERE pcpch = gs_opt-pcpch
CLEAR gt_alv1[] .
CASE p_dispo .
WHEN 'B01' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv1 FROM ztpp_pc_a01
WHERE pcpch = gs_opt-pcpch
AND loekz = '' .
WHEN 'B02' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv1 FROM ztpp_pc_b01
WHERE pcpch = gs_opt-pcpch
AND loekz = '' .
WHEN 'B03' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv1 FROM ztpp_pc_c01
WHERE pcpch = gs_opt-pcpch
AND loekz = '' .
WHEN 'B04' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv1 FROM ztpp_pc_d01
WHERE pcpch = gs_opt-pcpch
AND loekz = '' .
WHEN 'B05' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv1 FROM ztpp_pc_e01
WHERE pcpch = gs_opt-pcpch
AND loekz = '' .
WHEN 'B06' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv1 FROM ztpp_pc_f01
WHERE pcpch = gs_opt-pcpch
AND loekz = '' .
WHEN 'B07' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv1 FROM ztpp_pc_g01
WHERE pcpch = gs_opt-pcpch
AND loekz = '' .
WHEN 'B08' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv1 FROM ztpp_pc_h01
WHERE pcpch = gs_opt-pcpch
AND loekz = '' .
WHEN 'R01' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv1 FROM ztpp_pc_r01
WHERE pcpch = gs_opt-pcpch
AND loekz = '' .
WHEN OTHERS.
ENDCASE.
CLEAR gt_ybz[] .
LOOP AT gt_alv1 INTO gs_alv1 .
MOVE-CORRESPONDING gs_alv1 TO gs_ybz .
gs_ybz-icon = icon_locked .
APPEND gs_ybz TO gt_ybz .
CLEAR gs_ybz .
CLEAR gs_alv1 .
ENDLOOP.
go_ybz->refresh_table_display( ).
* go_dbz->refresh_table_display( ).
* go_cache->refresh_table_display( ).
ENDMETHOD. "HANDLE_DOUBLE_CLICK
" 实现TOOLBAR事件方法
METHOD handle_toolbar.
DATA: ls_toolbar TYPE stb_button.
DELETE e_object->mt_toolbar WHERE function = '&PRINT_BACK'.
CLEAR: ls_toolbar.
ls_toolbar-butn_type = 3. " 分隔符
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR: ls_toolbar.
ls_toolbar-function = 'BT_8'. "功能码
ls_toolbar-icon = icon_incomplete. " 图标名称
ls_toolbar-quickinfo = '可删除选中的项目'. " 图标的提示信息
ls_toolbar-butn_type = 0. " 0表示正常按钮
ls_toolbar-disabled = ''. " X表示灰色,不可用
ls_toolbar-text = '删除项目'. " 按钮上显示的文本
APPEND ls_toolbar TO e_object->mt_toolbar.
CLEAR: ls_toolbar.
ls_toolbar-function = 'BT_9'. " 功能码
ls_toolbar-icon = icon_system_undo. " 图标名称
ls_toolbar-quickinfo = '可取消删除选中的项目'. " 图标的提示信息
ls_toolbar-butn_type = 0. " 0表示正常按钮
ls_toolbar-disabled = ''. " X表示灰色,不可用
ls_toolbar-text = '取消删除'. " 按钮上显示的文本
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDMETHOD. "HANDLE_TOOLBAR
" 实现USER-COMMAND 事件方法
METHOD handle_command.
CASE e_ucomm.
WHEN 'BT_8'.
LOOP AT gt_dbz INTO gs_dbz WHERE g_box = 'X' .
gs_dbz-loekz = 'X' .
MODIFY gt_dbz FROM gs_dbz .
CLEAR gs_dbz .
ENDLOOP.
go_dbz->refresh_table_display( ).
WHEN 'BT_9'.
LOOP AT gt_dbz INTO gs_dbz WHERE g_box = 'X' .
CLEAR gs_dbz-loekz .
MODIFY gt_dbz FROM gs_dbz .
CLEAR gs_dbz .
ENDLOOP.
go_dbz->refresh_table_display( ).
WHEN OTHERS.
ENDCASE.
ENDMETHOD. "HANDLE_COMMAND
METHOD handle_data_changed.
DATA:
l_it_data TYPE lvc_t_modi,
l_wa_data LIKE LINE OF l_it_data.
l_it_data = er_data_changed->mt_mod_cells.
ENDMETHOD. "handle_data_changed
ENDCLASS. "cl_event_receiver IMPLEMENTATION
*&---------------------------------------------------------------------*
*& 包含 ZP_PP_001N_EN_FOM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form FOM_INITIAL
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM fom_initial .
IF p_dispo IS NOT INITIAL.
p_disp1 = p_dispo .
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_CHECK
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM fom_check .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_SELECTION_SCREEN_PAI
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM fom_selection_screen_pai .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_GETDATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM fom_getdata .
CLEAR: gt_alv[] .
IF p_dispo = 'B01'.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv FROM ztpp_pc_a01
WHERE werks = p_werks
AND dispo = p_dispo
AND pcpch IN s_pcpch .
* CLEAR gt_opt[] .
* IF gt_alv[] IS NOT INITIAL.
* LOOP AT gt_alv INTO gs_alv.
* MOVE-CORRESPONDING gs_alv TO gs_opt .
* APPEND gs_opt TO gt_opt .
* CLEAR gs_opt .
* CLEAR gs_alv .
* ENDLOOP.
* ENDIF.
*
* SORT gt_opt[] BY pcpch .
*
* DELETE ADJACENT DUPLICATES FROM gt_opt[] COMPARING pcpch .
ELSEIF p_dispo = 'B02' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv FROM ztpp_pc_b01
WHERE werks = p_werks
AND dispo = p_dispo
AND pcpch IN s_pcpch .
* CLEAR gt_opt[] .
* IF gt_alv[] IS NOT INITIAL.
* LOOP AT gt_alv INTO gs_alv.
* MOVE-CORRESPONDING gs_alv TO gs_opt .
* APPEND gs_opt TO gt_opt .
* CLEAR gs_opt .
* CLEAR gs_alv .
* ENDLOOP.
* ENDIF.
*
* SORT gt_opt[] BY pcpch .
*
* DELETE ADJACENT DUPLICATES FROM gt_opt[] COMPARING pcpch .
ELSEIF p_dispo = 'B03' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv FROM ztpp_pc_c01
WHERE werks = p_werks
AND dispo = p_dispo
AND pcpch IN s_pcpch .
* CLEAR gt_opt[] .
* IF gt_alv[] IS NOT INITIAL.
* LOOP AT gt_alv INTO gs_alv.
* MOVE-CORRESPONDING gs_alv TO gs_opt .
* APPEND gs_opt TO gt_opt .
* CLEAR gs_opt .
* CLEAR gs_alv .
* ENDLOOP.
* ENDIF.
*
* SORT gt_opt[] BY pcpch .
*
* DELETE ADJACENT DUPLICATES FROM gt_opt[] COMPARING pcpch .
ELSEIF p_dispo = 'B04' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv FROM ztpp_pc_d01
WHERE werks = p_werks
AND dispo = p_dispo
AND pcpch IN s_pcpch .
* CLEAR gt_opt[] .
* IF gt_alv[] IS NOT INITIAL.
* LOOP AT gt_alv INTO gs_alv.
* MOVE-CORRESPONDING gs_alv TO gs_opt .
* APPEND gs_opt TO gt_opt .
* CLEAR gs_opt .
* CLEAR gs_alv .
* ENDLOOP.
* ENDIF.
*
* SORT gt_opt[] BY pcpch .
*
* DELETE ADJACENT DUPLICATES FROM gt_opt[] COMPARING pcpch .
ELSEIF p_dispo = 'B05' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv FROM ztpp_pc_e01
WHERE werks = p_werks
AND dispo = p_dispo
AND pcpch IN s_pcpch .
* CLEAR gt_opt[] .
* IF gt_alv[] IS NOT INITIAL.
* LOOP AT gt_alv INTO gs_alv.
* MOVE-CORRESPONDING gs_alv TO gs_opt .
* APPEND gs_opt TO gt_opt .
* CLEAR gs_opt .
* CLEAR gs_alv .
* ENDLOOP.
* ENDIF.
*
* SORT gt_opt[] BY pcpch .
*
* DELETE ADJACENT DUPLICATES FROM gt_opt[] COMPARING pcpch .
ELSEIF p_dispo = 'B06' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv FROM ztpp_pc_f01
WHERE werks = p_werks
AND dispo = p_dispo
AND pcpch IN s_pcpch .
* CLEAR gt_opt[] .
* IF gt_alv[] IS NOT INITIAL.
* LOOP AT gt_alv INTO gs_alv.
* MOVE-CORRESPONDING gs_alv TO gs_opt .
* APPEND gs_opt TO gt_opt .
* CLEAR gs_opt .
* CLEAR gs_alv .
* ENDLOOP.
* ENDIF.
*
* SORT gt_opt[] BY pcpch .
*
* DELETE ADJACENT DUPLICATES FROM gt_opt[] COMPARING pcpch .
ELSEIF p_dispo = 'B07' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv FROM ztpp_pc_g01
WHERE werks = p_werks
AND dispo = p_dispo
AND pcpch IN s_pcpch .
* CLEAR gt_opt[] .
* IF gt_alv[] IS NOT INITIAL.
* LOOP AT gt_alv INTO gs_alv.
* MOVE-CORRESPONDING gs_alv TO gs_opt .
* APPEND gs_opt TO gt_opt .
* CLEAR gs_opt .
* CLEAR gs_alv .
* ENDLOOP.
* ENDIF.
*
* SORT gt_opt[] BY pcpch .
*
* DELETE ADJACENT DUPLICATES FROM gt_opt[] COMPARING pcpch .
ELSEIF p_dispo = 'B08' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv FROM ztpp_pc_h01
WHERE werks = p_werks
AND dispo = p_dispo
AND pcpch IN s_pcpch .
* CLEAR gt_opt[] .
* IF gt_alv[] IS NOT INITIAL.
* LOOP AT gt_alv INTO gs_alv.
* MOVE-CORRESPONDING gs_alv TO gs_opt .
* APPEND gs_opt TO gt_opt .
* CLEAR gs_opt .
* CLEAR gs_alv .
* ENDLOOP.
* ENDIF.
*
* SORT gt_opt[] BY pcpch .
*
* DELETE ADJACENT DUPLICATES FROM gt_opt[] COMPARING pcpch .
ELSEIF p_dispo = 'B09' .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_alv FROM ztpp_pc_r01
WHERE werks = p_werks
AND dispo = p_dispo
AND pcpch IN s_pcpch .
* CLEAR gt_opt[] .
* IF gt_alv[] IS NOT INITIAL.
* LOOP AT gt_alv INTO gs_alv.
* MOVE-CORRESPONDING gs_alv TO gs_opt .
* APPEND gs_opt TO gt_opt .
* CLEAR gs_opt .
* CLEAR gs_alv .
* ENDLOOP.
* ENDIF.
*
* SORT gt_opt[] BY pcpch .
*
* DELETE ADJACENT DUPLICATES FROM gt_opt[] COMPARING pcpch .
ELSE .
ENDIF.
CLEAR gt_opt[] .
IF gt_alv[] IS NOT INITIAL.
LOOP AT gt_alv INTO gs_alv.
MOVE-CORRESPONDING gs_alv TO gs_opt .
APPEND gs_opt TO gt_opt .
CLEAR gs_opt .
CLEAR gs_alv .
ENDLOOP.
ENDIF.
SORT gt_opt[] BY pcpch .
DELETE ADJACENT DUPLICATES FROM gt_opt[] COMPARING pcpch .
ENDFORM.
*&---------------------------------------------------------------------*
*& Form SCREEN_SETTING
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM screen_setting .
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'M1'.
screen-input = '0'.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_GET_SO_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM fom_get_so_data .
CLEAR gt_data[] .
CLEAR gs_data .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_data FROM ztpp_pc_z01
WHERE vbeln IN s_vbel1
AND posnr IN s_posn1
AND zpczt = 'Z1' .
CLEAR gt_dbz[] .
LOOP AT gt_data INTO gs_data .
MOVE-CORRESPONDING gs_data TO gs_dbz .
APPEND gs_dbz TO gt_dbz .
CLEAR gs_dbz .
CLEAR gs_data .
ENDLOOP .
go_dbz->refresh_table_display( ).
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_DELE_ITEM
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM fom_submit .
DATA: gs_ybz1 TYPE ty_hpmx.
CLEAR: gt_dbz_m[] .
CLEAR: gt_ybz_m[] .
gt_dbz_m[] = gt_dbz[] .
gt_ybz_m[] = gt_ybz[] .
*gt_dbz_sub
CLEAR gt_dbz_sub[] .
LOOP AT gt_dbz INTO gs_dbz WHERE pcpch IS NOT INITIAL.
APPEND gs_dbz TO gt_dbz_sub .
gs_dbz-icon = icon_unlocked .
MODIFY gt_dbz FROM gs_dbz .
CLEAR gs_dbz .
ENDLOOP.
*&---------------------------------------------------------------------*
CLEAR gs_ybz1 .
READ TABLE gt_ybz INTO gs_ybz1 INDEX 1.
CLEAR gt_ybz_sub[] .
LOOP AT gt_ybz INTO gs_ybz WHERE pcpch <> gs_ybz1-pcpch.
* zpcph LIKE ztpp_pc_a01-zpcph, "批号
* pcpch LIKE ztpp_pc_a01-pcpch, "批次号
gs_ybz-zpcph = gs_ybz1-zpcph .
gs_ybz-pcpch = gs_ybz1-pcpch .
APPEND gs_ybz TO gt_ybz_sub .
MODIFY gt_ybz FROM gs_ybz .
CLEAR gs_ybz .
ENDLOOP.
go_ybz->refresh_table_display( ).
go_dbz->refresh_table_display( ).
IF gt_dbz_sub[] IS INITIAL AND gt_ybz_sub[] IS INITIAL.
MESSAGE '您还未触发任何操作!' TYPE 'S' DISPLAY LIKE 'E' .
ELSE .
MESSAGE '操作已提交!' TYPE 'S' .
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_REVOCATION
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM fom_revocation .
gt_dbz[] = gt_dbz_m[].
gt_ybz[] = gt_ybz_m[].
go_ybz->refresh_table_display( ).
go_dbz->refresh_table_display( ).
CLEAR: gt_dbz_m[] .
CLEAR: gt_ybz_m[] .
CLEAR gt_dbz_sub[] .
CLEAR gt_ybz_sub[] .
MESSAGE '操作已取消!' TYPE 'S'.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FOM_DELE_SAVE
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM fom_dele_save .
DATA :v_symbol_1(20) TYPE c.
DATA: y_answer TYPE c. "确认保存计数
IF gt_dbz_sub[] IS INITIAL AND gt_ybz_sub[] IS INITIAL.
MESSAGE '您还未提交任何操作!' TYPE 'S' DISPLAY LIKE 'E' .
ELSE .
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = '确认信息'
text_question = '确认保存输入信息?'
text_button_1 = '是'(041)
text_button_2 = '否'(042)
IMPORTING
answer = y_answer.
IF y_answer EQ '1'.
PERFORM frm_push_csv.
ELSE.
MESSAGE '您选择了‘否’终止保存!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_PUSH_CSV
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_push_csv .
DATA lv_zpcph TYPE ze_pcph.
DATA lv_vbeln TYPE vbap-vbeln.
DATA lv_posnr TYPE vbap-posnr.
DATA lv_pcfjh TYPE ze_pcfjh.
DATA lv_zcjdm TYPE ze_cjdm.
DATA lv_pcnum(2) TYPE n.
DATA lv_time LIKE sy-uzeit.
DATA lv_chtst LIKE tzonref-tstamps.
DATA lv_fitst LIKE tzonref-tstamps.
DATA lv_tzone LIKE tzonref-tzone.
DATA lv_return TYPE c.
DATA lv_qty TYPE kwmeng.
CLEAR:lv_time,lv_return,lv_chtst,lv_fitst,lv_pcfjh,lv_zpcph,gi_proxy,wa_arg0,gi_exception.
REFRESH:gi_input,gi_output,gi_input-parameters-arg0.
* SORT gt_dbz_sub BY zpcph kunnr vbeln posnr.
* vbeln LIKE vbap-vbeln, "销售订单
* posnr LIKE vbap-posnr, "行项目
* DATA lv_vbeln TYPE vbap-vbeln.
* DATA lv_posnr TYPE vbap-posnr.
IF gt_dbz_sub IS NOT INITIAL .
LOOP AT gt_dbz_sub INTO gs_dbz_sub.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "前缀补零
EXPORTING
input = gs_dbz_sub-vbeln
IMPORTING
output = gs_dbz_sub-vbeln.
wa_arg0-order_id = gs_dbz_sub-bstnk. "PO#
wa_arg0-po_row_number = gs_dbz_sub-posex. "PO行项目
wa_arg0-valid = gs_dbz_sub-loekz. "删除标识
wa_arg0-sap_order_id = gs_dbz_sub-vbeln. "销售订单
wa_arg0-so_row_number = gs_dbz_sub-posnr. "SO行项目
wa_arg0-node_id1 = ''. "节点ID
wa_arg0-production_line = p_disp1. "产线
wa_arg0-batch_id = gs_dbz_sub-pcpch. "批次号
wa_arg0-work_shop = gs_dbz_sub-zcjdm. "车间
* wa_arg0-batch_sort_number = lv_pcfjh. "批次号分拣号
wa_arg0-plant_code = p_werks. "工厂
SELECT SINGLE zfjh INTO wa_arg0-room_number FROM vbap
WHERE vbeln = wa_arg0-sap_order_id
AND posnr = wa_arg0-so_row_number .
CLEAR lv_qty.
SELECT SINGLE kwmeng
FROM vbap
INTO lv_qty
WHERE vbeln = gs_dbz_sub-vbeln "销售订单
AND posnr = gs_dbz_sub-posnr. "SO行项目
wa_arg0-qty = lv_qty.
APPEND wa_arg0 TO gi_input-parameters-arg0.
CLEAR:wa_arg0,gs_dbz_sub.
ENDLOOP.
ENDIF .
IF gt_ybz_sub[] IS NOT INITIAL.
LOOP AT gt_ybz_sub[] INTO gs_ybz_sub.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "前缀补零
EXPORTING
input = gs_ybz_sub-vbeln
IMPORTING
output = gs_ybz_sub-vbeln.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = gs_ybz_sub-bstnk
IMPORTING
output = gs_ybz_sub-bstnk.
wa_arg0-order_id = gs_ybz_sub-bstnk. "PO#
wa_arg0-po_row_number = gs_ybz_sub-posex. "PO行项目
wa_arg0-valid = gs_ybz_sub-loekz. "删除标识
wa_arg0-sap_order_id = gs_ybz_sub-vbeln. "销售订单
wa_arg0-so_row_number = gs_ybz_sub-posnr. "SO行项目
wa_arg0-node_id1 = ''. "节点ID
wa_arg0-production_line = p_disp1. "产线
wa_arg0-batch_id = gs_ybz_sub-pcpch. "批次号
wa_arg0-work_shop = gs_ybz_sub-zcjdm. "车间
* wa_arg0-batch_sort_number = lv_pcfjh. "批次号分拣号
wa_arg0-plant_code = p_werks. "工厂
SELECT SINGLE zfjh INTO wa_arg0-room_number FROM vbap
WHERE vbeln = wa_arg0-sap_order_id
AND posnr = wa_arg0-so_row_number .
CLEAR lv_qty.
SELECT SINGLE kwmeng
FROM vbap
INTO lv_qty
WHERE vbeln = gs_ybz_sub-vbeln "销售订单
AND posnr = gs_ybz_sub-posnr. "SO行项目
wa_arg0-qty = lv_qty.
APPEND wa_arg0 TO gi_input-parameters-arg0.
CLEAR:wa_arg0,gs_ybz_sub.
ENDLOOP.
ENDIF .
* LOOP AT gi_hpmx INTO wa_hpmx WHERE pcpch IS NOT INITIAL.
* "分拣号
* IF lv_vbeln IS INITIAL AND lv_posnr IS INITIAL.
* lv_pcfjh = 1.
* lv_vbeln = wa_hpmx-vbeln .
* lv_posnr = wa_hpmx-posnr .
* ENDIF.
*
* IF lv_vbeln NE wa_hpmx-vbeln OR lv_posnr NE wa_hpmx-posnr.
* lv_pcfjh = 1.
* lv_vbeln = wa_hpmx-vbeln .
* lv_posnr = wa_hpmx-posnr .
* ENDIF.
*
* CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "前缀补零
* EXPORTING
* input = wa_hpmx-vbeln
* IMPORTING
* output = wa_hpmx-vbeln.
*
* CLEAR wa_out.
* READ TABLE gi_out INTO wa_out WITH KEY vbeln = wa_hpmx-vbeln posnr = wa_hpmx-posnr.
* wa_arg0-order_id = wa_out-bstnk. "PO#
* wa_arg0-po_row_number = wa_out-posex. "PO行项目
* wa_arg0-valid = wa_out-loekz. "删除标识
*
* READ TABLE gi_charg WITH KEY zpcph = wa_hpmx-zpcph.
*
* wa_arg0-sap_order_id = wa_hpmx-vbeln. "销售订单
* wa_arg0-so_row_number = wa_hpmx-posnr. "SO行项目
* wa_arg0-node_id1 = ''. "节点ID
* wa_arg0-production_line = p_dispo. "产线
* wa_arg0-batch_id = gi_charg-pcpch. "批次号
* wa_arg0-work_shop = gi_charg-zcjdm. "车间
* wa_arg0-batch_sort_number = lv_pcfjh. "批次号分拣号
* wa_arg0-plant_code = p_werks. "工厂
*
* SELECT SINGLE zfjh INTO wa_arg0-room_number FROM vbap
* WHERE vbeln = wa_arg0-sap_order_id
* AND posnr = wa_arg0-so_row_number .
*
** wa_arg0-room_number = p_werks. "房间号
** wa_arg0-color_code = gi_charg-yys. "主颜色
** wa_arg0-color_desc = gi_charg-yysms. "主颜色描述
** wa_arg0-box_code = gi_charg-ypmkx. "主框型
** wa_arg0-box_desc = gi_charg-ykxms. "主框型描述
*
* "批次号日期
* CONVERT DATE gi_charg-pchda TIME '000000' INTO TIME STAMP lv_chtst TIME ZONE lv_tzone.
* "完成日期.
* CONVERT DATE gi_charg-cmdat TIME '000000' INTO TIME STAMP lv_fitst TIME ZONE lv_tzone.
* wa_arg0-batch_date = lv_chtst. "批次号日期
* wa_arg0-finish_time = lv_fitst. "完成日期.
*
* "产线描述
* SELECT SINGLE dsnam
* FROM t024d
* INTO wa_arg0-production_line_desc
* WHERE werks = p_werks
* AND dispo = p_dispo.
*
* "车间描述
* SELECT SINGLE zcjms
* FROM ztpp_pc_a02
* INTO wa_arg0-work_shop_desc
* WHERE werks = p_werks
* AND zcjdm = gi_charg-zcjdm.
*
* "取销售订单行项目数量
* CLEAR lv_qty.
* SELECT SINGLE kwmeng
* FROM vbap
* INTO lv_qty
* WHERE vbeln = wa_hpmx-vbeln "销售订单
* AND posnr = wa_hpmx-posnr. "SO行项目
*
* wa_arg0-qty = lv_qty.
*
* APPEND wa_arg0 TO gi_input-parameters-arg0.
* CLEAR:wa_arg0,wa_hpmx.
* ADD 1 TO lv_pcfjh.
* ENDLOOP.
TRY.
CREATE OBJECT gi_proxy.
gi_proxy->save_order_bom_produced_info(
EXPORTING
input = gi_input
IMPORTING
output = gi_output ).
lv_return = gi_output-parameters-return.
CATCH cx_ai_system_fault INTO gi_exception.
* WRITE gi_exception->errortext.
ENDTRY.
IF lv_return = 1.
PERFORM frm_save_data.
ELSE.
MESSAGE 'CSV推送到CRM失败,保存失败,请联系管理员!' TYPE 'S' DISPLAY LIKE 'E'.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SAVE_DATA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_save_data .
CASE p_disp1.
WHEN 'B01'.
IF gt_dbz_sub IS NOT INITIAL.
LOOP AT gt_dbz_sub INTO gs_dbz_sub.
IF gs_dbz_sub-loekz IS INITIAL.
DELETE FROM ztpp_pc_a01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET gspbs = ''WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
ELSE.
DELETE FROM ztpp_pc_a01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET gspbs = '' loekz = 'X' WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
* UPDATE ztpp_pc_a01 SET loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
* AND posnr = gs_dbz_sub-posnr .
* IF sy-subrc = 0.
* COMMIT WORK .
* ENDIF.
ENDIF.
CLEAR gs_dbz_sub .
ENDLOOP.
ENDIF.
WHEN 'B02'.
IF gt_dbz_sub IS NOT INITIAL.
LOOP AT gt_dbz_sub INTO gs_dbz_sub.
IF gs_dbz_sub-loekz IS INITIAL.
DELETE FROM ztpp_pc_b01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET ympbs = ''WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
ELSE.
DELETE FROM ztpp_pc_b01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET ympbs = '' loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
* UPDATE ztpp_pc_b01 SET loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
* AND posnr = gs_dbz_sub-posnr .
* IF sy-subrc = 0.
* COMMIT WORK .
* ENDIF.
ENDIF.
CLEAR gs_dbz_sub .
ENDLOOP.
ENDIF.
WHEN 'B03'.
IF gt_dbz_sub IS NOT INITIAL.
LOOP AT gt_dbz_sub INTO gs_dbz_sub.
IF gs_dbz_sub-loekz IS INITIAL.
DELETE FROM ztpp_pc_c01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET mkpbs = ''WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
ELSE.
DELETE FROM ztpp_pc_c01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET mkpbs = ''loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
* UPDATE ztpp_pc_c01 SET loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
* AND posnr = gs_dbz_sub-posnr .
* IF sy-subrc = 0.
* COMMIT WORK .
* ENDIF.
ENDIF.
CLEAR gs_dbz_sub .
ENDLOOP.
ENDIF.
WHEN 'B04'.
IF
gt_dbz_sub IS NOT INITIAL.
LOOP AT gt_dbz_sub INTO gs_dbz_sub.
IF gs_dbz_sub-loekz IS INITIAL.
DELETE FROM ztpp_pc_d01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET lkpbs = ''WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
ELSE.
DELETE FROM ztpp_pc_d01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET lkpbs = '' loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
* UPDATE ztpp_pc_d01 SET loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
* AND posnr = gs_dbz_sub-posnr .
* IF sy-subrc = 0.
* COMMIT WORK .
* ENDIF.
ENDIF.
CLEAR gs_dbz_sub .
ENDLOOP.
ENDIF.
WHEN 'B05'.
IF gt_dbz_sub IS NOT INITIAL.
LOOP AT gt_dbz_sub INTO gs_dbz_sub.
IF gs_dbz_sub-loekz IS INITIAL.
DELETE FROM ztpp_pc_e01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET xspbs = ''WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
ELSE.
DELETE FROM ztpp_pc_e01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET xspbs = ''loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
* UPDATE ztpp_pc_e01 SET loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
* AND posnr = gs_dbz_sub-posnr .
* IF sy-subrc = 0.
* COMMIT WORK .
* ENDIF.
ENDIF.
CLEAR gs_dbz_sub .
ENDLOOP.
ENDIF.
WHEN 'B06'.
IF gt_dbz_sub IS NOT INITIAL.
LOOP AT gt_dbz_sub INTO gs_dbz_sub.
IF gs_dbz_sub-loekz IS INITIAL.
DELETE FROM ztpp_pc_f01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET bbpbs = ''WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
ELSE.
DELETE FROM ztpp_pc_f01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET bbpbs = ''loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
* UPDATE ztpp_pc_f01 SET loekz = 'X' WHERE vbeln = gs_dbz_sub-vbeln
* AND posnr = gs_dbz_sub-posnr .
* IF sy-subrc = 0.
* COMMIT WORK .
* ENDIF.
ENDIF.
CLEAR gs_dbz_sub .
ENDLOOP.
ENDIF.
WHEN 'B07'.
IF gt_dbz_sub IS NOT INITIAL.
LOOP AT gt_dbz_sub INTO gs_dbz_sub.
IF gs_dbz_sub-loekz IS INITIAL.
DELETE FROM ztpp_pc_g01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET zspbs = ''WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
ELSE.
DELETE FROM ztpp_pc_g01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET zspbs = ''loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
* UPDATE ztpp_pc_g01 SET loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
* AND posnr = gs_dbz_sub-posnr .
* IF sy-subrc = 0.
* COMMIT WORK .
* ENDIF.
ENDIF.
CLEAR gs_dbz_sub .
ENDLOOP.
ENDIF.
WHEN 'B08'.
IF gt_dbz_sub IS NOT INITIAL.
LOOP AT gt_dbz_sub INTO gs_dbz_sub.
IF gs_dbz_sub-loekz IS INITIAL.
DELETE FROM ztpp_pc_h01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET wjpbs = ''WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
ELSE.
DELETE FROM ztpp_pc_h01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET wjpbs = '' loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
* UPDATE ztpp_pc_h01 SET loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
* AND posnr = gs_dbz_sub-posnr .
* IF sy-subrc = 0.
* COMMIT WORK .
* ENDIF.
ENDIF.
CLEAR gs_dbz_sub .
ENDLOOP.
ENDIF.
WHEN 'R01'.
IF gt_dbz_sub IS NOT INITIAL.
LOOP AT gt_dbz_sub INTO gs_dbz_sub.
IF gs_dbz_sub-loekz IS INITIAL.
DELETE FROM ztpp_pc_r01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET gspbs = ''WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
ELSE.
DELETE FROM ztpp_pc_r01 WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
UPDATE ztpp_pc_z01 SET gspbs = ''loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
AND posnr = gs_dbz_sub-posnr .
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
* UPDATE ztpp_pc_r01 SET loekz = 'X'WHERE vbeln = gs_dbz_sub-vbeln
* AND posnr = gs_dbz_sub-posnr .
* IF sy-subrc = 0.
* COMMIT WORK .
* ENDIF.
ENDIF.
CLEAR gs_dbz_sub .
ENDLOOP.
ENDIF.
WHEN OTHERS.
ENDCASE.
DATA gs_pp_pc_z01 TYPE ztpp_pc_z01 .
DATA gs_pp_pc_a01 TYPE ztpp_pc_a01 .
DATA gs_pp_pc_b01 TYPE ztpp_pc_b01 .
DATA gs_pp_pc_c01 TYPE ztpp_pc_c01 .
DATA gs_pp_pc_d01 TYPE ztpp_pc_d01 .
DATA gs_pp_pc_e01 TYPE ztpp_pc_e01 .
DATA gs_pp_pc_f01 TYPE ztpp_pc_f01 .
DATA gs_pp_pc_g01 TYPE ztpp_pc_g01 .
DATA gs_pp_pc_h01 TYPE ztpp_pc_h01 .
DATA gs_pp_pc_r01 TYPE ztpp_pc_r01 .
IF gt_ybz_sub[] IS NOT INITIAL.
LOOP AT gt_ybz_sub[] INTO gs_ybz_sub.
SELECT SINGLE * INTO CORRESPONDING FIELDS OF gs_pp_pc_z01 FROM ztpp_pc_z01
WHERE vbeln = gs_ybz_sub-vbeln
AND posnr = gs_ybz_sub-posnr .
CASE p_disp1.
WHEN 'B01'.
MOVE-CORRESPONDING gs_ybz_sub TO gs_pp_pc_a01 .
gs_pp_pc_a01-zpcph = gs_ybz_sub-zpcph .
gs_pp_pc_a01-pcpch = gs_ybz_sub-pcpch .
MODIFY ztpp_pc_a01 FROM gs_pp_pc_a01 .
WHEN 'B02'.
MOVE-CORRESPONDING gs_ybz_sub TO gs_pp_pc_b01 .
gs_pp_pc_b01-zpcph = gs_ybz_sub-zpcph .
gs_pp_pc_b01-pcpch = gs_ybz_sub-pcpch .
MODIFY ztpp_pc_b01 FROM gs_pp_pc_b01 .
WHEN 'B03'.
MOVE-CORRESPONDING gs_ybz_sub TO gs_pp_pc_c01 .
gs_pp_pc_c01-zpcph = gs_ybz_sub-zpcph .
gs_pp_pc_c01-pcpch = gs_ybz_sub-pcpch .
MODIFY ztpp_pc_c01 FROM gs_pp_pc_c01 .
WHEN 'B04'.
MOVE-CORRESPONDING gs_ybz_sub TO gs_pp_pc_d01 .
gs_pp_pc_d01-zpcph = gs_ybz_sub-zpcph .
gs_pp_pc_d01-pcpch = gs_ybz_sub-pcpch .
MODIFY ztpp_pc_d01 FROM gs_pp_pc_d01 .
WHEN 'B05'.
MOVE-CORRESPONDING gs_ybz_sub TO gs_pp_pc_e01 .
gs_pp_pc_e01-zpcph = gs_ybz_sub-zpcph .
gs_pp_pc_e01-pcpch = gs_ybz_sub-pcpch .
MODIFY ztpp_pc_e01 FROM gs_pp_pc_e01 .
WHEN 'B06'.
MOVE-CORRESPONDING gs_ybz_sub TO gs_pp_pc_f01 .
gs_pp_pc_f01-zpcph = gs_ybz_sub-zpcph .
gs_pp_pc_f01-pcpch = gs_ybz_sub-pcpch .
MODIFY ztpp_pc_f01 FROM gs_pp_pc_f01 .
WHEN 'B07'.
MOVE-CORRESPONDING gs_ybz_sub TO gs_pp_pc_g01 .
gs_pp_pc_g01-zpcph = gs_ybz_sub-zpcph .
gs_pp_pc_g01-pcpch = gs_ybz_sub-pcpch .
MODIFY ztpp_pc_g01 FROM gs_pp_pc_g01 .
WHEN 'B08'.
MOVE-CORRESPONDING gs_ybz_sub TO gs_pp_pc_h01 .
gs_pp_pc_h01-zpcph = gs_ybz_sub-zpcph .
gs_pp_pc_h01-pcpch = gs_ybz_sub-pcpch .
MODIFY ztpp_pc_h01 FROM gs_pp_pc_h01 .
WHEN 'R01'.
MOVE-CORRESPONDING gs_ybz_sub TO gs_pp_pc_r01 .
gs_pp_pc_r01-zpcph = gs_ybz_sub-zpcph .
gs_pp_pc_r01-pcpch = gs_ybz_sub-pcpch .
MODIFY ztpp_pc_r01 FROM gs_pp_pc_r01 .
WHEN OTHERS.
ENDCASE.
IF sy-subrc = 0.
COMMIT WORK .
ENDIF.
CLEAR gs_pp_pc_a01 .
CLEAR gs_pp_pc_z01 .
CLEAR gs_ybz_sub .
ENDLOOP.
ENDIF.
CLEAR gt_dbz[].
CLEAR gt_ybz[].
go_ybz->refresh_table_display( ).
go_dbz->refresh_table_display( ).
MESSAGE '已保存!' TYPE 'S' .
ENDFORM .
INITIALIZATION .
AT SELECTION-SCREEN OUTPUT.
PERFORM screen_setting.
AT SELECTION-SCREEN .
PERFORM fom_check .
PERFORM fom_selection_screen_pai .
START-OF-SELECTION.
PERFORM fom_initial . "事件
PERFORM fom_getdata . "取得项目信息
CALL SCREEN 100.
相关屏幕:
链接:https://pan.baidu.com/s/1mhSEw5M 密码:rmkx
显示效果: