ABAP-选择屏幕
选择屏幕页签设置及按钮设置
****批量打包模板导入 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.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示