选择屏幕页签设置及按钮设置
****批量打包模板导入
SELECTION-SCREEN BEGIN OF SCREEN 9001 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.
PARAMETERS:p_file TYPE string.
SELECTION-SCREEN END OF BLOCK bk1.
SELECTION-SCREEN END OF SCREEN 9001.
****批量指定开票内容打包模板导入
SELECTION-SCREEN BEGIN OF SCREEN 9002 AS SUBSCREEN .
SELECTION-SCREEN BEGIN OF BLOCK bk2 WITH FRAME TITLE text-002.
PARAMETERS:p_file2 TYPE string.
SELECTION-SCREEN END OF BLOCK bk2.
SELECTION-SCREEN END OF SCREEN 9002.
****下载按钮
SELECTION-SCREEN FUNCTION KEY 1.
****页签
SELECTION-SCREEN:BEGIN OF TABBED BLOCK mytab FOR 25 LINES,
TAB (20) p_tab1 USER-COMMAND tab1,
TAB (20) p_tab2 USER-COMMAND tab2,
END OF BLOCK mytab.
初始化图标
FORM frm_botton.
DATA: lv_functxt TYPE smp_dyntxt.
lv_functxt-icon_id = icon_export. "图标,可以通过ICON查找
lv_functxt-icon_text = text-003."描述
sscrfields-functxt_01 = lv_functxt.
ENDFORM. " FRM_BOTTON
初始化页签设置
FORM frm_init_tab .
p_tab1 = text-001.
p_tab2 = text-002.
mytab-prog = sy-repid.
mytab-dynnr = 9001.
ENDFORM. " FRM_INIT_TAB
PBO设置页签转换及图标属性变化
*&---------------------------------------------------------------------*
*&AT SELECTION-SCREEN
*&---------------------------------------------------------------------*
AT SELECTION-SCREEN.
DATA: lv_functxt TYPE smp_dyntxt.
CASE sy-dynnr.
WHEN 1000.
CASE sy-ucomm.
WHEN 'TAB1'.
mytab-dynnr = 9001.
mytab-activetab = 'P_TAB1'.
lv_functxt-icon_id = icon_export. "图标,可以通过ICON查找
lv_functxt-icon_text = text-003."描述
sscrfields-functxt_01 = lv_functxt.
WHEN 'TAB2'.
mytab-dynnr = 9002.
mytab-activetab = 'P_TAB2'.
lv_functxt-icon_id = icon_export. "图标,可以通过ICON查找
lv_functxt-icon_text = text-004."描述
sscrfields-functxt_01 = lv_functxt.
WHEN 'FC01'.
PERFORM frm_download_excel.
ENDCASE.
ENDCASE.
再次进入选择屏幕时,进入上次退出的页签
REPORT ZTEST_SELECT_SCREEN.SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_bukrs TYPE bukrs DEFAULT 'E100' .
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(31) TEXT-c01.
PARAMETERS: p_check AS CHECKBOX.
SELECTION-SCREEN COMMENT 35(15) TEXT-c02.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN END OF SCREEN 100.
SELECTION-SCREEN BEGIN OF SCREEN 200 AS SUBSCREEN.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_bukrs2 TYPE bukrs DEFAULT 'E100' .
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN END OF SCREEN 200.
SELECTION-SCREEN BEGIN OF TABBED BLOCK mytab FOR 12 LINES.
SELECTION-SCREEN TAB (15) TEXT-003 USER-COMMAND but1.
SELECTION-SCREEN TAB (15) TEXT-004 USER-COMMAND but2.
SELECTION-SCREEN END OF BLOCK mytab.
*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
INITIALIZATION.
CLEAR g_dynnr.
mytab-prog = sy-repid.
IMPORT g_dynnr FROM MEMORY ID 'SCREEN'. "传入上次执行的屏幕号
IF g_dynnr = space.
mytab-dynnr = 100.
mytab-activetab = 'BUT1'.
ELSE.
CASE g_dynnr.
WHEN 100.
mytab-dynnr = 100.
mytab-activetab = 'BUT1'.
WHEN 200.
mytab-dynnr = 200.
mytab-activetab = 'BUT2'.
ENDCASE.
ENDIF.
*----------------------------------------------------------------------*
* AT SELECTION-SCREEN
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
CASE sy-dynnr.
WHEN 1000.
CASE sy-ucomm.
WHEN 'BUT1'.
mytab-dynnr = 100.
g_dynnr = 100.
EXPORT g_dynnr TO MEMORY ID 'SCREEN'. "录入ABAP内存屏幕号
WHEN 'BUT2'.
mytab-dynnr = 200.
g_dynnr = 200.
EXPORT g_dynnr TO MEMORY ID 'SCREEN'.
WHEN OTHERS.
ENDCASE.
ENDCASE.