REPORT zmc_plgoal_see MESSAGE-ID s05.
DATA:gv_msg_reset(255).
DATA:gv_msg_return(50).
DATA gv_highest_level TYPE zmct_spr-zspjb.
DATA:gt_zmct_spr LIKE TABLE OF zmct_spr WITH HEADER LINE.
"//---------------------------------------------------
CONSTANTS:con_pernr TYPE pernr_d VALUE '61060017'.
DATA:lv_spjb_now TYPE zmct_spr-zspjb."当前审批节点
DATA:lv_spjb_now_txt TYPE char16."当前审批节点
DATA:lv_spjb_highest TYPE zmct_spr-zspjb.
DATA:lv_fieldname TYPE char14.
DATA:lv_fieldname_highest TYPE char14.
DATA:gv_sp_msg TYPE char255.
DATA:lv_spr TYPE char14.
DATA:lv_sprq TYPE char14.
DATA:lv_spsj TYPE char14.
DATA:lv_spr_h TYPE char14.
DATA:lv_sprq_h TYPE char14.
DATA:lv_spsj_h TYPE char14.
FIELD-SYMBOLS:<spzt> TYPE ANY,<spzt_high> TYPE ANY.
FIELD-SYMBOLS:<spr> TYPE ANY,<sprq> TYPE ANY,<spsj> TYPE ANY.
"//------------审批人姓名---------------------------------------
DATA:lv_value1 TYPE char20..
DATA:lv_name TYPE char20..
DATA:lv_index1 TYPE char20..
FIELD-SYMBOLS:<spr1> TYPE ANY.
FIELD-SYMBOLS:<sprzt1> TYPE ANY.
FIELD-SYMBOLS:<spr1_name> TYPE ANY.
DEFINE macro_spname.
do 6 times.
clear:lv_value1,lv_name.
lv_index1 = sy-index.
condense lv_index1 no-gaps.
concatenate 'ZSPR_' lv_index1 into lv_value1.
concatenate 'NAME_' lv_index1 into lv_name.
assign component lv_value1 of structure &1 to <spr1>.
if sy-subrc = 0 .
read table gt_zmct_spr with key pernr = <spr1>.
if sy-subrc = 0.
assign component lv_name of structure &1 to <spr1_name>.
if sy-subrc = 0 .
<spr1_name> = gt_zmct_spr-name.
endif.
endif.
endif.
enddo.
END-OF-DEFINITION.
"//---------------------------------------------------
DEFINE macro_stauts.
if &1-&2 = 'X' or &1-&2 = icon_checked."程序一开始使用的X标识符,如果审批完成后会更新为图标标识符
&1-&2 = icon_checked.
else.
&1-&2 = icon_cancel.
endif.
END-OF-DEFINITION.
DEFINE macro_fname.
if gv_highest_level >= 1.
"
gs_fieldcat-icon = 'X'.
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPZT_1' . perform set_fieldcat1 using 'ZSPZT_1' '一级' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPR_1' . perform set_fieldcat1 using 'ZSPR_1' '确认人 ' .
"
gs_fieldcat-ref_table = 'ZMCS_NAME' . gs_fieldcat-ref_field = 'NAME_1' . perform set_fieldcat1 using 'NAME_1' '姓名 ' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPRQ_1' . perform set_fieldcat1 using 'ZSPRQ_1' '确认日期' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPSJ_1' . perform set_fieldcat1 using 'ZSPSJ_1' '确认时间' .
endif.
if gv_highest_level >= 2.
"
gs_fieldcat-icon = 'X'.
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPZT_2' . perform set_fieldcat1 using 'ZSPZT_2' '二级' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPR_2' . perform set_fieldcat1 using 'ZSPR_2' '确认人 ' .
"
gs_fieldcat-ref_table = 'ZMCS_NAME' . gs_fieldcat-ref_field = 'NAME_2' . perform set_fieldcat1 using 'NAME_2' '姓名 ' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPRQ_2' . perform set_fieldcat1 using 'ZSPRQ_2' '确认日期' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPSJ_2' . perform set_fieldcat1 using 'ZSPSJ_2' '确认时间' .
endif.
if gv_highest_level >= 3.
"
gs_fieldcat-icon = 'X'.
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPZT_3' . perform set_fieldcat1 using 'ZSPZT_3' '大区一级' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPR_3' . perform set_fieldcat1 using 'ZSPR_3' '确认人 ' .
"
gs_fieldcat-ref_table = 'ZMCS_NAME' . gs_fieldcat-ref_field = 'NAME_3' . perform set_fieldcat1 using 'NAME_3' '姓名 ' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPRQ_3' . perform set_fieldcat1 using 'ZSPRQ_3' '确认日期' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPSJ_3' . perform set_fieldcat1 using 'ZSPSJ_3' '确认时间' .
endif.
if gv_highest_level >= 4.
"
gs_fieldcat-icon = 'X'.
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPZT_4' . perform set_fieldcat1 using 'ZSPZT_4' '大区二级' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPR_4' . perform set_fieldcat1 using 'ZSPR_4' '确认人 ' .
"
gs_fieldcat-ref_table = 'ZMCS_NAME' . gs_fieldcat-ref_field = 'NAME_4' . perform set_fieldcat1 using 'NAME_4' '姓名 ' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPRQ_4' . perform set_fieldcat1 using 'ZSPRQ_4' '确认日期' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPSJ_4' . perform set_fieldcat1 using 'ZSPSJ_4' '确认时间' .
endif.
if gv_highest_level >= 5.
"
gs_fieldcat-icon = 'X'.
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPZT_5' . perform set_fieldcat1 using 'ZSPZT_5' '医管' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPR_5' . perform set_fieldcat1 using 'ZSPR_5' '确认人 ' .
"
gs_fieldcat-ref_table = 'ZMCS_NAME' . gs_fieldcat-ref_field = 'NAME_5' . perform set_fieldcat1 using 'NAME_5' '姓名 ' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPRQ_5' . perform set_fieldcat1 using 'ZSPRQ_5' '确认日期' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPSJ_5' . perform set_fieldcat1 using 'ZSPSJ_5' '确认时间' .
endif.
if gv_highest_level >= 6.
"
gs_fieldcat-icon = 'X'.
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPZT_6' . perform set_fieldcat1 using 'ZSPZT_6' '五级' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPR_6' . perform set_fieldcat1 using 'ZSPR_6' '确认人 ' .
"
gs_fieldcat-ref_table = 'ZMCS_NAME' . gs_fieldcat-ref_field = 'NAME_6' . perform set_fieldcat1 using 'NAME_6' '姓名 ' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPRQ_6' . perform set_fieldcat1 using 'ZSPRQ_6' '确认日期' .
"
gs_fieldcat-ref_table = 'ZMCT_TLKF' . gs_fieldcat-ref_field = 'ZSPSJ_6' . perform set_fieldcat1 using 'ZSPSJ_6' '确认时间' .
endif.
END-OF-DEFINITION.
TYPE-POOLS:slis.
TYPES:
BEGIN OF typ_data,
sel TYPE char1,
jgbm TYPE zmct_pl-jgbm, "机构
qdsj TYPE zmct_pl-qdsj, "渠道一级
zqdej TYPE zmct_pl-zqdej, "渠道二级
gjahr TYPE zmct_pl-gjahr, "会计年度
smon TYPE zmct_pl-smon, "会计期间
zvalue_typ TYPE zmct_pl-zvalue_typ, "值类型
zvalue_typ_txt TYPE zmct_pl-zvalue_typ_txt, "值类型
zjg_txt TYPE zmct_pl-zjg_txt, "机构描述
qdsjt TYPE zmct_pl-qdsjt, "渠道一级文本
zqdejt TYPE zmct_pl-zqdejt, "渠道二级文本
zzw_eyebrow TYPE zmct_pl-zzw_eyebrow, "整外-眉部整形
zzw_eye TYPE zmct_pl-zzw_eye, "整外-眼部整形
zzw_rhinoplasty TYPE zmct_pl-zzw_rhinoplasty, "整外-鼻部整形
zzw_breast TYPE zmct_pl-zzw_breast, "整外-胸部整形
zzw_fat_fillers TYPE zmct_pl-zzw_fat_fillers, "整外-脂肪填充
zzw_liposuction TYPE zmct_pl-zzw_liposuction, "整外-吸脂
zzw_facial_wrink TYPE zmct_pl-zzw_facial_wrink, "整外-面部除皱
zzw_otoplasty TYPE zmct_pl-zzw_otoplasty, "整外-耳部整形
zzw_other TYPE zmct_pl-zzw_other, "整外-整外其他
zwc_acid TYPE zmct_pl-zwc_acid, "无创-玻尿酸
zwc_regenerativ TYPE zmct_pl-zwc_regenerativ, "无创-再生材料
zwc_collagen TYPE zmct_pl-zwc_collagen, "无创-胶原蛋白
zwc_sculpting TYPE zmct_pl-zwc_sculpting, "无创-肉毒素塑形
zwc_wreduction TYPE zmct_pl-zwc_wreduction, "无创-肉毒素除皱
zwc_thread_s TYPE zmct_pl-zwc_thread_s, "无创-线雕
zwc_other TYPE zmct_pl-zwc_other, "无创-其它
zskin_maintain TYPE zmct_pl-zskin_maintain, "皮肤-嫩肤保养
zskin_tighten TYPE zmct_pl-zskin_tighten, "皮肤-紧肤抗衰
zskin_whitening TYPE zmct_pl-zskin_whitening, "皮肤-美白祛斑
zskin_acne_remo TYPE zmct_pl-zskin_acne_remo, "皮肤-祛痘
zskin_scars TYPE zmct_pl-zskin_scars, "皮肤-疤痕/瘢痕
zskin_hair_remov TYPE zmct_pl-zskin_hair_remov, "皮肤-脱毛
zskin_tattoo TYPE zmct_pl-zskin_tattoo, "皮肤-纹绣
zskin_cosmetic TYPE zmct_pl-zskin_cosmetic, "皮肤-化妆品
zskin_redness TYPE zmct_pl-zskin_redness, "皮肤-袪红治疗
zskin_other TYPE zmct_pl-zskin_other, "皮肤-皮肤其他
zsm_instrument TYPE zmct_pl-zsm_instrument, "私密-仪器私密
zsm_injections TYPE zmct_pl-zsm_injections, "私密-注射私密
zsm_other TYPE zmct_pl-zsm_other, "私密-私密其他
zxt_instrument TYPE zmct_pl-zxt_instrument, "纤体-仪器纤体
zxt_lipolysis TYPE zmct_pl-zxt_lipolysis, "纤体-美塑溶脂
zxt_acid TYPE zmct_pl-zxt_acid, "纤体-玻尿酸塑形
zxt_botox TYPE zmct_pl-zxt_botox, "纤体-肉毒塑形
zxt_other TYPE zmct_pl-zxt_other, "纤体-纤体其他
zkq_orthodontic TYPE zmct_pl-zkq_orthodontic, "口腔-正畸
zkq_restoration TYPE zmct_pl-zkq_restoration, "口腔-修复
zkq_treatment TYPE zmct_pl-zkq_treatment, "口腔-治疗
zkq_implant TYPE zmct_pl-zkq_implant, "口腔-种植
zkq_other TYPE zmct_pl-zkq_other, "口腔-口腔其他
zmf_implants TYPE zmct_pl-zmf_implants, "毛发-毛发种植
zmf_artistic_im TYPE zmct_pl-zmf_artistic_im, "毛发-艺术种植
zmf_anti_aging TYPE zmct_pl-zmf_anti_aging, "毛发-头皮抗衰
zmf_other TYPE zmct_pl-zmf_other, "毛发-头皮其他
zyjk_tcm TYPE zmct_pl-zyjk_tcm, "亚健康管理-中医理疗
zyjk_spa TYPE zmct_pl-zyjk_spa, "亚健康管理SPA
count TYPE i, "该字段专门用来统计行数
dd_handle TYPE int4, "设置关于下拉列表
line_color(4) TYPE c, "设置行颜色的字段
cell_color TYPE slis_t_specialcol_alv, "设置字段颜色
cellstyles TYPE lvc_t_styl, "控制单元格可编辑
checkbox TYPE c, "复选框列
sep_flag TYPE char10, "结果标识
created_by TYPE zmct_zx-created_by ,
created_date TYPE zmct_zx-created_date ,
created_time TYPE zmct_zx-created_time ,
zspr_ygnam TYPE zmc_tygh-ygnam, "确认人
msg TYPE char255.
INCLUDE STRUCTURE zmct_sp. "
INCLUDE STRUCTURE zmcs_name. "
TYPES:END OF typ_data.
DATA: gt_show TYPE TABLE OF typ_data,
gs_show TYPE typ_data.
FIELD-SYMBOLS:<fs_show> TYPE typ_data.
DATA:gv_event_flag(1).
DATA go_alv_handler_maint TYPE REF TO zcl_alv_event_handler.
************************************************************************
* Tables
************************************************************************
TABLES: t000.
TYPE-POOLS: slis,icon.
*--·与ALV相关的变量
DATA: gs_fieldcat TYPE lvc_s_fcat,
gt_fieldcat TYPE lvc_t_fcat,
gs_layout TYPE lvc_s_layo,
ls_glay TYPE lvc_s_glay,
gt_sub_fieldcat TYPE lvc_t_fcat,
gs_sub_layout TYPE lvc_s_layo,
con_diabox TYPE REF TO cl_gui_dialogbox_container,
go_alv TYPE REF TO cl_gui_alv_grid.
*--·与ALV函数相关的参数
DATA: gt_excluding TYPE slis_t_extab, "关于排除ALV工具栏标准按钮的内表
gs_excluding LIKE LINE OF gt_excluding, "关于排除ALV工具栏标准按钮的结构
gt_ddval TYPE lvc_t_drop, "关于下拉列表的内表
gs_ddval TYPE lvc_s_drop, "关于下拉列表的工作区
git_events TYPE slis_t_event. "注册ALV事件的内表
DATA: gv_need_refresh TYPE c. "定义全局的
DATA: lo_alv TYPE REF TO cl_gui_alv_grid.
TABLES:zmct_pl.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE sxtj.
SELECT-OPTIONS:s_jgbm FOR zmct_pl-jgbm OBLIGATORY MEMORY ID zjg
MATCHCODE OBJECT zmc_sh_jgbm_d . . "机构
SELECT-OPTIONS:s_gjahr FOR zmct_pl-gjahr NO INTERVALS NO-EXTENSION DEFAULT sy-datum+0(4)."会计年度
SELECT-OPTIONS:s_smon FOR zmct_pl-smon DEFAULT sy-datum+4(2)."会计期间
SELECT-OPTIONS:s_qdsj FOR zmct_pl-qdsj."渠道一级
SELECT-OPTIONS:s_zqdej FOR zmct_pl-zqdej."渠道二级
SELECT-OPTIONS:s_zvalue FOR zmct_pl-zvalue_typ."值类型
SELECT-OPTIONS:s_zspzt FOR zmct_pl-zspzt NO-DISPLAY ."
SELECTION-SCREEN END OF BLOCK b1.
INITIALIZATION.
%_s_jgbm_%_app_%-text = '机构' .
%_s_qdsj_%_app_%-text = '渠道一级' .
%_s_zqdej_%_app_%-text = '渠道二级' .
%_s_gjahr_%_app_%-text = '会计年度' .
%_s_smon_%_app_%-text = '会计期间' .
%_s_zvalue_%_app_%-text = '值类型' .
sxtj = '筛选条件' .
IF sy-tcode = 'ZCO_24032'.
sy-title = '品类目标-查看'.
ELSEIF sy-tcode = 'ZCO_24036'."取消确认
sy-title = '品类目标-取消确认'.
ELSEIF sy-tcode = 'ZCO_24035'."确认
sy-title = '品类目标-确认'.
ENDIF.
AT SELECTION-SCREEN .
IF sy-tcode = 'ZCO_24035' ."确认时候只能看见待审核流程 .
s_zspzt-sign = 'I'.
s_zspzt-option = 'EQ'.
s_zspzt-low = 'N'.
APPEND s_zspzt.CLEAR s_zspzt.
ENDIF.
START-OF-SELECTION.
PERFORM authority_check.
PERFORM a_get_data.
END-OF-SELECTION.
*--·设置排除按钮
PERFORM frm_set_excluding.
*--·设置事件
PERFORM frm_set_event.
*--·设置fieldcat
PERFORM frm_set_fieldcat.
*--·设置layout
PERFORM frm_set_layout.
*--·输出数据至内表
PERFORM frm_disp_data.
*&---------------------------------------------------------------------*
*& Form authority_check
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM authority_check .
DATA:s_werks TYPE zmc_tt_range.
s_werks[] = s_jgbm[] .
IF zcl_ck=>auth_control( s_werks[] ) = abap_false.
MESSAGE e000 WITH '您没有此机构的权限!!!'.
RETURN.
ENDIF.
ENDFORM. "authority_check
*&---------------------------------------------------------------------*
*& Form A_get_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM a_get_data .
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_zmct_spr FROM zmct_spr WHERE jgbm IN s_jgbm.
SORT gt_zmct_spr BY zspjb DESCENDING.
READ TABLE gt_zmct_spr INDEX 1 .
IF sy-subrc = 0.
gv_highest_level = gt_zmct_spr-zspjb.
ENDIF.
SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_show
FROM zmct_pl
WHERE jgbm IN s_jgbm
AND qdsj IN s_qdsj
AND zqdej IN s_zqdej
AND gjahr IN s_gjahr
AND smon IN s_smon
AND zvalue_typ IN s_zvalue
AND zspzt IN s_zspzt
.
LOOP AT gt_show ASSIGNING <fs_show>.
<fs_show>-sep_flag = icon_yellow_light.
IF <fs_show>-zspzt = 'X'..
<fs_show>-zspzt_txt = icon_led_green.
ELSE.
<fs_show>-zspzt_txt = icon_led_red.
ENDIF.
macro_stauts <fs_show> zspzt_1 .
macro_stauts <fs_show> zspzt_2 .
macro_stauts <fs_show> zspzt_3 .
macro_stauts <fs_show> zspzt_4 .
macro_stauts <fs_show> zspzt_5 .
macro_stauts <fs_show> zspzt_6 .
macro_spname <fs_show>.
ENDLOOP.
SORT gt_show BY jgbm gjahr smon qdsj zqdej.
ENDFORM. "A_get_data
*&---------------------------------------------------------------------*
*& Form frm_disp_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_disp_data .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FRM_SET_PF_STATUS'
i_callback_user_command = 'FRM_USER_COMMAND'
i_background_id = 'ALV_BACKGROUND'
is_layout_lvc = gs_layout
it_fieldcat_lvc = gt_fieldcat
it_excluding = gt_excluding
"i_grid_title = CONV lvc_title( |共{ lines( gt_show ) }条| )
i_save = 'A' ""X 可以保存全局变式 U 可以保存特定变式 A 都可以保存
it_events = git_events
TABLES
t_outtab = gt_show
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0."
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. "frm_disp_data
*&---------------------------------------------------------------------*
*& Form frm_set_event
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_set_event .
DATA l_events TYPE LINE OF slis_t_event.
l_events-name = 'CALLER_EXIT'. "'CALLER_EXIT'在此写固定即可
l_events-form = 'FRM_ENTER_EVENT'."回车事件调用的FORM
APPEND l_events TO git_events.
ENDFORM. "frm_set_event
*&---------------------------------------------------------------------*
*& Form frm_enter_event
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->E_GRID text
*----------------------------------------------------------------------*
FORM frm_enter_event USING e_grid TYPE slis_data_caller_exit.
ENDFORM. " frm_set_event
*&---------------------------------------------------------------------*
*& Form frm_set_pf_status
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PT_EXTAB text
*----------------------------------------------------------------------*
FORM frm_set_pf_status USING pt_extab TYPE slis_t_extab.
DATA ls_button TYPE slis_extab.
DATA: lo_alv TYPE REF TO cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lo_alv.
* ls_button-fcode = 'DEL'. APPEND ls_button TO pt_extab.CLEAR ls_button.
* ls_button-fcode = 'CONFIRM'. APPEND ls_button TO pt_extab.CLEAR ls_button.
* ls_button-fcode = 'RESET'. APPEND ls_button TO pt_extab.CLEAR ls_button.
FREE:pt_extab.
IF sy-tcode = 'ZCO_24032'."查看
ls_button-fcode = 'CONFIRM'. APPEND ls_button TO pt_extab.CLEAR ls_button.
ls_button-fcode = 'RESET'. APPEND ls_button TO pt_extab.CLEAR ls_button.
ELSEIF sy-tcode = 'ZCO_24036'."取消确认
ls_button-fcode = 'DEL'. APPEND ls_button TO pt_extab.CLEAR ls_button.
ls_button-fcode = 'CONFIRM'. APPEND ls_button TO pt_extab.CLEAR ls_button.
ELSEIF sy-tcode = 'ZCO_24035'."确认
ls_button-fcode = 'RESET'. APPEND ls_button TO pt_extab.CLEAR ls_button.
ls_button-fcode = 'DEL'. APPEND ls_button TO pt_extab.CLEAR ls_button.
ENDIF.
PERFORM alv_col_opt IN PROGRAM zabap_sedi_forms USING lo_alv.
SET PF-STATUS 'STANDARD' EXCLUDING pt_extab.
* SET TITLEBAR 'TITLE' WITH lv_gs1 ."生产计划协同平台&s条
ENDFORM. "frm_set_pf_status
*&---------------------------------------------------------------------*
*& Form frm_set_layout
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_set_layout .
CLEAR gs_layout.
gs_layout-cwidth_opt = 'X'. "优化列宽度,设置此属性后,GS_fieldcat-OUTPUTLEN不再起作用
gs_layout-zebra = 'X'.
gs_layout-sel_mode = 'D'.
gs_layout-box_fname = 'SEL'.
gs_layout-countfname = 'COUNT'. "计数的功能,就是统计ALV显示了多少条记录,在SAP ALV标准过滤后仍能正确的计数
gs_layout-info_fname = 'LINE_COLOR'."设置行颜色
gs_layout-ctab_fname = 'CELL_COLOR'."单元格颜色设置
gs_layout-stylefname = 'CELLSTYLES'. "控制单元格可编辑的字段
gs_layout-totals_bef = 'X'.
ENDFORM. "frm_set_layout
*&---------------------------------------------------------------------*
*& Form frm_set_excluding
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_set_excluding .
CLEAR: gt_excluding,gs_excluding.
gs_excluding-fcode = '&RNT_PREV'.
APPEND gs_excluding TO gt_excluding .
ENDFORM. "frm_set_excluding
*&---------------------------------------------------------------------*
*& Form frm_set_fieldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_set_fieldcat .
CLEAR: gt_fieldcat,gs_fieldcat.
gs_fieldcat-key = 'X' .
PERFORM set_fieldcat USING ' ' ' ' 'COUNT' '条目数'.
IF sy-tcode = 'ZCO_24036' OR sy-tcode = 'ZCO_24035'."取消确认/确认
gs_fieldcat-key = 'X'. "
gs_fieldcat-icon = 'X'.
PERFORM set_fieldcat USING '' '' 'SEP_FLAG' '结果标识' .
gs_fieldcat-key = 'X'. "
PERFORM set_fieldcat USING '' '' 'MSG' '消息' .
ENDIF.
gs_fieldcat-key = 'X' .
PERFORM set_fieldcat USING 'ZMCT_PL' 'JGBM' 'JGBM' '机构' .
gs_fieldcat-key = 'X' .
gs_fieldcat-no_out = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'QDSJ' 'QDSJ' '渠道一级' .
gs_fieldcat-key = 'X' .
gs_fieldcat-no_out = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZQDEJ' 'ZQDEJ' '渠道二级' .
gs_fieldcat-key = 'X' .
PERFORM set_fieldcat USING 'ZMCT_PL' 'GJAHR' 'GJAHR' '会计年度' .
gs_fieldcat-key = 'X' .
PERFORM set_fieldcat USING 'ZMCT_PL' 'SMON' 'SMON' '会计期间' .
gs_fieldcat-key = 'X' .
gs_fieldcat-no_out = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZVALUE_TYP' 'ZVALUE_TYP' '值类型' .
gs_fieldcat-key = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZVALUE_TYP_TXT' 'ZVALUE_TYP_TXT' '值类型' .
gs_fieldcat-key = 'X'.
PERFORM set_fieldcat USING ' ' ' ' 'ZJG_TXT' '机构描述' .
gs_fieldcat-key = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'QDSJT' 'QDSJT' '渠道一级文本' .
gs_fieldcat-key = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZQDEJT' 'ZQDEJT' '渠道二级文本' .
"//---------------------------------------------------
PERFORM set_fieldcat USING ' ' ' ' 'CREATED_BY' '创建人' .
PERFORM set_fieldcat USING ' ' ' ' 'CREATED_DATE' '创建日期' .
PERFORM set_fieldcat USING ' ' ' ' 'CREATED_TIME' '创建时间' .
gs_fieldcat-no_out = 'X'.
PERFORM set_fieldcat USING ' ' ' ' 'ZSPZT' '确认状态' .
gs_fieldcat-icon = 'X'.
PERFORM set_fieldcat USING ' ' ' ' 'ZSPZT_TXT' '确认状态' .
macro_fname.
"//---------------------------------------------------
gs_fieldcat-emphasize = 'C300'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZZW_EYEBROW' 'ZZW_EYEBROW' '整外-眉部整形' .
gs_fieldcat-emphasize = 'C300'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZZW_EYE' 'ZZW_EYE' '整外-眼部整形' .
gs_fieldcat-emphasize = 'C300'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZZW_RHINOPLASTY' 'ZZW_RHINOPLASTY' '整外-鼻部整形' .
gs_fieldcat-emphasize = 'C300'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZZW_BREAST' 'ZZW_BREAST' '整外-胸部整形' .
gs_fieldcat-emphasize = 'C300'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZZW_FAT_FILLERS' 'ZZW_FAT_FILLERS' '整外-脂肪填充' .
gs_fieldcat-emphasize = 'C300'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZZW_LIPOSUCTION' 'ZZW_LIPOSUCTION' '整外-吸脂' .
gs_fieldcat-emphasize = 'C300'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZZW_FACIAL_WRINK' 'ZZW_FACIAL_WRINK' '整外-面部除皱' .
gs_fieldcat-emphasize = 'C300'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZZW_OTOPLASTY' 'ZZW_OTOPLASTY' '整外-耳部整形' .
gs_fieldcat-emphasize = 'C300'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZZW_OTHER' 'ZZW_OTHER' '整外-整外其他' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZWC_ACID' 'ZWC_ACID' '无创-玻尿酸' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZWC_REGENERATIV' 'ZWC_REGENERATIV' '无创-再生材料' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZWC_COLLAGEN' 'ZWC_COLLAGEN' '无创-胶原蛋白' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZWC_SCULPTING' 'ZWC_SCULPTING' '无创-肉毒素塑形' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZWC_WREDUCTION' 'ZWC_WREDUCTION' '无创-肉毒素除皱' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZWC_THREAD_S' 'ZWC_THREAD_S' '无创-线雕' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZWC_OTHER' 'ZWC_OTHER' '无创-其它' .
gs_fieldcat-emphasize = 'C410'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSKIN_MAINTAIN' 'ZSKIN_MAINTAIN' '皮肤-嫩肤保养' .
gs_fieldcat-emphasize = 'C410'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSKIN_TIGHTEN' 'ZSKIN_TIGHTEN' '皮肤-紧肤抗衰' .
gs_fieldcat-emphasize = 'C410'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSKIN_WHITENING' 'ZSKIN_WHITENING' '皮肤-美白祛斑' .
gs_fieldcat-emphasize = 'C410'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSKIN_ACNE_REMO' 'ZSKIN_ACNE_REMO' '皮肤-祛痘' .
gs_fieldcat-emphasize = 'C410'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSKIN_SCARS' 'ZSKIN_SCARS' '皮肤-疤痕/瘢痕' .
gs_fieldcat-emphasize = 'C410'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSKIN_HAIR_REMOV' 'ZSKIN_HAIR_REMOV' '皮肤-脱毛' .
gs_fieldcat-emphasize = 'C410'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSKIN_TATTOO' 'ZSKIN_TATTOO' '皮肤-纹绣' .
gs_fieldcat-emphasize = 'C410'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSKIN_COSMETIC' 'ZSKIN_COSMETIC' '皮肤-化妆品' .
gs_fieldcat-emphasize = 'C410'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSKIN_REDNESS' 'ZSKIN_REDNESS' '皮肤-袪红治疗' .
gs_fieldcat-emphasize = 'C410'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSKIN_OTHER' 'ZSKIN_OTHER' '皮肤-皮肤其他' .
gs_fieldcat-emphasize = 'C210'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSM_INSTRUMENT' 'ZSM_INSTRUMENT' '私密-仪器私密' .
gs_fieldcat-emphasize = 'C210'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSM_INJECTIONS' 'ZSM_INJECTIONS' '私密-注射私密' .
gs_fieldcat-emphasize = 'C210'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZSM_OTHER' 'ZSM_OTHER' '私密-私密其他' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZXT_INSTRUMENT' 'ZXT_INSTRUMENT' '纤体-仪器纤体' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZXT_LIPOLYSIS' 'ZXT_LIPOLYSIS' '纤体-美塑溶脂' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZXT_ACID' 'ZXT_ACID' '纤体-玻尿酸塑形' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZXT_BOTOX' 'ZXT_BOTOX' '纤体-肉毒塑形' .
gs_fieldcat-emphasize = 'C700'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZXT_OTHER' 'ZXT_OTHER' '纤体-纤体其他' .
gs_fieldcat-emphasize = 'C500'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZKQ_ORTHODONTIC' 'ZKQ_ORTHODONTIC' '口腔-正畸' .
gs_fieldcat-emphasize = 'C500'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZKQ_RESTORATION' 'ZKQ_RESTORATION' '口腔-修复' .
gs_fieldcat-emphasize = 'C500'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZKQ_TREATMENT' 'ZKQ_TREATMENT' '口腔-治疗' .
gs_fieldcat-emphasize = 'C500'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZKQ_IMPLANT' 'ZKQ_IMPLANT' '口腔-种植' .
gs_fieldcat-emphasize = 'C500'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZKQ_OTHER' 'ZKQ_OTHER' '口腔-口腔其他' .
gs_fieldcat-emphasize = 'C710'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZMF_IMPLANTS' 'ZMF_IMPLANTS' '毛发-毛发种植' .
gs_fieldcat-emphasize = 'C710'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZMF_ARTISTIC_IM' 'ZMF_ARTISTIC_IM' '毛发-艺术种植' .
gs_fieldcat-emphasize = 'C710'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZMF_ANTI_AGING' 'ZMF_ANTI_AGING' '毛发-头皮抗衰' .
gs_fieldcat-emphasize = 'C710'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZMF_OTHER' 'ZMF_OTHER' '毛发-头皮其他' .
gs_fieldcat-emphasize = 'C600'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZYJK_TCM' 'ZYJK_TCM' '亚健康管理-中医理疗' .
gs_fieldcat-emphasize = 'C600'.
gs_fieldcat-do_sum = 'X'.
PERFORM set_fieldcat USING 'ZMCT_PL' 'ZYJK_SPA' 'ZYJK_SPA' '亚健康管理SPA' .
ENDFORM . "frm_set_fieldcat
*&---------------------------------------------------------------------*
*& Form frm_user_command
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->R_UCOMM text
* -->R_SELFIELD text
*----------------------------------------------------------------------*
FORM frm_user_command USING r_ucomm LIKE sy-ucomm
r_selfield TYPE slis_selfield.
DATA: lo_alv TYPE REF TO cl_gui_alv_grid.
CLEAR:gv_msg_return,gv_msg_reset.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lo_alv.
CALL METHOD lo_alv->check_changed_data.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CASE r_ucomm.
WHEN 'CONFIRM'."确认
IF sy-mandt = '210' AND sy-uname = 'CHENK'..
sy-uname = con_pernr.
ENDIF.
PERFORM b_confirm.
WHEN 'RESET'."取消确认
PERFORM b_reset.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
WHEN 'DEL'.
PERFORM b_del.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN '&IC1'.
WHEN '&F03'.
LEAVE TO SCREEN 0.
WHEN '&F15' OR '&F12'.
LEAVE PROGRAM.
CLEAR gs_show.
READ TABLE gt_show INTO gs_show INDEX r_selfield-tabindex.
IF r_selfield-fieldname = 'MANDT'.
CALL TRANSACTION 'SCC4'. "查看集团信息
ENDIF.
ENDCASE.
r_selfield-refresh = 'X'.
ENDFORM. "user_command
*&---------------------------------------------------------------------*
*& Form set_fieldcat
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(P_0546) text
* -->VALUE(P_0547) text
* -->VALUE(P_0548) text
* -->VALUE(P_0549) text
*----------------------------------------------------------------------*
FORM set_fieldcat USING value(p_0546) value(p_0547) value(p_0548) value(p_0549).
* GS_fieldcat-just = 'l'."对其方式,L表示左对齐
gs_fieldcat-ref_table = p_0546 .
gs_fieldcat-ref_field = p_0547 .
gs_fieldcat-fieldname = p_0548 .
gs_fieldcat-coltext = p_0549 .
gs_fieldcat-seltext = p_0549 .
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
ENDFORM. " SET_FIELDCAT
*&---------------------------------------------------------------------*
*& Form B_RESET
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM b_reset .
DATA: lv_answer TYPE c.
DATA:lt_zmct_pl LIKE TABLE OF zmct_pl WITH HEADER LINE.
gv_msg_return = '取消确认操作成功!'.
gv_msg_reset = '将撤销【此界面下】的所有确认过的的数据 ,是否继续!!!'.
LOOP AT gt_show INTO gs_show WHERE sel = 'X'..
ENDLOOP.
IF sy-subrc NE 0 .
MESSAGE s000(z01fi) WITH '请选择行项目!!!' DISPLAY LIKE 'E'.
RETURN.
ENDIF.
PERFORM popup_to_confirm IN PROGRAM zabap_sedi_forms USING gv_msg_reset ' ' CHANGING lv_answer. "1是/2否/A取消
CHECK lv_answer = '1'.
LOOP AT gt_show INTO gs_show WHERE sel = 'X'..
gs_show-sep_flag = icon_green_light.
gs_show-msg = gv_msg_return.
gs_show-zspr = sy-uname.
gs_show-zsprq = sy-datum.
gs_show-zspsj = sy-uzeit .
gs_show-zspzt = 'X'.
PERFORM get_domain_ddtext(zabap_sedi_forms) USING 'ZSPZT' lt_zmct_pl-zspzt CHANGING lt_zmct_pl-zspzt_txt .
UPDATE zmct_pl SET zspr = '' zsprq = '' zspsj = '' zspzt = 'N' zspzt_txt = '未审核'
"//---------------------------------------------------
zspr_1 = '' zsprq_1 = '' zspsj_1 = '' zspzt_1 = ' '
zspr_2 = '' zsprq_2 = '' zspsj_2 = '' zspzt_2 = ' '
zspr_3 = '' zsprq_3 = '' zspsj_3 = '' zspzt_3 = ' '
zspr_4 = '' zsprq_4 = '' zspsj_4 = '' zspzt_4 = ' '
zspr_5 = '' zsprq_5 = '' zspsj_5 = '' zspzt_5 = ' '
zspr_6 = '' zsprq_6 = '' zspsj_6 = '' zspzt_6 = ' '
"//---------------------------------------------------
WHERE jgbm = gs_show-jgbm
AND qdsj = gs_show-qdsj
AND zqdej = gs_show-zqdej
AND gjahr = gs_show-gjahr
AND smon = gs_show-smon
AND zvalue_typ = gs_show-zvalue_typ .
gs_show-zspzt_txt = icon_red_light.
gs_show-sep_flag = icon_green_light.
gs_show-zspzt = 'N'.
CLEAR:gs_show-zspr,gs_show-zsprq,gs_show-zspsj, gs_show-zspr_ygnam.
COMMIT WORK AND WAIT.
MODIFY gt_show FROM gs_show.CLEAR gs_show.
ENDLOOP.
ENDFORM. " B_RESET
*&---------------------------------------------------------------------*
*& Form set_fieldcat1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->VALUE(P_0548) text
* -->VALUE(P_0549) text
*----------------------------------------------------------------------*
FORM set_fieldcat1 USING value(p_0548)
value(p_0549).
* WA_FIELDCAT-JUST = 'L'."对其方式,L表示左对齐
gs_fieldcat-fieldname = p_0548 .
gs_fieldcat-coltext = p_0549 .
gs_fieldcat-seltext = p_0549 .
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
ENDFORM. " SET_FIELDCAT
*&---------------------------------------------------------------------*
*& Form B_DEL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM b_del .
DATA:lv_value TYPE char1.
DATA:lt_zmc_pl TYPE TABLE OF zmct_pl WITH HEADER LINE.
LOOP AT gt_show INTO gs_show WHERE sel IS NOT INITIAL.
MOVE-CORRESPONDING gs_show TO lt_zmc_pl.
IF gs_show-zspzt = 'X' .
lv_value = 'X'.
EXIT.
ENDIF.
DO 6 TIMES.
CLEAR:lv_value1,lv_name.
lv_index1 = sy-index.
CONDENSE lv_index1 NO-GAPS.
CONCATENATE 'ZSPZT_' lv_index1 INTO lv_value1.
ASSIGN COMPONENT lv_value1 OF STRUCTURE gs_show TO <sprzt1>.
IF sy-subrc = 0 .
IF <sprzt1> = 'X' OR <sprzt1> = icon_checked .
lv_value = 'X'.
EXIT.
ENDIF.
ENDIF.
ENDDO.
APPEND lt_zmc_pl.CLEAR lt_zmc_pl.
IF lv_value = 'X'.
EXIT.
ENDIF.
ENDLOOP.
IF sy-subrc NE 0 .
MESSAGE e000(z01fi) WITH '请选中行再进行操作'.
LEAVE TO LIST-PROCESSING.
ENDIF.
IF lv_value = 'X'..
MESSAGE e000(z01fi) WITH '存在确认过的行项目,因此不能删除,请取消确认后重试!!!'.
RETURN.
ENDIF.
CHECK lv_value IS INITIAL."确认过的不能删除
IF lt_zmc_pl[] IS NOT INITIAL.
DELETE zmct_pl FROM TABLE lt_zmc_pl.
COMMIT WORK AND WAIT.
IF sy-subrc = 0 .
DELETE gt_show WHERE sel IS NOT INITIAL.
MESSAGE s000(z01fi) WITH '删除成功'.
ENDIF.
ENDIF.
ENDFORM. " B_DEL
*&---------------------------------------------------------------------*
*& Form B_CONFIRM
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM b_confirm .
READ TABLE gt_zmct_spr WITH KEY pernr = sy-uname .
IF sy-subrc NE 0.
MESSAGE e000(z01fi) WITH '您没有操作权限,请配置确认人后再进行操作!'.
RETURN.
ENDIF.
PERFORM a_check_sp_is_it_done CHANGING lv_fieldname lv_fieldname_highest lv_spjb_now lv_spjb_highest
lv_spr lv_sprq lv_spsj
lv_spr_h lv_sprq_h lv_spsj_h
gs_show
.
DATA:lt_zmct_pl LIKE TABLE OF zmct_pl WITH HEADER LINE.
LOOP AT gt_show INTO gs_show WHERE sel = 'X'..
gs_show-sep_flag = icon_green_light.
gs_show-msg = gv_sp_msg.
IF gs_show-zspzt_txt = icon_led_green.
gs_show-msg = '无需重复审核'..
gs_show-sep_flag = icon_red_light.
ELSE.
PERFORM a_sp_update_now_status CHANGING gs_show."当前审批节点状态更新
ENDIF.
ASSIGN COMPONENT lv_fieldname_highest OF STRUCTURE gs_show TO <spzt_high>.
IF <spzt_high> IS ASSIGNED AND <spzt_high> = 'X'..
gs_show-zspr = sy-uname.
gs_show-zsprq = sy-datum.
gs_show-zspsj = sy-uzeit .
gs_show-zspzt = 'X'.
gs_show-zspzt_txt = icon_led_green.
PERFORM a_sp_update_highest_status CHANGING gs_show."最高节点状态更新
ENDIF.
MOVE-CORRESPONDING gs_show TO lt_zmct_pl.
PERFORM get_domain_ddtext(zabap_sedi_forms) USING 'ZSPZT' lt_zmct_pl-zspzt CHANGING lt_zmct_pl-zspzt_txt .
macro_stauts gs_show zspzt_1 .
macro_stauts gs_show zspzt_2 .
macro_stauts gs_show zspzt_3 .
macro_stauts gs_show zspzt_4 .
macro_stauts gs_show zspzt_5 .
macro_stauts gs_show zspzt_6 .
MODIFY gt_show FROM gs_show .CLEAR gs_show.
APPEND lt_zmct_pl.CLEAR lt_zmct_pl.
ENDLOOP.
IF sy-subrc NE 0 .
MESSAGE s000(z01fi) WITH '请选择行项目!!!' DISPLAY LIKE 'E'.
RETURN.
ELSE.
MODIFY zmct_pl FROM TABLE lt_zmct_pl.
COMMIT WORK AND WAIT.
ENDIF.
ENDFORM. " B_CONFIRM
*&---------------------------------------------------------------------*
*& Form a_check_sp_is_it_done
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->LV_FIELDNAME text
* -->LV_FIELDNAME_HIGHEST text
* -->LV_SPJB_NOW text
* -->LV_SPJB_HIGHEST text
* -->LV_SPR text
* -->LV_SPRQ text
* -->LV_SPSJ text
* -->LV_SPR_H text
* -->LV_SPRQ_H text
* -->LV_SPSJ_H text
* -->GS_SHOW-MSG text
*----------------------------------------------------------------------*
FORM a_check_sp_is_it_done CHANGING lv_fieldname TYPE char14
lv_fieldname_highest TYPE char14
lv_spjb_now TYPE zmct_spr-zspjb
lv_spjb_highest TYPE zmct_spr-zspjb
lv_spr TYPE char14
lv_sprq TYPE char14
lv_spsj TYPE char14
lv_spr_h TYPE char14
lv_sprq_h TYPE char14
lv_spsj_h TYPE char14
gs_show-msg
.
CLEAR:lv_fieldname,lv_fieldname_highest,lv_spjb_now, lv_spjb_highest.
CLEAR:lv_spr,lv_sprq,lv_spsj, lv_spr_h,lv_sprq_h,lv_spsj_h.
CLEAR:lv_spjb_now_txt.
CLEAR:gv_sp_msg.
"--- 最高审批节点是否审批完成 ---
SORT gt_zmct_spr BY zspjb DESCENDING.
READ TABLE gt_zmct_spr INDEX 1 .
IF sy-subrc = 0 .
lv_spjb_highest = gt_zmct_spr-zspjb.
CONCATENATE 'ZSPZT_' gt_zmct_spr-zspjb INTO lv_fieldname_highest.
CONCATENATE 'ZSPR_' gt_zmct_spr-zspjb INTO lv_spr_h.
CONCATENATE 'ZSPRQ_' gt_zmct_spr-zspjb INTO lv_sprq_h.
CONCATENATE 'ZSPSJ_' gt_zmct_spr-zspjb INTO lv_spsj_h.
ENDIF.
"--- 当前审批节点 ---
READ TABLE gt_zmct_spr WITH KEY pernr = sy-uname .
IF sy-subrc = 0.
CONCATENATE 'ZSPZT_' gt_zmct_spr-zspjb INTO lv_fieldname.
lv_spjb_now = gt_zmct_spr-zspjb.
CONCATENATE 'ZSPR_' lv_spjb_now INTO lv_spr .
CONCATENATE 'ZSPRQ_' lv_spjb_now INTO lv_sprq.
CONCATENATE 'ZSPSJ_' lv_spjb_now INTO lv_spsj.
PERFORM get_domain_ddtext(zabap_sedi_forms) USING 'ZSPJB' lv_spjb_now CHANGING lv_spjb_now_txt .
ENDIF.
"//---------------------------------------------------
DATA:lv_end TYPE char15.
IF lv_spjb_now = lv_spjb_highest.
lv_end = '流程结束'.
ENDIF.
CONCATENATE '&' lv_spjb_now_txt '确认成功' '&' lv_end INTO gv_sp_msg.
ENDFORM. " A_CHECK_SP_IS_IT_DONE
*&---------------------------------------------------------------------*
*& Form a_sp_update_highest_status
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->gs_show text
*----------------------------------------------------------------------*
FORM a_sp_update_highest_status CHANGING gs_show.
ASSIGN COMPONENT lv_fieldname_highest OF STRUCTURE gs_show TO <spzt>.
IF sy-subrc = 0 ."审批状态
<spzt> = 'X'.
ENDIF.
ASSIGN COMPONENT lv_spr_h OF STRUCTURE gs_show TO <spr>.
IF sy-subrc = 0 .
<spr> = sy-uname.
ENDIF.
ASSIGN COMPONENT lv_sprq_h OF STRUCTURE gs_show TO <sprq>.
IF sy-subrc = 0 .
<sprq> = sy-datum.
ENDIF.
ASSIGN COMPONENT lv_spsj_h OF STRUCTURE gs_show TO <spsj>.
IF sy-subrc = 0 .
<spsj> = sy-uzeit.
ENDIF.
ENDFORM. " A_SP_UPDATE_HIGHEST_STATUS
*&---------------------------------------------------------------------*
*& Form a_sp_update_now_status
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->GS_SHOW text
*----------------------------------------------------------------------*
FORM a_sp_update_now_status CHANGING gs_show.
ASSIGN COMPONENT lv_fieldname OF STRUCTURE gs_show TO <spzt>.
IF sy-subrc = 0 ."审批状态
<spzt> = 'X'.
ENDIF.
ASSIGN COMPONENT lv_spr OF STRUCTURE gs_show TO <spr>.
IF sy-subrc = 0 .
<spr> = sy-uname.
ENDIF.
ASSIGN COMPONENT lv_sprq OF STRUCTURE gs_show TO <sprq>.
IF sy-subrc = 0 .
<sprq> = sy-datum.
ENDIF.
ASSIGN COMPONENT lv_spsj OF STRUCTURE gs_show TO <spsj>.
IF sy-subrc = 0 .
<spsj> = sy-uzeit.
ENDIF.
ENDFORM. " A_SP_UPDATE_NOW_STATUS