您的位置:首页 > 其它

一个功能较为完整的dialog程序

2018-01-05 14:36 519 查看
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
230ff
_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

显示效果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐