- 1.在选择屏幕上声明按钮
- 2.在 INITIALIZATION 中定义按钮的文本和图标
- 3.在AT SELECTION-SCREEN 模块中响应按钮
*&---------------------------------------------------------------------*
*& Report ZTEST_CESHI
*&---------------------------------------------------------------------*
REPORT ztest_ceshi.
TABLES:vbak,vbap.
TYPE-POOLS: icon,slis.
TABLES:sscrfields. "选择屏幕上的字段
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : p1 RADIOBUTTON GROUP rad1 DEFAULT 'X' USER-COMMAND uc,
p2 RADIOBUTTON GROUP rad1.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
SELECT-OPTIONS : s1_auart FOR vbak-auart MODIF ID ty1, "销售订单类型
s1_vbeln FOR vbak-vbeln MODIF ID ty1, "销售订单
s1_kunnr FOR vbak-kunnr MODIF ID ty1, "客户
s1_matnr FOR vbap-matnr MODIF ID ty1. "物料
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
SELECT-OPTIONS : s2_erdat FOR vbak-erdat MODIF ID ty2, "订单创建日期
s2_vdatu FOR vbak-vdatu MODIF ID ty2. "订单交货日期
SELECTION-SCREEN END OF BLOCK b3.
"自定义按钮
SELECTION-SCREEN: FUNCTION KEY 1,
FUNCTION KEY 2,
FUNCTION KEY 3.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
CASE screen-group1.
WHEN 'TY1'.
IF p1 = 'X'.
screen-active = '0'.
ELSE.
screen-active = '1'.
ENDIF.
WHEN 'TY2'.
IF p2 = 'X' .
screen-active = '0'.
ELSE.
screen-active = '1'.
ENDIF.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
INITIALIZATION.
"初始化屏幕
PERFORM frm_init_sel_screen.
" 按钮执行
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN 'FC01'.
WHEN 'FC02'.
WHEN 'FC03'.
ENDCASE.
FORM frm_init_sel_screen .
DATA: lv_functxt TYPE smp_dyntxt.
DATA: lt_exclude TYPE TABLE OF sy-ucomm.
lv_functxt-icon_id = icon_change.
lv_functxt-icon_text = '手工维护'.
sscrfields-functxt_01 = lv_functxt.
lv_functxt-icon_id = icon_xls.
lv_functxt-icon_text = '数据导入'.
sscrfields-functxt_02 = lv_functxt.
lv_functxt-icon_id = icon_xxl.
lv_functxt-icon_text = '导入模板下载'.
sscrfields-functxt_03 = lv_functxt.
lt_exclude = VALUE #( ( 'ONLI' ) ).
CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
EXPORTING
p_status = sy-pfkey
TABLES
p_exclude = lt_exclude.
ENDFORM.